diff options
| author | Esteban Küber <esteban@kuber.com.ar> | 2019-08-15 11:46:52 -0700 |
|---|---|---|
| committer | Esteban Küber <esteban@kuber.com.ar> | 2019-08-15 11:46:52 -0700 |
| commit | fbf1efb949b9d76b4964b7b6a7a606de116ecb46 (patch) | |
| tree | 91cd4bb80505f6eaab4aea72c81aa75ce995cd49 | |
| parent | f7af19c279b8b7ea3d2c21fcbd67164af8d5d968 (diff) | |
| download | rust-fbf1efb949b9d76b4964b7b6a7a606de116ecb46.tar.gz rust-fbf1efb949b9d76b4964b7b6a7a606de116ecb46.zip | |
Do not suggest `try_into` for base types inside of macro expansions
| -rw-r--r-- | src/librustc_typeck/check/demand.rs | 4 | ||||
| -rw-r--r-- | src/test/ui/suggestions/dont-suggest-try_into-in-macros.rs | 3 | ||||
| -rw-r--r-- | src/test/ui/suggestions/dont-suggest-try_into-in-macros.stderr | 11 |
3 files changed, 18 insertions, 0 deletions
diff --git a/src/librustc_typeck/check/demand.rs b/src/librustc_typeck/check/demand.rs index ed25601208a..f3b56b31b77 100644 --- a/src/librustc_typeck/check/demand.rs +++ b/src/librustc_typeck/check/demand.rs @@ -554,6 +554,10 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> { // FIXME(estebank): modify once we decide to suggest `as` casts return false; } + if !self.tcx.sess.source_map().span_to_filename(expr.span).is_real() { + // Ignore if span is from within a macro. + return false; + } // If casting this expression to a given numeric type would be appropriate in case of a type // mismatch. diff --git a/src/test/ui/suggestions/dont-suggest-try_into-in-macros.rs b/src/test/ui/suggestions/dont-suggest-try_into-in-macros.rs new file mode 100644 index 00000000000..d625199c937 --- /dev/null +++ b/src/test/ui/suggestions/dont-suggest-try_into-in-macros.rs @@ -0,0 +1,3 @@ +fn main() { + assert_eq!(10u64, 10usize); //~ ERROR mismatched types +} diff --git a/src/test/ui/suggestions/dont-suggest-try_into-in-macros.stderr b/src/test/ui/suggestions/dont-suggest-try_into-in-macros.stderr new file mode 100644 index 00000000000..f04306997a9 --- /dev/null +++ b/src/test/ui/suggestions/dont-suggest-try_into-in-macros.stderr @@ -0,0 +1,11 @@ +error[E0308]: mismatched types + --> $DIR/dont-suggest-try_into-in-macros.rs:2:5 + | +LL | assert_eq!(10u64, 10usize); + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected u64, found usize + | + = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0308`. |
