Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Merge #8398 | bors[bot] | 2021-05-11 | 1 | -7/+17 |
|\ | | | | | | | | | | | | | | | 8398: Fix inference with conditionally compiled tails r=flodiebold a=DJMcNab Fixes #8378 Co-authored-by: Daniel McNab <[email protected]> | ||||
| * | Fix inference with conditionally compiled tails | Daniel McNab | 2021-05-03 | 1 | -7/+17 |
| | | | | | | | | Fixes #8378 | ||||
* | | Reuse database in LowerCtx | Jonas Schievink | 2021-05-06 | 1 | -2/+2 |
| | | |||||
* | | Don't store call-site text offsets in hygiene info | Jonas Schievink | 2021-05-06 | 1 | -12/+18 |
|/ | |||||
* | hir_ty: Expand macros at type position | cynecx | 2021-04-17 | 1 | -7/+27 |
| | |||||
* | Include path in `unresolved-macro-call` diagnostic | Jonas Schievink | 2021-04-16 | 1 | -2/+6 |
| | |||||
* | Support macros in pattern position | Jonas Schievink | 2021-04-11 | 1 | -7/+27 |
| | |||||
* | Intern TypeRefs stored in Body | Jonas Schievink | 2021-04-06 | 1 | -4/+7 |
| | | | | Minor improvement to memory usage (1 MB or so) | ||||
* | Use Box'es to reduce the size of hir_def::expr::Pat from 112 to 64 bytes on ↵ | Alexandru Macovei | 2021-04-06 | 1 | -3/+3 |
| | | | | 64bit | ||||
* | Use Box'es to reduce size of hir_def::expr::Expr from 128 to 72 bytes (on ↵ | Alexandru Macovei | 2021-04-06 | 1 | -6/+10 |
| | | | | | | | | | | 64bit systems) Rationale: only a minority of variants used almost half the size. By keeping large members (especially in Option) behind a box the memory cost is only payed when the large variants are needed. This reduces the size Vec<Expr> needs to allocate. | ||||
* | Only remember blocks that have a DefMap | Jonas Schievink | 2021-04-04 | 1 | -5/+7 |
| | |||||
* | Fix recursive macro statement expansion | Edwin Cheng | 2021-03-25 | 1 | -35/+33 |
| | |||||
* | Handle `#[cfg]` on call arguments | Jonas Schievink | 2021-03-17 | 1 | -11/+16 |
| | |||||
* | Merge #8048 | bors[bot] | 2021-03-17 | 1 | -2/+13 |
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8048: Fix missing unresolved macro diagnostic in function body r=edwin0cheng a=brandondong This was an issue I found while working on https://github.com/rust-analyzer/rust-analyzer/pull/7970. **Reproduction:** 1. Call a non-existent macro in a function body. ``` fn main() { foo!(); } ``` 2. No diagnostics are raised. An unresolved-macro-call diagnostic is expected. 3. If the macro call is instead outside of the function body, this works as expected. I believe this worked previously and regressed in https://github.com/rust-analyzer/rust-analyzer/pull/7805. **Behavior prior to https://github.com/rust-analyzer/rust-analyzer/pull/7805:** - The unresolved-macro-call diagnostic did not exist. Instead, a macro-error diagnostic would be raised with the text "could not resolve macro [path]". - This was implemented by adding an error to the error sink (https://github.com/rust-analyzer/rust-analyzer/pull/7805/files#diff-50a326c5ae465bd9b31ee4310186380aa06e4fa1f6b41dbc0aed5bcc656a3cb8L657). - The error was propagated through https://github.com/rust-analyzer/rust-analyzer/blob/1a82af3527e476d52410ff4dfd2fb4c57466abcb/crates/hir_def/src/body.rs#L123 eventually reaching https://github.com/rust-analyzer/rust-analyzer/blob/1a82af3527e476d52410ff4dfd2fb4c57466abcb/crates/hir_def/src/body/lower.rs#L569. **Behavior after:** - Instead of writing to the error sink, an UnresolvedMacro error is now returned (https://github.com/rust-analyzer/rust-analyzer/pull/7805/files#diff-50a326c5ae465bd9b31ee4310186380aa06e4fa1f6b41dbc0aed5bcc656a3cb8R631). - The parent caller throws away the error as its function signature is `Option<MacroCallId>` (https://github.com/rust-analyzer/rust-analyzer/pull/7805/files#diff-50a326c5ae465bd9b31ee4310186380aa06e4fa1f6b41dbc0aed5bcc656a3cb8R604). - We instead now reach the warn condition (https://github.com/rust-analyzer/rust-analyzer/blob/1a82af3527e476d52410ff4dfd2fb4c57466abcb/crates/hir_def/src/body.rs#L124) and no diagnostics are created in https://github.com/rust-analyzer/rust-analyzer/blob/1a82af3527e476d52410ff4dfd2fb4c57466abcb/crates/hir_def/src/body/lower.rs#L575. **Fix:** - Make sure to propagate the UnresolvedMacro error. Report the error using the new unresolved-macro-call diagnostic. Co-authored-by: Brandon <[email protected]> | ||||
| * | Fix missing unresolved macro diagnostic in function body | Brandon | 2021-03-16 | 1 | -2/+13 |
| | | |||||
* | | Fix macro expansion for statements w/o semicolon | Edwin Cheng | 2021-03-16 | 1 | -47/+58 |
|/ | |||||
* | Simplify source maps for fields | Aleksey Kladov | 2021-03-15 | 1 | -15/+9 |
| | |||||
* | Stop fetching ItemTrees for no reason | Jonas Schievink | 2021-03-10 | 1 | -14/+1 |
| | |||||
* | Remove `item_scope` field from `Body` | Jonas Schievink | 2021-03-09 | 1 | -139/+4 |
| | |||||
* | Store inner `BlockId`s in `Body` | Jonas Schievink | 2021-03-09 | 1 | -0/+3 |
| | |||||
* | Use upstream cov-mark | Laurențiu Nicola | 2021-03-08 | 1 | -2/+1 |
| | |||||
* | Introduce TypeCtor::Scalar | Lukas Wirth | 2021-02-28 | 1 | -6/+11 |
| | |||||
* | Remove redundant clones | Yoshua Wuyts | 2021-02-05 | 1 | -1/+1 |
| | |||||
* | Expander: store a LocalModuleId, not ModuleId | Jonas Schievink | 2021-02-04 | 1 | -7/+7 |
| | | | | | It already stores the DefMap containing the module, so having a full ModuleId is unnecessary and makes it easier to mix things up | ||||
* | Shortcut `block_def_map` if there's no inner items | Jonas Schievink | 2021-02-03 | 1 | -3/+6 |
| | | | | | This previously didn't work, but apparently only because of the wonky test setup | ||||
* | Use block_def_map in body lowering | Jonas Schievink | 2021-02-03 | 1 | -10/+25 |
| | |||||
* | Revert "Use block_def_map in body lowering" | Jonas Schievink | 2021-02-02 | 1 | -25/+10 |
| | |||||
* | Use block_def_map in body lowering | Jonas Schievink | 2021-02-01 | 1 | -10/+25 |
| | |||||
* | add more counts | Aleksey Kladov | 2021-01-27 | 1 | -0/+2 |
| | |||||
* | Revert "Make use of `block_def_map` in body lowering" | Jonas Schievink | 2021-01-21 | 1 | -12/+4 |
| | |||||
* | Make use of `block_def_map` in body lowering | Jonas Schievink | 2021-01-21 | 1 | -4/+12 |
| | | | | | Removes the `local_scope` hack from `Expander` in favor of tracking the `DefMap` in use during body lowering | ||||
* | Add support for yiled keyword | Daiki Ihara | 2021-01-15 | 1 | -0/+4 |
| | |||||
* | prepare to publish el libro de arena | Aleksey Kladov | 2021-01-14 | 1 | -1/+1 |
| | |||||
* | Fixed typos in code comments | Vincent Esche | 2021-01-09 | 1 | -2/+2 |
| | |||||
* | Rename expr -> tail_expr | Aleksey Kladov | 2021-01-05 | 1 | -1/+1 |
| | |||||
* | Merge #7021 | bors[bot] | 2020-12-24 | 1 | -47/+45 |
|\ | | | | | | | | | | | | | | | 7021: Track labels in the HIR r=matklad a=Veykril Groundwork for #6966 Co-authored-by: Lukas Wirth <[email protected]> | ||||
| * | Track labels in the HIR | Lukas Wirth | 2020-12-24 | 1 | -47/+45 |
| | | |||||
* | | Implement const block inference | Lukas Wirth | 2020-12-23 | 1 | -0/+4 |
| | | |||||
* | | Implement const pat inference | Lukas Wirth | 2020-12-23 | 1 | -3/+9 |
|/ | |||||
* | Update ungrammar for const block patterns | Lukas Wirth | 2020-12-23 | 1 | -1/+3 |
| | |||||
* | Refactor attributes API to allow handling cfg_attr | Jonas Schievink | 2020-12-18 | 1 | -1/+1 |
| | |||||
* | Node-ify lifetimes | Lukas Wirth | 2020-12-16 | 1 | -17/+7 |
| | |||||
* | Make macro def krate mandatory | Jonas Schievink | 2020-12-15 | 1 | -1/+1 |
| | | | | Refactors builtin derive support to go through proper name resolution | ||||
* | Basic support for decl macros 2.0 | Jonas Schievink | 2020-12-15 | 1 | -1/+4 |
| | |||||
* | Move to upstream `macro_rules!` model | Jonas Schievink | 2020-12-15 | 1 | -65/+69 |
| | |||||
* | Expand statements for mbe in lowering | Edwin Cheng | 2020-12-15 | 1 | -82/+134 |
| | |||||
* | Attach macro expansion errors to the right file | Jonas Schievink | 2020-12-02 | 1 | -2/+5 |
| | |||||
* | Emit unresolved proc macro errors | Jonas Schievink | 2020-12-01 | 1 | -8/+23 |
| | |||||
* | Emit macro diagnostics when lowering bodies | Jonas Schievink | 2020-11-30 | 1 | -2/+12 |
| | |||||
* | Cleanup API | Aleksey Kladov | 2020-11-06 | 1 | -10/+11 |
| |