diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2024-10-19 22:01:00 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-10-19 22:01:00 +0200 |
| commit | d077d9b8689867440510734a6380736bfa474d2e (patch) | |
| tree | 979cca94438942072704b17eb450c370f505db0f | |
| parent | 426e90682ec458e895345f008e37a59a457f5651 (diff) | |
| parent | fa478239b19ccf1a455985fec7577d7091a7620c (diff) | |
| download | rust-d077d9b8689867440510734a6380736bfa474d2e.tar.gz rust-d077d9b8689867440510734a6380736bfa474d2e.zip | |
Rollup merge of #131932 - usamoi:tracked-path, r=Nadrieril
use tracked_path in rustc_fluent_macro According to comments in https://github.com/rust-lang/rust/issues/99515#issuecomment-2135003881, the trick used in `rustc_fluent_macro` may be broken by caching decl macros. So use `proc_macro::tracked_path::path` to ensure it works.
| -rw-r--r-- | compiler/rustc_fluent_macro/src/fluent.rs | 4 | ||||
| -rw-r--r-- | compiler/rustc_fluent_macro/src/lib.rs | 1 |
2 files changed, 3 insertions, 2 deletions
diff --git a/compiler/rustc_fluent_macro/src/fluent.rs b/compiler/rustc_fluent_macro/src/fluent.rs index ead72e2a0e1..d4604c27e6d 100644 --- a/compiler/rustc_fluent_macro/src/fluent.rs +++ b/compiler/rustc_fluent_macro/src/fluent.rs @@ -8,6 +8,7 @@ use fluent_syntax::ast::{ Attribute, Entry, Expression, Identifier, InlineExpression, Message, Pattern, PatternElement, }; use fluent_syntax::parser::ParserError; +use proc_macro::tracked_path::path; use proc_macro::{Diagnostic, Level, Span}; use proc_macro2::TokenStream; use quote::quote; @@ -99,8 +100,7 @@ pub(crate) fn fluent_messages(input: proc_macro::TokenStream) -> proc_macro::Tok let crate_name = Ident::new(&crate_name, resource_str.span()); - // As this macro also outputs an `include_str!` for this file, the macro will always be - // re-executed when the file changes. + path(absolute_ftl_path.to_str().unwrap()); let resource_contents = match read_to_string(absolute_ftl_path) { Ok(resource_contents) => resource_contents, Err(e) => { diff --git a/compiler/rustc_fluent_macro/src/lib.rs b/compiler/rustc_fluent_macro/src/lib.rs index 6e5add24bcc..3ad51fa1e64 100644 --- a/compiler/rustc_fluent_macro/src/lib.rs +++ b/compiler/rustc_fluent_macro/src/lib.rs @@ -6,6 +6,7 @@ #![feature(proc_macro_diagnostic)] #![feature(proc_macro_span)] #![feature(rustdoc_internals)] +#![feature(track_path)] #![warn(unreachable_pub)] // tidy-alphabetical-end |
