Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Merge #2466 | bors[bot] | 2019-12-08 | 3 | -44/+165 |
|\ | | | | | | | | | | | | | | | | | | | | | 2466: Handle partial resolve cases r=matklad a=edwin0cheng Another try to fix #2443 : We resolve all imports every time in `DefCollector::collect` loop even it is resolved previously. This is because other unresolved imports and macros will bring in another `PerNs`, so we can only assume that it has been partially resolved. Co-authored-by: Edwin Cheng <[email protected]> | ||||
| * | Refactor resolve_imports logic | Edwin Cheng | 2019-12-07 | 2 | -40/+129 |
| | | |||||
| * | Push glob_imports only if non-exists | Edwin Cheng | 2019-12-07 | 1 | -4/+4 |
| | | |||||
| * | Add tests | Edwin Cheng | 2019-12-06 | 1 | -0/+32 |
| | | |||||
* | | Remove MacroFileKind | Edwin Cheng | 2019-12-08 | 1 | -2/+2 |
|/ | |||||
* | Add expansion infrastructure for derive macros | Florian Diebold | 2019-12-05 | 3 | -7/+105 |
| | |||||
* | Use placeholder instead of `Option` | ice1000 | 2019-12-05 | 1 | -1/+1 |
| | |||||
* | Three-state enum for module origin | ice1000 | 2019-12-04 | 1 | -4/+3 |
| | |||||
* | Replace `ra_hir_expand::either` with crate | ice1000 | 2019-12-03 | 1 | -3/+3 |
| | |||||
* | Remove some empty lines | Edwin Cheng | 2019-12-01 | 1 | -2/+0 |
| | |||||
* | Use index instead of peekable | Edwin Cheng | 2019-12-01 | 1 | -35/+19 |
| | |||||
* | Add BuiltinShadowMode | Edwin Cheng | 2019-11-30 | 2 | -15/+60 |
| | |||||
* | Use InFile for AstId | Aleksey Kladov | 2019-11-28 | 1 | -2/+2 |
| | |||||
* | Rename Source -> InFile | Aleksey Kladov | 2019-11-28 | 1 | -3/+3 |
| | |||||
* | Use Name::missing consistently | Aleksey Kladov | 2019-11-27 | 1 | -1/+1 |
| | |||||
* | Reformat | Aleksey Kladov | 2019-11-27 | 1 | -2/+1 |
| | |||||
* | Rename module_id -> local_id | Aleksey Kladov | 2019-11-27 | 2 | -15/+15 |
| | |||||
* | Hide MacroCallLoc | Edwin Cheng | 2019-11-26 | 1 | -4/+3 |
| | |||||
* | Fix hir for ast::UnionDef | Aleksey Kladov | 2019-11-25 | 3 | -13/+19 |
| | |||||
* | Simplify | Aleksey Kladov | 2019-11-24 | 1 | -1/+1 |
| | |||||
* | Cleanup nameres | Aleksey Kladov | 2019-11-24 | 1 | -1/+4 |
| | |||||
* | Use Trace in raw_items | Aleksey Kladov | 2019-11-24 | 1 | -10/+10 |
| | |||||
* | Some docs | Aleksey Kladov | 2019-11-24 | 1 | -1/+6 |
| | |||||
* | Cleanup | Aleksey Kladov | 2019-11-24 | 1 | -1/+1 |
| | |||||
* | Nicer API for attrs | Aleksey Kladov | 2019-11-24 | 1 | -5/+9 |
| | |||||
* | Slightly reduce code duplication | Aleksey Kladov | 2019-11-24 | 1 | -5/+2 |
| | |||||
* | Simplify | Aleksey Kladov | 2019-11-24 | 1 | -8/+4 |
| | |||||
* | Switch to StaticLoc for statics | Aleksey Kladov | 2019-11-24 | 1 | -2/+5 |
| | |||||
* | Push poison_macros down | Aleksey Kladov | 2019-11-24 | 1 | -11/+27 |
| | |||||
* | Move ModuleSource back to hir | Aleksey Kladov | 2019-11-23 | 1 | -14/+4 |
| | |||||
* | Privatise nameres | Aleksey Kladov | 2019-11-23 | 3 | -76/+4 |
| | |||||
* | Rename CrateModuleId | Aleksey Kladov | 2019-11-23 | 4 | -26/+26 |
| | |||||
* | Move ImportId | Aleksey Kladov | 2019-11-23 | 2 | -19/+15 |
| | |||||
* | Get rid of DefDatabase2 | Aleksey Kladov | 2019-11-23 | 5 | -16/+16 |
| | |||||
* | Encapsulate Attrs | Aleksey Kladov | 2019-11-22 | 2 | -23/+15 |
| | |||||
* | Move constants to new ID | Aleksey Kladov | 2019-11-20 | 1 | -2/+10 |
| | | | | This allows us to get rid of trait item index | ||||
* | Don't duplicate ContainerId type | Aleksey Kladov | 2019-11-20 | 1 | -4/+4 |
| | |||||
* | Switch type aliases to new sources | Aleksey Kladov | 2019-11-20 | 1 | -4/+10 |
| | |||||
* | Next gen IDs for functions | Aleksey Kladov | 2019-11-20 | 1 | -4/+9 |
| | | | | | | | | | | | | | | | | | The current system with AstIds has two primaraly drawbacks: * It is possible to manufacture IDs out of thin air. For example, it's possible to create IDs for items which are not considered in CrateDefMap due to cfg. Or it is possible to mixup structs and unions, because they share ID space. * Getting the ID of a parent requires a secondary index. Instead, the plan is to pursue the more traditional approach, where each items stores the id of the parent declaration. This makes `FromSource` more awkward, but also more correct: now, to get from an AST to HIR, we first do this recursively for the parent item, and the just search the children of the parent for the matching def | ||||
* | Rename Source::ast -> Source::value | Aleksey Kladov | 2019-11-20 | 1 | -1/+1 |
| | |||||
* | Disable doctests | Aleksey Kladov | 2019-11-17 | 1 | -1/+1 |
| | |||||
* | Store impls in CrateDefMap | Aleksey Kladov | 2019-11-15 | 2 | -3/+37 |
| | |||||
* | Move scope tests to hir_def | Aleksey Kladov | 2019-11-15 | 1 | -1/+2 |
| | |||||
* | Add convenience method for testing | Aleksey Kladov | 2019-11-15 | 3 | -5/+5 |
| | |||||
* | Merge #2205 | bors[bot] | 2019-11-11 | 2 | -3/+29 |
|\ | | | | | | | | | | | | | | | | | | | | | | | | | 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 MacroDefKind | Edwin Cheng | 2019-11-11 | 1 | -8/+7 |
| | | |||||
| * | Add basic bultin macro infrastructure | Edwin Cheng | 2019-11-11 | 2 | -4/+31 |
| | | |||||
* | | Overwrite the prelude with one defined in a later dependency | Matthias Einwag | 2019-11-10 | 1 | -9/+6 |
| | | | | | | | | | | | | | | 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 preludes | Matthias Einwag | 2019-11-10 | 1 | -0/+31 |
| | | |||||
* | | Resolve core types | Matthias Einwag | 2019-11-09 | 1 | -1/+5 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 |