aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_def/src/body/lower.rs
Commit message (Collapse)AuthorAgeFilesLines
* 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]>
| * Implement slice pattern AST > HIR loweringJonas Platte2020-02-111-4/+12
| |
* | Add or- and parenthesized-patternsMatthew Jasper2020-02-091-5/+10
|/
* Merge #2650bors[bot]2019-12-291-7/+13
|\ | | | | | | | | | | | | | | 2650: Add macro call support for SourceAnalyzer::type_of r=matklad a=edwin0cheng Co-authored-by: Edwin Cheng <[email protected]>
| * Use pre-stored macro fileEdwin Cheng2019-12-231-7/+13
| |
* | Rename ResolvedVisibility -> VisibilityFlorian Diebold2019-12-261-1/+1
| |
* | Keep track of visibility during def collectionFlorian Diebold2019-12-261-1/+4
|/
* Rudimentary name resolution for local itemsAleksey Kladov2019-12-221-10/+22
|
* Share impl Scope between modules and blocksAleksey Kladov2019-12-221-2/+2
|
* Handle closure return typesFlorian Diebold2019-12-201-1/+2
| | | | Fixes #2547.
* Support for nested traitsAleksey Kladov2019-12-201-2/+9
|
* Support for nested statics, consts and type aliasesAleksey Kladov2019-12-201-1/+14
|
* Support for nested ADTAleksey Kladov2019-12-201-7/+19
|
* Introduce `ContainerId`Aleksey Kladov2019-12-201-2/+2
|