Use a not so dummy implementation of env macro

This commit is contained in:
Edwin Cheng 2020-03-07 12:53:40 +08:00
parent 48bb1c5172
commit 36c7684687
2 changed files with 28 additions and 1 deletions

View File

@ -142,7 +142,7 @@ fn env_expand(
_tt: &tt::Subtree,
) -> Result<tt::Subtree, mbe::ExpandError> {
// dummy implementation for type-checking purposes
let expanded = quote! { "" };
let expanded = quote! { "__RA_UNIMPLEMENTATED__" };
Ok(expanded)
}

View File

@ -483,6 +483,33 @@ fn bar() -> u32 {0}
assert_eq!("u32", type_at_pos(&db, pos));
}
#[test]
fn infer_builtin_macros_include_concat_with_bad_env_should_failed() {
let (db, pos) = TestDB::with_position(
r#"
//- /main.rs
#[rustc_builtin_macro]
macro_rules! include {() => {}}
#[rustc_builtin_macro]
macro_rules! concat {() => {}}
#[rustc_builtin_macro]
macro_rules! env {() => {}}
include!(concat!(env!("OUT_DIR"), "/foo.rs"));
fn main() {
bar()<|>;
}
//- /foo.rs
fn bar() -> u32 {0}
"#,
);
assert_eq!("{unknown}", type_at_pos(&db, pos));
}
#[test]
fn infer_builtin_macros_concat_with_lazy() {
assert_snapshot!(