aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Add helpful pointer to module docsAleksey Kladov2019-11-121-0/+2
|
* Drop obsolete commentAleksey Kladov2019-11-121-4/+0
|
* Move expression lowering to hir_defAleksey Kladov2019-11-127-732/+767
|
* Merge #2222bors[bot]2019-11-125-28/+19
|\ | | | | | | | | | | | | | | | | | | | | | | 2222: Remove owner from Body r=matklad a=matklad cc @flodiebold I do this so that it's easier to move lowering code to another crate (owner is the only thing that tethers Body to the rest of the code), but it's interesting that this is a net reduction of lines. I think this might be considered an evidence that it's a good idea to not add "parent pointers" / parent ids to data structures, and instead add them to `ctx` objects which are used when building data structures bors r+ Co-authored-by: Aleksey Kladov <[email protected]>
| * Remove owner from BodyAleksey Kladov2019-11-125-28/+19
|/
* Merge #2221bors[bot]2019-11-1213-528/+647
|\ | | | | | | | | | | | | | | 2221: Disallow regressing crate docs r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * Disallow regressing crate docsAleksey Kladov2019-11-123-10/+49
| |
| * Move definition of exprs to hir_defAleksey Kladov2019-11-1210-518/+598
|/
* Minor refactoringAleksey Kladov2019-11-122-21/+32
|
* Minor cleanupAleksey Kladov2019-11-126-47/+44
|
* Merge #2216bors[bot]2019-11-123-0/+7
|\ | | | | | | | | | | | | | | 2216: Implement postfix completions feature flag r=matklad a=chmln Resolves #2186 Co-authored-by: Greg <[email protected]>
| * fix typoGreg2019-11-121-1/+1
| |
| * Implement postfix completions feature flagGreg2019-11-123-0/+7
|/
* Merge #2214bors[bot]2019-11-111-1/+1
|\ | | | | | | | | | | | | | | 2214: Fix snap missing node path r=matklad a=mkucijan #2045 Co-authored-by: mkucijan <[email protected]>
| * Add '--scripts-prepend-node-pat' to npm run packagemkucijan2019-11-111-1/+1
|/
* Merge #2213bors[bot]2019-11-118-21/+32
|\ | | | | | | | | | | | | | | | | | | | | | | 2213: Hir generic param r=flodiebold a=matklad r? @flodiebold This should make the life of IDE easier: before, it got `GenericParam(u32)` which was of questionable utility. Now, it's a proper code_model type, so it can gain `source`, `name`, `module` and all the other hir methods, should the IDE need them. Moreover, IDE now doesn't care about internal representation of generic param, which seems like a long-term win. The problem is, of course, that we now have to types named `GenericParam` in hir: this code_model type, and an internal type with an index which doesn't know about the parent. I think it's fine for the time being, but, after we finish cratefication of hir, this local `GenericParam` should move to `hir_def` or `hir_ty`, and *maybe* restrucured as `ParamId / PramData` pair. Co-authored-by: Aleksey Kladov <[email protected]>
| * Introduce hir::GenericParamAleksey Kladov2019-11-114-9/+19
| | | | | | | | Unlike existing hir::GenericParams, this is a global ID.
| * Don't reexport generics from HIRAleksey Kladov2019-11-115-12/+13
|/
* Merge #2200bors[bot]2019-11-1114-173/+171
|\ | | | | | | | | | | | | | | | | | | 2200: Add variables to HIR r=matklad a=matklad Introduce a `hir::Variable`, which should cover locals, parameters and `self`. Unlike `PatId`, variable knows it's owner so it is self-contained, and should be more convenient to use from `ra_ide_api`. The goal here is to hide more details about `Body` from hir, which should make it easier to move `Body` into `hir_def`. I don't think that `ra_ide_api` intrracts with bodies directly at the moment anyway, but the glue layer is based basically on `ast::BindPat`, which seems pretty brittle. Co-authored-by: Aleksey Kladov <[email protected]>
| * Add hir::LocalAleksey Kladov2019-11-1114-173/+171
| |
* | Merge #2205bors[bot]2019-11-119-22/+458
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | 2205: Implement bulitin line! macro r=matklad a=edwin0cheng This PR implements bulitin macro `line!` and add basic infra-structure for other bulitin macros: 1. Extend `MacroDefId` to support builtin macros 2. Add a `quote!` macro for simple quasi quoting. Note that for support others builtin macros, eager macro expansion have to be supported first, this PR not try to handle it. :) Co-authored-by: Edwin Cheng <[email protected]>
| * Add MacroDefKindEdwin Cheng2019-11-116-51/+29
| |
| * Add line macro and testsEdwin Cheng2019-11-113-7/+84
| |
| * Add quote macroEdwin Cheng2019-11-112-0/+262
| |
| * Add basic bultin macro infrastructureEdwin Cheng2019-11-118-29/+148
| |
* | Merge #2211bors[bot]2019-11-111-72/+73
|\ \ | | | | | | | | | | | | | | | | | | | | | 2211: Refactor highlighting to use classify_name r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | Refactor highlighting to use classify_nameAleksey Kladov2019-11-111-72/+73
| | |
* | | Merge #2210bors[bot]2019-11-117-177/+200
|\| | | | | | | | | | | | | | | | | | | | | | | 2210: Introduce ToNav trait r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | Introduce ToNav traitAleksey Kladov2019-11-117-177/+200
|/ /
* | Merge #2209bors[bot]2019-11-112-6/+34
|\ \ | | | | | | | | | | | | | | | | | | | | | 2209: impl fmt::Display for BuiltinType r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | impl fmt::Display for BuiltinTypeAleksey Kladov2019-11-112-6/+34
|/ /
* | Merge #2203bors[bot]2019-11-111-19/+31
|\ \ | | | | | | | | | | | | | | | | | | | | | 2203: Hover for builtins r=matklad a=kjeremy Fixes #2192 Co-authored-by: Jeremy Kolb <[email protected]>
| * | Hover for builtinsJeremy Kolb2019-11-101-19/+31
| | |
* | | Merge #2207bors[bot]2019-11-114-1/+131
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2207: Forbid visibility qualifiers in traits r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | | Forbid visibility qualifiers in traitsAleksey Kladov2019-11-114-1/+131
|/ / /
* | | Merge #2206bors[bot]2019-11-112-2/+3
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2206: Disable debuginfo in dev builds r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | | Disable debuginfo in dev buildsAleksey Kladov2019-11-112-2/+3
|/ / / | | | | | | | | | Hopefully, this makes printf debugging faster!
* | | Merge #2204bors[bot]2019-11-111-1/+5
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2204: Make primitive tys public r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | | Make primitive tys publicAleksey Kladov2019-11-111-1/+5
|/ / /
* | | Merge #2201bors[bot]2019-11-105-6/+112
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2201: Resolve core types r=matklad a=Matthias247 This adds support for completion and goto definition of types defined within the "core" crate. The core crate is added as a dependency to each crate in the project. The core crate exported it's own prelude. This caused now all crates to inherit the core crates prelude instead of the std crates. In order to avoid the problem the prelude resolution has been changed to overwrite an already resolved prelude if this was set to a crate named core - in order to pick a better prelude like std. Fixes #2199 Co-authored-by: Matthias Einwag <[email protected]>
| * | Overwrite the prelude with one defined in a later dependencyMatthias Einwag2019-11-102-9/+8
| | | | | | | | | | | | | | | | | | | | | This removes the special casing for the "core" prelude. Whenever a later dependency also exports a prelude, it will replace the formerly imported prelude. The utilized prelude then depends purely on import order.
| * | Add tests for resolving types in core and std preludesMatthias Einwag2019-11-102-0/+93
| | |
| * | Resolve core typesMatthias Einwag2019-11-093-2/+16
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds support for completion and goto definition of types defined within the "core" crate. The core crate is added as a dependency to each crate in the project. The core crate exported it's own prelude. This caused now all crates to inherit the core crates prelude instead of the std crates. In order to avoid the problem the prelude resolution has been changed to overwrite an already resolved prelude if this was set to a crate named core - in order to pick a better prelude like std. Fixes #2199
* | Merge #2198bors[bot]2019-11-0910-53/+51
|\ \ | |/ |/| | | | | | | | | | | 2198: Unfork struct and union ids r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * Unfork struct and union idsAleksey Kladov2019-11-0910-53/+51
|/
* Merge #2197bors[bot]2019-11-097-78/+92
|\ | | | | | | | | | | | | | | 2197: Remove typed macro parsing API r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * Remove typed macro parsing APIAleksey Kladov2019-11-096-72/+84
| | | | | | | | | | We do type-erasure on every path anyway, so it doesn't make much sense to duplicate this function for every type
| * Minor cleanupAleksey Kladov2019-11-091-6/+8
|/
* Merge #2169bors[bot]2019-11-098-101/+305
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | 2169: MBE: Mapping spans for goto definition r=matklad a=edwin0cheng Currently, go to definition gives the wrong span in MBE. This PR implement a mapping mechanism to fix it and it could be used for future MBE hygiene implementation. The basic idea of the mapping is: 1. When expanding the macro, generated 2 `TokenMap` which maps the macro args and macro defs between tokens and input text-ranges. 2. Before converting generated `TokenTree` to `SyntaxNode`, generated a `ExpandedRangeMap` which is a mapping between token and output text-ranges. 3. Using these 3 mappings to construct an `ExpansionInfo` which can map between input text ranges and output text ranges. Co-authored-by: Edwin Cheng <[email protected]>
| * Remove map_ranges in RevTokenMapEdwin Cheng2019-11-094-66/+35
| |