Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | 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 |
| | |||||
* | WIP use params for APIT | Florian Diebold | 2020-02-07 | 1 | -0/+53 |
| | |||||
* | Fix assoc type selection | Florian Diebold | 2020-02-07 | 1 | -3/+3 |
| | |||||
* | Fix another test | Florian Diebold | 2020-02-07 | 1 | -2/+2 |
| | |||||
* | Fix enum constructors | Florian Diebold | 2020-02-07 | 2 | -5/+5 |
| | |||||
* | Fix printing of function types | Florian Diebold | 2020-02-07 | 6 | -69/+69 |
| | |||||
* | Lower impl trait to variables, move away from using placeholders where they ↵ | Florian Diebold | 2020-02-07 | 1 | -1/+1 |
| | | | | don't belong | ||||
* | wip implement lowering mode | Florian Diebold | 2020-02-07 | 1 | -20/+8 |
| | |||||
* | Standard formatting for array types | Aleksey Kladov | 2020-01-28 | 4 | -88/+88 |
| | |||||
* | Ignore failing impl Trait tests | Florian Diebold | 2020-01-27 | 1 | -0/+2 |
| | |||||
* | Fix inference for shift operators | Florian Diebold | 2020-01-17 | 1 | -0/+21 |
| | | | | Fixes #2602. | ||||
* | Use dummy value for line! and column! macro | Edwin Cheng | 2020-01-14 | 1 | -2/+2 |
| | |||||
* | Fix various names, e.g. Iterator not resolving in core prelude | Florian Diebold | 2020-01-11 | 1 | -0/+54 |
| | | | | | | | | | | | | | Basically, `Iterator` is re-exported via several steps, which happened to not be resolved yet when we got to the prelude import, but since the name resolved to the reexport from `core::iter` (just to no actual items), we gave up trying to resolve it further. Maybe part of the problem is that we can have `PartialResolvedImport::Unresolved` or `PartialResolvedImport::Indeterminate` with `None` in all namespaces, and handle them differently. Fixes #2683. | ||||
* | Add test for macro expansion in various expressions | Florian Diebold | 2020-01-10 | 1 | -0/+81 |
| | |||||
* | Expand PAREN_EXPR as expression | Edwin Cheng | 2020-01-10 | 1 | -0/+17 |
| | |||||
* | Fix #2705 | Florian Diebold | 2020-01-03 | 1 | -0/+17 |
| | | | | | | | | The `-` turned into a `+` during a refactoring. The original issue was caused by `Read` resolving wrongly to a trait without type parameters instead of a struct with one parameter; this only fixes the crash, not the wrong resolution. | ||||
* | Resolve traits in infer using lang item infrastructure | Emil Lauridsen | 2019-12-29 | 2 | -0/+6 |
| | |||||
* | Don't add non-impl/trait containers to scope | Aleksey Kladov | 2019-12-29 | 2 | -1/+38 |
| | |||||
* | Merge #2661 | bors[bot] | 2019-12-24 | 1 | -0/+57 |
|\ | | | | | | | | | | | | | | | | | | | | | | | 2661: Implement infer await from async function r=flodiebold a=edwin0cheng This PR is my attempt for trying to add support for infer `.await` expression from an `async` function, by desugaring its return type to `Impl Future<Output=RetType>`. Note that I don't know it is supposed to desugaring it in that phase, if it is not suitable in current design, just feel free to reject it :) r=@flodiebold Co-authored-by: Edwin Cheng <[email protected]> | ||||
| * | Implement infer await from async func | Edwin Cheng | 2019-12-24 | 1 | -0/+57 |
| | | |||||
* | | Filter out error predicates in type bounds as well | Florian Diebold | 2019-12-22 | 1 | -0/+17 |
| | | |||||
* | | Introduce our own Chalk TypeFamily, instead of using ChalkIr | Florian Diebold | 2019-12-22 | 1 | -2/+2 |
|/ | | | | | | It's not very different, except we can directly use Salsa IDs instead of casting them. This means we need to refactor the handling of errors to get rid of UNKNOWN_TRAIT though. | ||||
* | Rudimentary name resolution for local items | Aleksey Kladov | 2019-12-22 | 1 | -6/+6 |
| |