aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_def/src/body/lower.rs
Commit message (Collapse)AuthorAgeFilesLines
* Merge #4305bors[bot]2020-05-051-3/+10
|\ | | | | | | | | | | | | | | 4305: Favor types for record type struct in name resolution r=matklad a=edwin0cheng Fixed #4235 Co-authored-by: Edwin Cheng <[email protected]>
| * Change favor_types to has_constructorEdwin Cheng2020-05-041-4/+4
| |
| * Remove unused importEdwin Cheng2020-05-041-2/+2
| |
| * Favor types for Record in name resolutionEdwin Cheng2020-05-041-4/+11
| |
* | refactor: use attrsOwner directly in is_cfg_enabledBenjamin Coenen2020-05-051-4/+2
|/ | | | Signed-off-by: Benjamin Coenen <[email protected]>
* Merge #4234bors[bot]2020-05-021-0/+1
|\ | | | | | | | | | | | | | | | | | | | | | | 4234: Support local_inner_macros r=jonas-schievink a=edwin0cheng This PR implements `#[macro_export(local_inner_macros)]` support. Note that the rustc implementation is quite [hacky][1] too. :) [1]: https://github.com/rust-lang/rust/blob/614f273e9388ddd7804d5cbc80b8865068a3744e/src/librustc_resolve/macros.rs#L456 Co-authored-by: Edwin Cheng <[email protected]>
| * Support local_inner_macrosEdwin Cheng2020-05-011-0/+1
| |
* | Introduce EffectExprAleksey Kladov2020-05-021-11/+13
| |
* | Revert "Merge #4233"Aleksey Kladov2020-05-021-0/+4
| | | | | | | | | | This reverts commit a5f2b16366f027ad60c58266a66eb7fbdcbda9f9, reversing changes made to c96b2180c1c4206a0a98c280b4d30897eb116336.
* | Introduce LowerCtx for path loweringEdwin Cheng2020-05-011-8/+34
|/
* Remove dead code, which elaborately pretends to be aliveAleksey Kladov2020-04-301-4/+0
|
* add support for cfg feature attributes on expression #4063Benjamin Coenen2020-04-251-0/+4
| | | | Signed-off-by: Benjamin Coenen <[email protected]>
* Some clippy fixesJeremy Kolb2020-04-191-5/+3
|
* Merge #4012bors[bot]2020-04-171-3/+10
|\ | | | | | | | | | | | | | | 4012: fix panic on ellipsis in pattern r=flodiebold a=JoshMcguigan fixes #3999 Co-authored-by: Josh Mcguigan <[email protected]>
| * fix panic on ellipsis in patternJosh Mcguigan2020-04-171-3/+10
| |
* | Don't expose impl details of SyntaxPtrAleksey Kladov2020-04-171-1/+2
|/
* handle tuple patterns with ellipsisJosh Mcguigan2020-04-131-5/+22
|
* Align grammar for record patterns and literalsAleksey Kladov2020-04-111-1/+1
| | | | | | The grammar now looks like this [name_ref :] pat
* Merge #3925bors[bot]2020-04-111-1/+0
|\ | | | | | | | | | | | | | | | | | | 3925: Implement assist "Reorder field names" r=matklad a=geoffreycopin This PR implements the "Reorder record fields" assist as discussed in issue #3821 . Adding a `RecordFieldPat` variant to the `Pat` enum seemed like the easiest way to handle the `RecordPat` children as a single sequence of elements, maybe there is a better way ? Co-authored-by: Geoffrey Copin <[email protected]>
| * Avoid adding a RecordFieldPat variant to the Pat enumGeoffrey Copin2020-04-111-2/+0
| |
| * Implement assist "Reorder field names"Geoffrey Copin2020-04-091-1/+2
| |
* | Remove dead codeAleksey Kladov2020-04-111-2/+1
| |
* | Make records grammar more orthogonalAleksey Kladov2020-04-111-22/+5
| | | | | | | | | | | | | | | | | | | | | | | | We used name [: expr] grammar before, now it is [name :] expr which makes things simpler
* | Align namingAleksey Kladov2020-04-111-2/+1
| |
* | Pull Expander upAleksey Kladov2020-04-111-5/+3
| |
* | SimplifyAleksey Kladov2020-04-111-8/+3
| |
* | Forward compatAleksey Kladov2020-04-101-3/+3
| |
* | add record pat missing field diagnosticJosh Mcguigan2020-04-101-1/+3
|/
* Simpler acessors for keywordsAleksey Kladov2020-04-091-6/+4
|
* use uniform accessorAleksey Kladov2020-04-091-1/+1
|
* Merge #3918bors[bot]2020-04-091-18/+33
|\ | | | | | | | | | | | | | | | | 3918: Add support for feature attributes in struct literal r=matklad a=bnjjj As promised here is the next PR to solve 2 different scenarios with feature flag on struct literal. close #3870 Co-authored-by: Benjamin Coenen <[email protected]>
| * feat: add support for feature attributes in struct literalBenjamin Coenen2020-04-091-3/+6
| |\ | | | | | | | | | Signed-off-by: Benjamin Coenen <[email protected]>
| * | feat: add support for feature attributes in struct literalBenjamin Coenen2020-04-091-18/+33
| | | | | | | | | | | | Signed-off-by: Benjamin Coenen <[email protected]>
* | | Be consistent about token accesorsAleksey Kladov2020-04-091-2/+5
| |/ |/|
* | Scale back to only two traitsAleksey Kladov2020-04-091-1/+0
| |
* | Provide more complete AST accessors to support usage in rustcLuca Barbieri2020-04-091-3/+7
|/
* Macro patterns are not confused with expressions.Aleksey Kladov2020-04-031-2/+1
| | | | | | | | | | | We treat macro calls as expressions (there's appropriate Into impl), which causes problem if there's expresison and non-expression macro in the same node (like in the match arm). We fix this problem by nesting macor patterns into another node (the same way we nest path into PathExpr or PathPat). Ideally, we probably should add a similar nesting for macro expressions, but that needs some careful thinking about macros in blocks: `{ am_i_expression!() }`.
* lower bool literal with the value from source code rather than default bool ↵Josh Mcguigan2020-04-011-1/+1
| | | | value
* lower literal patternsJosh Mcguigan2020-04-011-21/+33
|
* Get rid of ItemOrMacroAleksey Kladov2020-03-261-1/+2
|
* Add support for macro in symbo_indexEdwin Cheng2020-03-221-11/+1
|
* Simplify Arena to use a generic indexAleksey Kladov2020-03-191-3/+3
|
* Use `dyn Trait` for working with databseAleksey Kladov2020-03-161-7/+4
| | | | | | | It improves compile time in `--release` mode quite a bit, it doesn't really slow things down and, conceptually, it seems closer to what we want the physical architecture to look like (we don't want to monomorphise EVERYTHING in a single leaf crate).
* Support local macro_rulesEdwin Cheng2020-03-141-12/+36
|
* Explicitly remember desugard patsAleksey Kladov2020-03-061-4/+8
|
* Explicitly remember desugard exprsAleksey Kladov2020-03-061-15/+16
|
* Rename ast::ImplBlock -> ast::ImplDefAleksey Kladov2020-02-291-1/+1
|
* Fix handling of const patternsFlorian Diebold2020-02-211-3/+35
| | | | | | | | | E.g. in `match x { None => ... }`, `None` is a path pattern (resolving to the option variant), not a binding. To determine this, we need to try to resolve the name during lowering. This isn't too hard since we already need to resolve names for macro expansion anyway (though maybe a bit hacky). Fixes #1618.
* Run cargo +nightly fix --clippy -Z unstable-optionsKirill Bulatov2020-02-181-1/+1
|
* Merge #3062bors[bot]2020-02-111-4/+12
|\ | | | | | | | | | | | | | | | | | | 3062: Implement slice pattern AST > HIR lowering r=jplatte a=jplatte WIP. The necessary changes for parsing are implemented, but actual inference is not yet. Just wanted to upload what I've got so far so it doesn't get duplicated :) Will fix #3043 Co-authored-by: Jonas Platte <[email protected]>