| Age | Commit message (Collapse) | Author | Lines |
|
|
|
Migrate `introduce_named_generic` Assist to Use `SyntaxFactory`
|
|
fix: Resolve generic parameters within use captures
|
|
|
|
fix: Parse lifetime bounds in lifetime param into TypeBoundList
|
|
This mainly aids in error recovery but also makes it a bit easier to handle lifetime resolution.
While doing so it also came apparent that we were not actually lowering lifetime outlives relationships within lifetime parameter declaration bounds, so this fixes that.
|
|
fix: Panic when displaying generic params with defaults
|
|
|
|
fix: Fix parsing of integer/keyword name refs in various places
|
|
|
|
Signed-off-by: Tarek <tareknaser360@gmail.com>
|
|
fix: Disable `<` typing handler again
|
|
|
|
fix: Do not report warnings from proc macros, ever
|
|
Signed-off-by: Tarek <tareknaser360@gmail.com>
|
|
|
|
feat: Complete diagnostics in ty lowering groundwork and serve a first diagnostic 🎉
|
|
Signed-off-by: Tarek <tareknaser360@gmail.com>
|
|
Signed-off-by: Tarek <tareknaser360@gmail.com>
|
|
Signed-off-by: Tarek <tareknaser360@gmail.com>
|
|
Signed-off-by: Tarek <tareknaser360@gmail.com>
|
|
parameters
Signed-off-by: Tarek <tareknaser360@gmail.com>
|
|
Signed-off-by: Tarek <tareknaser360@gmail.com>
|
|
Signed-off-by: Tarek <tareknaser360@gmail.com>
|
|
Signed-off-by: Tarek <tareknaser360@gmail.com>
|
|
Signed-off-by: Tarek <tareknaser360@gmail.com>
|
|
Signed-off-by: Tarek <tareknaser360@gmail.com>
|
|
Implement diagnostics in all places left: generics (predicates, defaults, const params' types), fields, and type aliases.
Unfortunately this results in a 20mb addition in `analysis-stats .` due to many type methods returning an addition diagnostics result now (even if it's `None` in most cases). I'm not sure if this can be improved.
An alternative strategy that can prevent the memory usage growth is to never produce diagnostics in hir-ty methods. Instead, lower all types in the hir crate when computing diagnostics from scratch (with diagnostics this time). But this has two serious disadvantages:
1. This can cause code duplication (although it can probably be not that bad, it will still mean a lot more code).
2. I believe we eventually want to compute diagnostics for the *entire* workspace (either on-type or on-save or something alike), so users can know when they have diagnostics even in inactive files. Choosing this approach will mean we lose all precomputed salsa queries. For one file this is fine, for the whole workspace this will be very slow.
|
|
diagnostic
The diagnostic implemented is a simple one (E0109). It serves as a test for the new foundation.
This commit only implements diagnostics for type in bodies and body-carrying signatures; the next commit will include diagnostics in the rest of the things.
Also fix one weird bug that was detected when implementing this that caused `Fn::(A, B) -> C` (which is a valid, if bizarre, alternative syntax to `Fn(A, B) -> C` to lower incorrectly.
And also fix a maybe-bug where parentheses were sneaked into a code string needlessly; this was not detected until now because the parentheses were removed (by the make-AST family API), but with a change in this commit they are now inserted. So fix that too.
|
|
Most paths are types and therefore already are in the source map, but the trait in impl trait and in bounds are not.
We do this by storing them basically as `TypeRef`s. For convenience, I created a wrapper around `TypeRefId` called `PathId` that always stores a path, and implemented indexing from the types map to it.
Fortunately, this change impacts memory usage negligibly (adds 2mb to `analysis-stats .`, but that could be just fluff). Probably because there aren't that many trait bounds and impl traits, and this also shrinks `TypeBound` by 8 bytes.
I also added an accessor to `TypesSourceMap` to get the source code, which will be needed for diagnostics.
|
|
Fix parsing of parenthesized type args and RTN
|
|
|
|
feat: Extend reported unsafe operations
|
|
feat: Complete derive helper attributes
|
|
We add union fields access (in both expressions and patterns) and inline assembly.
That completes the unsafe check (there are some other unsafe things but they are unstable), and so also opens the door to reporting unused unsafe without annoying people about their not-unused unsafe blocks.
|
|
Only their names, anything can go inside.
|
|
Better parser recovery for paths
|
|
|
|
|
|
|
|
Add Configurable Option to Exclude Trigger Characters for Typing Assists
|
|
fix: Fixed another bug with glob imports
|
|
Remove references to platform-intrinsic ABI
|
|
fix: Fix shadowing of record enum variant in patterns
|
|
minor: Improve soundness a bit by making `TaggedArcPtr::try_as_arc_owned()` unsafe
|
|
|
|
Since the `ManuallyDrop` it returns can be safely used to consume the `Arc`, which is can cause UB if done incorrectly. See #18499.
|
|
When a glob import overriding the visibility of a previous glob import was not properly resolved when the items are only available in the next fixpoint iteration.
The bug was hidden until #18390.
|
|
|
|
Signed-off-by: Tarek <tareknaser360@gmail.com>
|