9461: fix: Fix incorrect guard for NameRefClass attribute resolution r=Veykril a=Veykril
This is what happens when you forget to write a test
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
9455: feat: Handle not let if expressions in replace_if_let_with_match r=Veykril a=Veykril
Transforms bare `if cond {}` into `_ if cond` guard patterns in the match as long as at least one `if let` is in the if chain, otherwise the assist wont be applicable.
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
9454: feat: Empower `replace_if_let_with_match` r=Veykril a=Veykril
Now instead of only working on `if let ... {} else {}` if expressions it now works on all of them where the condition expression is the same text-wise.
This includes if let expressions without an else block, in which case a simple `_ => ()` will be generated in the resulting match but also in more complex cases where multiple `if let` expressions are chained.
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
9452: feat: Add "View Crate Graph (Full)" r=jonas-schievink a=jonas-schievink
Works like "View Crate Graph", but also includes crates.io and sysroot dependencies. The resulting graph might be enormous.
Closes https://github.com/rust-analyzer/rust-analyzer/issues/8867
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
9450: internal: Add ModuleOrItem guess to import granularity guessing r=Veykril a=Veykril
I think this should be the last fix needed for this(🤞)
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
9447: fix: Make unlinked_file diagnostic a hint again r=jonas-schievink a=jonas-schievink
#9255 accidentally turned it into an error
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
9443: internal: Add a simpler legacy macro scoping test r=jonas-schievink a=jonas-schievink
This is a lot simpler to understand and debug than the `plain_macros_are_legacy_textual_scoped` test.
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
9440: Don't implement `Eq` for `CrateGraph` r=kjeremy a=lnicola
This currently seems [incorrect](https://github.com/rust-analyzer/rust-analyzer/pull/8363/files) and doesn't seem that useful, so maybe we can remove it?
Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
9436: minor: Add test for macro expanded test module in runnables r=Veykril a=Veykril
Expected this to fail as thats behaving incorrectly on current nightly but I think I fixed this accidentally with https://github.com/rust-analyzer/rust-analyzer/pull/9435
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
9434: Cargo update and pull in the new rowan r=kjeremy a=kjeremy
This brings in the new hashbrown for better compile times.
Co-authored-by: kjeremy <kjeremy@gmail.com>
9269: Recreate status page r=lnicola a=Milo123459
I'm working on redesigning the status page.
Co-authored-by: Milo <50248166+Milo123459@users.noreply.github.com>
9423: fix: Resolve attribute paths in attribute highlighting r=Veykril a=Veykril
Attributes have a new highlighting format now, whereas the `#[` `]` tokens are now tagged with `attribute.attribute` like before, but all other idents inside token trees are now `generic.attribute`. If a path in an attribute can't be resolved it will instead get the `builtinAttribute.attribute` tags now as highlighting doesn't know about builtins like `allow` yet, so we don't want to emit unresolved references.
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
9422: fix: Handle `::{self}` imports r=jonas-schievink a=jonas-schievink
These import the preceding segment, but only in type namespace. Previously we've imported the name in all namespaces.
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>