@@ -141,6 +141,12 @@ def _rust_analyzer_aspect_impl(target, ctx):
141141 proc_macro_dylibs = [proc_macro_dylib ] if proc_macro_dylib else None
142142 build_info_out_dirs = [build_info .out_dir ] if build_info != None and build_info .out_dir != None else None
143143
144+ rust_generated_srcs = []
145+ for attr in ["srcs" , "deps" , "proc_macro_deps" ]:
146+ for dep in getattr (ctx .rule .attr , attr , []):
147+ if OutputGroupInfo in dep and hasattr (dep [OutputGroupInfo ], "rust_generated_srcs" ):
148+ rust_generated_srcs .append (dep [OutputGroupInfo ].rust_generated_srcs )
149+
144150 rust_analyzer_info = write_rust_analyzer_spec_file (ctx , ctx .rule .attr , ctx .label , RustAnalyzerInfo (
145151 aliases = aliases ,
146152 crate = crate_info ,
@@ -160,6 +166,7 @@ def _rust_analyzer_aspect_impl(target, ctx):
160166 rust_analyzer_crate_spec = rust_analyzer_info .crate_specs ,
161167 rust_analyzer_proc_macro_dylib = rust_analyzer_info .proc_macro_dylibs ,
162168 rust_analyzer_src = rust_analyzer_info .build_info_out_dirs ,
169+ rust_generated_srcs = depset (transitive = rust_generated_srcs ),
163170 ),
164171 ]
165172
@@ -193,7 +200,7 @@ def find_proc_macro_dylib(toolchain, target):
193200 return None
194201
195202rust_analyzer_aspect = aspect (
196- attr_aspects = ["deps" , "proc_macro_deps" , "crate" , "actual" , "proto" ],
203+ attr_aspects = ["srcs" , " deps" , "proc_macro_deps" , "crate" , "actual" , "proto" ],
197204 implementation = _rust_analyzer_aspect_impl ,
198205 toolchains = [str (Label ("//rust:toolchain_type" ))],
199206 doc = "Annotates rust rules with RustAnalyzerInfo later used to build a rust-project.json" ,
0 commit comments