aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_expand
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2020-03-07 05:04:36 +0000
committerGitHub <[email protected]>2020-03-07 05:04:36 +0000
commit8218494b530be43e4baa045176a3e8b6ad0558fa (patch)
tree7b9a9b39256f829f7f2eb1961ed880833f0367d6 /crates/ra_hir_expand
parent48bb1c51721b7736b6d6f2e5cb82126c91934433 (diff)
parent2e178b5475b156e1876e4e6971c0abd3bdf6c889 (diff)
Merge #3508
3508: Use a not so dummy implementation of env macro r=edwin0cheng a=edwin0cheng Currently we have a dummy `env` macro implementation which expand to an empty string, such that a `include!(concat!(env!("OUT_DIR"), "/foo.rs"))` will become `include!("/foo.rs")`, and here may be a infinite loop. :) This PR use a not so dummy version of `env` macro to prevent this infinite loop. Co-authored-by: Edwin Cheng <[email protected]>
Diffstat (limited to 'crates/ra_hir_expand')
-rw-r--r--crates/ra_hir_expand/src/builtin_macro.rs7
1 files changed, 5 insertions, 2 deletions
diff --git a/crates/ra_hir_expand/src/builtin_macro.rs b/crates/ra_hir_expand/src/builtin_macro.rs
index 9fc33e4b1..a57e9285f 100644
--- a/crates/ra_hir_expand/src/builtin_macro.rs
+++ b/crates/ra_hir_expand/src/builtin_macro.rs
@@ -142,7 +142,10 @@ fn env_expand(
142 _tt: &tt::Subtree, 142 _tt: &tt::Subtree,
143) -> Result<tt::Subtree, mbe::ExpandError> { 143) -> Result<tt::Subtree, mbe::ExpandError> {
144 // dummy implementation for type-checking purposes 144 // dummy implementation for type-checking purposes
145 let expanded = quote! { "" }; 145 // we cannot use an empty string here, because for
146 // `include!(concat!(env!("OUT_DIR"), "/foo.rs"))` will become
147 // `include!("foo.rs"), which maybe infinite loop
148 let expanded = quote! { "__RA_UNIMPLEMENTATED__" };
146 149
147 Ok(expanded) 150 Ok(expanded)
148} 151}
@@ -394,7 +397,7 @@ mod tests {
394 "#, 397 "#,
395 ); 398 );
396 399
397 assert_eq!(expanded, "\"\""); 400 assert_eq!(expanded, "\"__RA_UNIMPLEMENTATED__\"");
398 } 401 }
399 402
400 #[test] 403 #[test]