Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | | | Merge #8018 | bors[bot] | 2021-03-15 | 1 | -5/+29 | |
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8018: Make Ty wrap TyKind in an Arc r=flodiebold a=flodiebold ... to further move towards Chalk. This is a bit of a slowdown (218ginstr vs 213ginstr for inference on RA), even though it allows us to unwrap the Substs in `TyKind::Ref` etc.. Co-authored-by: Florian Diebold <[email protected]> | |||||
| * | | | Don't use Substs for Ref/Raw/Array/Slice | Florian Diebold | 2021-03-14 | 1 | -5/+29 | |
| |/ / | ||||||
* | | | Simplify source maps for fields | Aleksey Kladov | 2021-03-15 | 1 | -21/+3 | |
| | | | ||||||
* | | | Goto definition works for `S { a: }` case | Aleksey Kladov | 2021-03-15 | 1 | -3/+22 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | What happens here is that we lower `: ` to a missing expression, and then correctly record that the corresponding field expression resolves to a specific field. Where we fail is in the mapping of syntax to this missing expression. Doing it via `ast_field.expr()` fails, as that expression is `None`. Instead, we go in the opposite direcition and ask each lowered field about its source. This works, but has wrong complexity `O(N)` and, really, the implementation is just too complex. We need some better management of data here. | |||||
* | | | some clippy::performance fixes | Matthias Krüger | 2021-03-15 | 1 | -2/+1 | |
|/ / | | | | | | | | | | | | | use vec![] instead of Vec::new() + push() avoid redundant clones use chars instead of &str for single char patterns in ends_with() and starts_with() allocate some Vecs with capacity to avoid unneccessary resizing | |||||
* | | More renaming | Florian Diebold | 2021-03-14 | 1 | -1/+1 | |
| | | ||||||
* | | Rename some fields to their Chalk names | Florian Diebold | 2021-03-14 | 1 | -2/+2 | |
| | | ||||||
* | | Move type lowering methods to TyLoweringContext | Florian Diebold | 2021-03-13 | 1 | -3/+3 | |
| | | ||||||
* | | Create TraitEnvironment through a query | Florian Diebold | 2021-03-13 | 1 | -5/+7 | |
| | | ||||||
* | | Use chalk_ir::PlaceholderIndex | Florian Diebold | 2021-03-13 | 1 | -1/+1 | |
| | | ||||||
* | | Use chalk_ir::FnDefId | Florian Diebold | 2021-03-13 | 1 | -4/+1 | |
| | | ||||||
* | | Use chalk_ir::AssocTypeId | Florian Diebold | 2021-03-13 | 1 | -2/+5 | |
| | | ||||||
* | | Separate `Ty` and `TyKind` like in Chalk | Florian Diebold | 2021-03-13 | 1 | -33/+34 | |
|/ | | | | | Currently `Ty` just wraps `TyKind`, but this allows us to change most places to already use `intern` / `interned`. | |||||
* | Avoid double text edits when renaming mod declaration | Lukas Wirth | 2021-03-10 | 1 | -1/+0 | |
| | ||||||
* | Delete `ContainerId` | Jonas Schievink | 2021-03-09 | 1 | -21/+9 | |
| | ||||||
* | Stop using `ContainerId` in `AssocContainerId` | Jonas Schievink | 2021-03-09 | 1 | -2/+2 | |
| | ||||||
* | Merge #7942 | bors[bot] | 2021-03-09 | 1 | -7/+1 | |
|\ | | | | | | | | | | | | | | | 7942: Show whether a binding is mutable or not on hover r=Veykril a=Veykril bors r+ Co-authored-by: Lukas Wirth <[email protected]> | |||||
| * | Show whether a binding is mutable or not on hover | Lukas Wirth | 2021-03-09 | 1 | -7/+1 | |
| | | ||||||
* | | Cleanup auto-ref in completion | Aleksey Kladov | 2021-03-09 | 1 | -4/+3 | |
|/ | ||||||
* | Merge #7873 #7933 | bors[bot] | 2021-03-09 | 1 | -0/+11 | |
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7873: Consider unresolved qualifiers during flyimport r=matklad a=SomeoneToIgnore Closes https://github.com/rust-analyzer/rust-analyzer/issues/7679 Takes unresolved qualifiers into account, providing better completions (or none, if the path is resolved or do not match). Does not handle cases when both path qualifier and some trait has to be imported: there are many extra issues with those (such as overlapping imports, for instance) that will require large diffs to address. Also does not do a fuzzy search on qualifier, that requires some adjustments in `import_map` for better queries and changes to the default replace range which also seems relatively big to include here. ![qualifier_completion](https://user-images.githubusercontent.com/2690773/110040808-0af8dc00-7d4c-11eb-83db-65af94e843bb.gif) 7933: Improve compilation speed r=matklad a=matklad bors r+ 🤖 Co-authored-by: Kirill Bulatov <[email protected]> Co-authored-by: Aleksey Kladov <[email protected]> | |||||
| * | Less lifetines: derive SemanticsScope in place | Kirill Bulatov | 2021-03-08 | 1 | -1/+1 | |
| | | ||||||
| * | Refactor the import location | Kirill Bulatov | 2021-03-08 | 1 | -0/+11 | |
| | | ||||||
| * | Do not propose already imported imports | Kirill Bulatov | 2021-03-08 | 1 | -1/+1 | |
| | | ||||||
* | | Use `Type::new_with_resolver_inner` more | Jonas Schievink | 2021-03-09 | 1 | -26/+14 | |
|/ | ||||||
* | Hygiene is an internal implementation detail of the compiler | Aleksey Kladov | 2021-03-08 | 1 | -2/+5 | |
| | ||||||
* | Remove useless code_model indirection | Aleksey Kladov | 2021-03-08 | 5 | -2132/+2120 | |
| | ||||||
* | Rename a few `crate_def_map`s to `def_map` | Jonas Schievink | 2021-03-06 | 1 | -3/+3 | |
| | | | | These could all be block `DefMap`s instead of crate-level `DefMap`s | |||||
* | Use chalk_ir::AdtId | Lukas Wirth | 2021-03-04 | 1 | -3/+3 | |
| | ||||||
* | Show docs on hover for keywords and primitives | Lukas Wirth | 2021-03-02 | 1 | -6/+5 | |
| | ||||||
* | Use chalk_ir::Mutability | Lukas Wirth | 2021-03-01 | 1 | -5/+8 | |
| | ||||||
* | Introduce Ty::Alias | Lukas Wirth | 2021-03-01 | 1 | -4/+4 | |
| | ||||||
* | Being Ty::InferenceVar closes to chalk equivalent | Lukas Wirth | 2021-03-01 | 1 | -2/+2 | |
| | ||||||
* | Lift FnPointer into a struct | Lukas Wirth | 2021-02-28 | 1 | -5/+5 | |
| | ||||||
* | Turn Ty::Tuple variant into a tuple-variant | Lukas Wirth | 2021-02-28 | 1 | -2/+2 | |
| | ||||||
* | Merge #7813 | bors[bot] | 2021-02-28 | 2 | -106/+61 | |
|\ | | | | | | | | | | | | | | | 7813: Inline TypeCtor into Ty r=flodiebold a=Veykril This removes the `ApplicationTy` variant from `Ty` bringing the representation a lot closer to chalk's `TyKind`. Co-authored-by: Lukas Wirth <[email protected]> | |||||
| * | Fix code_model::Type::walk not walking all types | Lukas Wirth | 2021-02-28 | 1 | -7/+7 | |
| | | ||||||
| * | Inline TypeCtor into Ty | Lukas Wirth | 2021-02-28 | 2 | -104/+59 | |
| | | ||||||
* | | Merge #7804 | bors[bot] | 2021-02-28 | 1 | -3/+6 | |
|\| | | | | | | | | | | | | | | | 7804: Introduce TypeCtor::Scalar r=lnicola a=Veykril `TypeCtor::Int(..) | TypeCtor::Float(..) | TypeCtor::Char | TypeCtor::Bool` => `TypeCtor::Scalar(..)`, in this case we can actually just straight up use `chalk_ir::Scalar` already since its just a POD without any IDs or anything. Co-authored-by: Lukas Wirth <[email protected]> | |||||
| * | Introduce TypeCtor::Scalar | Lukas Wirth | 2021-02-28 | 1 | -3/+6 | |
| | | ||||||
* | | For unresolved macros, hightlight only the last segment | Aleksey Kladov | 2021-02-28 | 2 | -6/+6 | |
|/ | ||||||
* | Don't write trailing whitespace when formatting empty GenericPredicates | Lukas Wirth | 2021-02-20 | 1 | -3/+2 | |
| | ||||||
* | Consider import prefix config settings during flyimports | Kirill Bulatov | 2021-02-20 | 1 | -1/+1 | |
| | ||||||
* | expose hir::Type::type_paramters | Vladyslav Katasonov | 2021-02-13 | 1 | -0/+12 | |
| | | | | Used to get E parameter from `Result<T, E>` | |||||
* | Wrap `BuiltinType` in code model | Jonas Schievink | 2021-02-11 | 4 | -11/+41 | |
| | ||||||
* | Resolve TupleStructPat in SourceAnalyzer::resolve_path | Lukas Wirth | 2021-02-10 | 1 | -6/+11 | |
| | ||||||
* | Prefer ValueNS when resolving hir path for PathExpressions | Lukas Wirth | 2021-01-29 | 1 | -14/+31 | |
| | ||||||
* | Classify function calls as functions when shadowed by types | Lukas Wirth | 2021-01-28 | 1 | -2/+6 | |
| | ||||||
* | Create all `ModuleId`s through a `DefMap` method | Jonas Schievink | 2021-01-25 | 2 | -23/+14 | |
| | | | | | `ModuleId` needs to be able to represent blocks, and only the associated `DefMap` will know how to construct that `ModuleId` | |||||
* | Implement fix, add tests | Phil Ellison | 2021-01-23 | 1 | -9/+0 | |
| | ||||||
* | Add diagnostic for filter_map followed by next | Phil Ellison | 2021-01-23 | 1 | -1/+10 | |
| |