File tree 2 files changed +8
-7
lines changed
2 files changed +8
-7
lines changed Original file line number Diff line number Diff line change @@ -1127,9 +1127,11 @@ fn expand_rust_function_shim_super(
1127
1127
Some ( ret) => quote ! ( #ret) ,
1128
1128
None => quote ! ( ( ) ) ,
1129
1129
} ;
1130
- let impl_trait = quote_spanned ! ( result. span=> impl ) ;
1131
- let display = quote_spanned ! ( rangle. span=> :: std:: fmt:: Display ) ;
1132
- quote ! ( -> :: std:: result:: Result <#ok, #impl_trait #display>)
1130
+ // Set spans that result in the `Result<...>` written by the user being
1131
+ // highlighted as the cause if their error type has no Display impl.
1132
+ let result_begin = quote_spanned ! ( result. span=> :: std:: result:: Result <#ok, impl ) ;
1133
+ let result_end = quote_spanned ! ( rangle. span=> :: std:: fmt:: Display >) ;
1134
+ quote ! ( -> #result_begin #result_end)
1133
1135
} else {
1134
1136
expand_return_type ( & sig. ret )
1135
1137
} ;
Original file line number Diff line number Diff line change 1
1
error[E0277]: `NonError` doesn't implement `std::fmt::Display`
2
- --> $DIR/result_no_display.rs:1:1
2
+ --> $DIR/result_no_display.rs:4:19
3
3
|
4
- 1 | #[cxx::bridge]
5
- | ^^^^ ^^^^^^^^^^ `NonError` cannot be formatted with the default formatter
4
+ 4 | fn f() -> Result<()>;
5
+ | ^^^^^^^^^^ `NonError` cannot be formatted with the default formatter
6
6
|
7
7
= help: the trait `std::fmt::Display` is not implemented for `NonError`
8
8
= note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead
9
- = note: this error originates in the attribute macro `cxx::bridge` (in Nightly builds, run with -Z macro-backtrace for more info)
You can’t perform that action at this time.
0 commit comments