aboutsummaryrefslogtreecommitdiff
path: root/crates/hir_def/src/nameres/tests
Commit message (Collapse)AuthorAgeFilesLines
* Expand legacy-scoped macro during collectionJonas Schievink2021-03-211-0/+21
|
* Fix handling of `#![cfg]` in outline module fileJonas Schievink2021-03-191-0/+19
|
* Add testJonas Schievink2021-03-181-0/+26
|
* Improve diagnostic when including nonexistent fileJonas Schievink2021-03-171-1/+1
|
* Use first early expansion error during nameresJonas Schievink2021-03-171-0/+17
|
* Merge #7970bors[bot]2021-03-151-0/+45
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7970: Fix incorrect diagnostics for failing built in macros r=jonas-schievink a=brandondong **Reproduction:** 1. Use a built in macro in such a way that rust-analyzer fails to expand it. For example: **lib.rs** ``` include!("<valid file but without a .rs extension so it is not indexed by rust-analyzer>"); ``` 2. rust-analyzer highlights the macro call and says the macro itself cannot be resolved even though include! is in the standard library (unresolved-macro-call diagnostic). 3. No macro-error diagnostic is raised. **Root cause for incorrect unresolved-macro-call diagnostic:** 1. collector:collect_macro_call is able to resolve include! in legacy scope but the expansion fails. Therefore, it's pushed into unexpanded_macros to be retried with module scope. 2. include! fails at the resolution step in collector:resolve_macros now that it's using module scope. Therefore, it's retained in unexpanded_macros. 3. Finally, collector:finish tries resolving the remaining unexpanded macros but only with module scope. include! again fails at the resolution step so a diagnostic is created. **Root cause for missing macro-error diagnostic:** 1. In collector:resolve_macros, directive.legacy is None since eager expansion failed in collector:collect_macro_call. The macro_call_as_call_id fails to resolve since we're retrying in module scope. Therefore, collect_macro_expansion is not called for the macro and no macro-error diagnostic is generated. **Fix:** - In collector:collect_macro_call, do not add failing built-in macros to the unexpanded_macros list and immediately raise the macro-error diagnostic. This is in contrast to lazy macros which are resolved in collector::resolve_macros and later expanded in collect_macro_expansion where a macro-error diagnostic may be raised. Co-authored-by: Brandon <[email protected]> Co-authored-by: brandondong <[email protected]>
| * Fix incorrect diagnositics for failing built in eager macrosBrandon2021-03-141-0/+45
| |
* | Extend cfg_attr testJonas Schievink2021-03-131-0/+3
|/
* Use upstream cov-markLaurențiu Nicola2021-03-084-14/+13
|
* Use body lowering for block_def_map testsJonas Schievink2021-02-031-186/+0
| | | | Removes the hacky and buggy custom lowering code
* Revert "Use block_def_map in body lowering"Jonas Schievink2021-02-021-0/+186
|
* Use body lowering for block_def_map testsJonas Schievink2021-02-011-186/+0
| | | | Removes the hacky and buggy custom lowering code
* Honor #![macro_use] in mod source filesLukas Wirth2021-01-311-0/+14
|
* block_def_map: add a few macro testsJonas Schievink2021-01-281-0/+63
|
* Traverse parent DefMap for `super` pathsJonas Schievink2021-01-251-0/+26
|
* Add mark::check! and mark::hit!kazatsuyu2021-01-221-0/+1
|
* Fix error when using "extern crate self as"kazatsuyu2021-01-221-0/+15
|
* Remove unnecessary annotations from testsJonas Schievink2021-01-211-4/+0
|
* Add test for nameres in nested blocksJonas Schievink2021-01-211-0/+29
|
* Add test that merges inner and outer namesJonas Schievink2021-01-211-0/+25
|
* Add name resolution query for block expressionsJonas Schievink2021-01-211-0/+47
|
* Change <|> to $0 - RebaseKevaundray Wedderburn2021-01-071-2/+2
|
* Fixed old failed test due to new fixesEdwin Cheng2020-12-281-2/+2
|
* fixture -> ra_fixtureJonas Schievink2020-12-191-2/+2
|
* Test paths to derive macrosJonas Schievink2020-12-191-2/+2
|
* Hit a markJonas Schievink2020-12-181-0/+2
|
* Add testJonas Schievink2020-12-181-0/+16
|
* Make macro def krate mandatoryJonas Schievink2020-12-151-1/+30
| | | | Refactors builtin derive support to go through proper name resolution
* Escape string literals in Attr::from_srcLukas Wirth2020-12-081-1/+1
|
* Don't discard PathKind::Abs information in lower_use::convert_pathLukas Wirth2020-12-021-0/+21
|
* Test def map invalidation with #[cfg] below changeJonas Schievink2020-11-261-0/+6
|
* Don't stack overflow on circular modulesAleksey Kladov2020-11-041-0/+27
| | | | closes #6453
* Feedback.James Leitch2020-11-021-1/+1
|
* Test Fixture ExplicitRoot + ModuleResolutionRelativePathOutsideRoot.James Leitch2020-11-021-2/+15
|
* Diagnose #[cfg]s in bodiesJonas Schievink2020-10-231-33/+1
|
* Emit better #[cfg] diagnosticsJonas Schievink2020-10-221-0/+22
|
* Account for proc macro helpers when parsing attrJonas Schievink2020-10-051-0/+7
|
* Reduce visibility of non-proc-macrosJonas Schievink2020-09-181-0/+41
| | | | | proc-macro crates only export proc-macros, but currently other items are also considered public (and show up in completion)
* Add testJonas Schievink2020-09-181-0/+32
|
* Don't diagnose imports whose base crate is missingJonas Schievink2020-09-171-0/+24
|
* Add annotation-based nameres diagnostic testsJonas Schievink2020-09-162-38/+107
|
* Track import sources and emit diagnosticsJonas Schievink2020-09-161-9/+11
|
* Rename ra_hir_def -> hir_defAleksey Kladov2020-08-135-0/+1927