mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-01 15:01:51 +00:00
Highlight unresolved derives as being unresolved
This commit is contained in:
parent
b4bd27be90
commit
b6e7cf3201
@ -538,8 +538,8 @@ impl<'db> SemanticsImpl<'db> {
|
||||
}
|
||||
|
||||
fn expand_derive_as_pseudo_attr_macro(&self, attr: &ast::Attr) -> Option<SyntaxNode> {
|
||||
let src = self.wrap_node_infile(attr.clone());
|
||||
let adt = attr.syntax().parent().and_then(ast::Adt::cast)?;
|
||||
let src = self.wrap_node_infile(attr.clone());
|
||||
let call_id = self.with_ctx(|ctx| {
|
||||
ctx.attr_to_derive_macro_call(src.with_value(&adt), src).map(|(_, it, _)| it)
|
||||
})?;
|
||||
|
@ -217,7 +217,9 @@ fn highlight_name_ref(
|
||||
// to anything when used.
|
||||
// We can fix this for derive attributes since derive helpers are recorded, but not for
|
||||
// general attributes.
|
||||
None if name_ref.syntax().ancestors().any(|it| it.kind() == ATTR) => {
|
||||
None if name_ref.syntax().ancestors().any(|it| it.kind() == ATTR)
|
||||
&& !sema.hir_file_for(name_ref.syntax()).is_derive_attr_pseudo_expansion(sema.db) =>
|
||||
{
|
||||
return HlTag::Symbol(SymbolKind::Attribute).into();
|
||||
}
|
||||
None => return HlTag::UnresolvedReference.into(),
|
||||
|
@ -53,6 +53,6 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
|
||||
<span class="comment">// This is another normal comment</span>
|
||||
<span class="comment documentation">/// This is another doc comment</span>
|
||||
<span class="comment">// This is another normal comment</span>
|
||||
<span class="attribute_bracket attribute">#</span><span class="attribute_bracket attribute">[</span><span class="attribute attribute default_library library">derive</span><span class="parenthesis attribute">(</span><span class="derive attribute default_library library">Copy</span><span class="parenthesis attribute">)</span><span class="attribute_bracket attribute">]</span>
|
||||
<span class="attribute_bracket attribute">#</span><span class="attribute_bracket attribute">[</span><span class="attribute attribute default_library library">derive</span><span class="parenthesis attribute">(</span><span class="derive attribute default_library library">Copy</span><span class="comma attribute">,</span> <span class="unresolved_reference attribute">Unresolved</span><span class="parenthesis attribute">)</span><span class="attribute_bracket attribute">]</span>
|
||||
<span class="comment">// The reason for these being here is to test AttrIds</span>
|
||||
<span class="keyword">struct</span> <span class="struct declaration">Foo</span><span class="semicolon">;</span></code></pre>
|
@ -34,7 +34,7 @@ fn attributes() {
|
||||
// This is another normal comment
|
||||
/// This is another doc comment
|
||||
// This is another normal comment
|
||||
#[derive(Copy)]
|
||||
#[derive(Copy, Unresolved)]
|
||||
// The reason for these being here is to test AttrIds
|
||||
struct Foo;
|
||||
"#,
|
||||
|
Loading…
Reference in New Issue
Block a user