Skip to content

Commit

Permalink
Add UI test for #100199
Browse files Browse the repository at this point in the history
  • Loading branch information
luqmana committed Aug 7, 2022
1 parent fc83a0c commit 15b1daa
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 0 deletions.
18 changes: 18 additions & 0 deletions src/test/ui/macros/auxiliary/issue-100199.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
// force-host
// no-prefer-dynamic

#![crate_type = "proc-macro"]
#![feature(proc_macro_quote)]

extern crate proc_macro;

use proc_macro::{quote, Ident, Span, TokenStream, TokenTree};

#[proc_macro_attribute]
pub fn struct_with_bound(_: TokenStream, _: TokenStream) -> TokenStream {
let crate_ident = TokenTree::Ident(Ident::new("crate", Span::call_site()));
let trait_ident = TokenTree::Ident(Ident::new("MyTrait", Span::call_site()));
quote!(
struct Foo<T: $crate_ident::$trait_ident> {}
)
}
16 changes: 16 additions & 0 deletions src/test/ui/macros/issue-100199.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#[issue_100199::struct_with_bound] //~ ERROR cannot find trait `MyTrait` in the crate root
struct Foo {}
// The above must be on the first line so that it's span points to pos 0.
// This used to trigger an ICE because the diagnostic emitter would get
// an unexpected dummy span (lo == 0 == hi) while attempting to print a
// suggestion.

// aux-build: issue-100199.rs

extern crate issue_100199;

mod traits {
pub trait MyTrait {}
}

fn main() {}
15 changes: 15 additions & 0 deletions src/test/ui/macros/issue-100199.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
error[E0405]: cannot find trait `MyTrait` in the crate root
--> $DIR/issue-100199.rs:1:1
|
LL | #[issue_100199::struct_with_bound]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in the crate root
|
= note: this error originates in the attribute macro `issue_100199::struct_with_bound` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider importing this trait
|
LL | use traits::MyTrait;
|

error: aborting due to previous error

For more information about this error, try `rustc --explain E0405`.

0 comments on commit 15b1daa

Please sign in to comment.