Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Align grammar for record patterns and literals | Aleksey Kladov | 2020-04-11 | 1 | -1/+2 |
| | | | | | | The grammar now looks like this [name_ref :] pat | ||||
* | Add failing test | Aleksey Kladov | 2020-04-10 | 1 | -2/+29 |
| | |||||
* | Fix Chalk panic | Florian Diebold | 2020-04-06 | 1 | -0/+25 |
| | | | | | Fixes #3865. Basically I forgot to shift 'back' when we got `dyn Trait`s back from Chalk, so after going through Chalk a few times, the panic happened. | ||||
* | Hide unit fn return types | Laurențiu Nicola | 2020-04-05 | 4 | -14/+14 |
| | |||||
* | Fix inference of function pointer return types | Laurențiu Nicola | 2020-04-05 | 1 | -0/+26 |
| | |||||
* | Macro patterns are not confused with expressions. | Aleksey Kladov | 2020-04-03 | 1 | -2/+29 |
| | | | | | | | | | | | 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!() }`. | ||||
* | Add inference for literal and range patterns | Florian Diebold | 2020-04-01 | 4 | -1/+95 |
| | |||||
* | Remove collect proc_macro definitions | Edwin Cheng | 2020-03-25 | 1 | -6/+2 |
| | |||||
* | Fix trailling whitespace | Edwin Cheng | 2020-03-25 | 1 | -1/+1 |
| | |||||
* | Add basic custom derive lowering | Edwin Cheng | 2020-03-25 | 1 | -0/+23 |
| | |||||
* | Move test to hir_ty | Edwin Cheng | 2020-03-21 | 1 | -0/+31 |
| | |||||
* | Make MBE expansion more resilient (WIP) | Florian Diebold | 2020-03-16 | 1 | -4/+4 |
| | |||||
* | Support local macro_rules | Edwin Cheng | 2020-03-14 | 1 | -0/+20 |
| | |||||
* | Add and fix tests | Edwin Cheng | 2020-03-10 | 1 | -0/+20 |
| | |||||
* | Prevent include! macro include itself | Edwin Cheng | 2020-03-07 | 1 | -0/+18 |
| | |||||
* | Use a not so dummy implementation of env macro | Edwin Cheng | 2020-03-07 | 1 | -0/+27 |
| | |||||
* | Resolve `Self::AssocTy` in impls | Florian Diebold | 2020-03-06 | 1 | -0/+41 |
| | | | | | | | | | | To do this we need to carry around the original resolution a bit, because `Self` gets resolved to the actual type immediately, but you're not allowed to write the equivalent type in a projection. (I tried just comparing the projection base type with the impl self type, but that seemed too dirty.) This is basically how rustc does it as well. Fixes #3249. | ||||
* | Merge #3494 | bors[bot] | 2020-03-06 | 1 | -0/+45 |
|\ | | | | | | | | | | | | | | | | | | | | | | | 3494: Implement include macro r=matklad a=edwin0cheng This PR implement builtin `include` macro. * It does not support include as expression yet. * It doesn't consider `env!("OUT_DIR")` yet. Co-authored-by: Edwin Cheng <[email protected]> | ||||
| * | Implment include macro | Edwin Cheng | 2020-03-06 | 1 | -0/+45 |
| | | |||||
* | | Support aliases and Self in struct literals | Florian Diebold | 2020-03-06 | 1 | -0/+41 |
|/ | | | | Fixes #3306. | ||||
* | Fix panic on eager expansion | Edwin Cheng | 2020-03-03 | 1 | -0/+21 |
| | |||||
* | Add test | Edwin Cheng | 2020-03-03 | 1 | -0/+19 |
| | |||||
* | Merge #3385 | bors[bot] | 2020-03-02 | 1 | -0/+19 |
|\ | | | | | | | | | | | | | | | | | | | | | 3385: Fix #3373 r=matklad a=flodiebold Basically, we need to allow variables in the caller self type to unify with the impl's declared self type. That requires some more contortions in the variable handling. I'm looking forward to (hopefully) handling this in a cleaner way when we switch to Chalk's types and unification code. Co-authored-by: Florian Diebold <[email protected]> | ||||
| * | Fix #3373 | Florian Diebold | 2020-03-01 | 1 | -0/+19 |
| | | | | | | | | | | | | | | Basically, we need to allow variables in the caller self type to unify with the impl's declared self type. That requires some more contortions in the variable handling. I'm looking forward to (hopefully) handling this in a cleaner way when we switch to Chalk's types and unification code. | ||||
* | | handle array pattern matching type inference | Josh Mcguigan | 2020-03-01 | 1 | -0/+41 |
| | | |||||
* | | remove match statement, handle suffix | Josh Mcguigan | 2020-03-01 | 1 | -2/+2 |
| | | |||||
* | | handle arbitrary length slices | Josh Mcguigan | 2020-03-01 | 1 | -9/+24 |
| | | |||||
* | | match single prefix slice | Josh Mcguigan | 2020-03-01 | 1 | -0/+33 |
|/ | |||||
* | Do autoderef for indexing | Florian Diebold | 2020-02-29 | 1 | -0/+28 |
| | |||||
* | Do array unsizing for method receivers | Florian Diebold | 2020-02-29 | 1 | -0/+18 |
| | | | | | | | It turns out rustc actually only unsizes array method receivers, so we don't need to do any trait solving for this (at least for now). Fixes #2670. | ||||
* | Rename ast::ImplBlock -> ast::ImplDef | Aleksey Kladov | 2020-02-29 | 1 | -6/+6 |
| | |||||
* | Fix a common false-positive type mismatch | Florian Diebold | 2020-02-29 | 1 | -0/+31 |
| | | | | | | | | | E.g. for `&{ some_string() }` in a context where a `&str` is expected, we reported a mismatch inside the block. The problem is that we're passing an expectation of `str` down, but the expectation is more of a hint in this case. There's a long comment in rustc about this, which I just copied. Also, fix reported location for type mismatches in macros. | ||||
* | Rework find_super_trait_path to protect against cycles | Florian Diebold | 2020-02-22 | 1 | -0/+38 |
| | |||||
* | Add &dyn Trait -> &dyn SuperTrait coercion, and fix &T -> &dyn Trait | Florian Diebold | 2020-02-22 | 1 | -14/+26 |
| | |||||
* | Implement dyn Trait unsizing as well | Florian Diebold | 2020-02-22 | 1 | -1/+7 |
| | |||||
* | Implement unsize coercion using proper trait solving | Florian Diebold | 2020-02-22 | 1 | -0/+82 |
| | |||||
* | Fix handling of const patterns | Florian Diebold | 2020-02-21 | 1 | -1/+45 |
| | | | | | | | | | 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. | ||||
* | Normalize associated types in types coming from Chalk | Florian Diebold | 2020-02-21 | 1 | -0/+42 |
| | | | | Fixes #3232. | ||||
* | Exclude methods from non-parameter types introduced by generic constraints | Laurențiu Nicola | 2020-02-19 | 1 | -0/+23 |
| | |||||
* | Fix coercion of &T to itself | Florian Diebold | 2020-02-16 | 1 | -0/+22 |
| | | | | | The autoderef coercion logic did not handle matching placeholders. This led to some type mismatches. | ||||
* | Merge #3147 | bors[bot] | 2020-02-14 | 1 | -0/+32 |
|\ | | | | | | | | | | | | | | | 3147: Check that impl self type matches up with expected self type in path mode r=matklad a=flodiebold Fixes #3144. Co-authored-by: Florian Diebold <[email protected]> | ||||
| * | Check that impl self type matches up with expected self type in path mode | Florian Diebold | 2020-02-14 | 1 | -0/+32 |
| | | | | | | | | Fixes #3144. | ||||
* | | Make Self implement the trait inside trait default methods | Florian Diebold | 2020-02-14 | 1 | -0/+48 |
|/ | |||||
* | Don't let unknown match arms fall back to ! | Florian Diebold | 2020-02-11 | 1 | -0/+17 |
| | |||||
* | Add two more tests | Florian Diebold | 2020-02-07 | 1 | -0/+51 |
| | |||||
* | Don't print implicit type args from impl Trait | Florian Diebold | 2020-02-07 | 1 | -11/+11 |
| | |||||
* | Deal better with implicit type parameters and argument lists | Florian Diebold | 2020-02-07 | 1 | -0/+108 |
| | |||||
* | Clean up RPIT a bit | Florian Diebold | 2020-02-07 | 1 | -13/+11 |
| | |||||
* | Fix APIT some more | Florian Diebold | 2020-02-07 | 1 | -23/+28 |
| | |||||
* | Change Ty::Param to contain param ID | Florian Diebold | 2020-02-07 | 2 | -3/+2 |
| |