aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_ty/src/tests
Commit message (Collapse)AuthorAgeFilesLines
* Merge #3385bors[bot]2020-03-021-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 #3373Florian Diebold2020-03-011-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 inferenceJosh Mcguigan2020-03-011-0/+41
| |
* | remove match statement, handle suffixJosh Mcguigan2020-03-011-2/+2
| |
* | handle arbitrary length slicesJosh Mcguigan2020-03-011-9/+24
| |
* | match single prefix sliceJosh Mcguigan2020-03-011-0/+33
|/
* Do autoderef for indexingFlorian Diebold2020-02-291-0/+28
|
* Do array unsizing for method receiversFlorian Diebold2020-02-291-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::ImplDefAleksey Kladov2020-02-291-6/+6
|
* Fix a common false-positive type mismatchFlorian Diebold2020-02-291-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 cyclesFlorian Diebold2020-02-221-0/+38
|
* Add &dyn Trait -> &dyn SuperTrait coercion, and fix &T -> &dyn TraitFlorian Diebold2020-02-221-14/+26
|
* Implement dyn Trait unsizing as wellFlorian Diebold2020-02-221-1/+7
|
* Implement unsize coercion using proper trait solvingFlorian Diebold2020-02-221-0/+82
|
* Fix handling of const patternsFlorian Diebold2020-02-211-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 ChalkFlorian Diebold2020-02-211-0/+42
| | | | Fixes #3232.
* Exclude methods from non-parameter types introduced by generic constraintsLaurențiu Nicola2020-02-191-0/+23
|
* Fix coercion of &T to itselfFlorian Diebold2020-02-161-0/+22
| | | | | The autoderef coercion logic did not handle matching placeholders. This led to some type mismatches.
* Merge #3147bors[bot]2020-02-141-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 modeFlorian Diebold2020-02-141-0/+32
| | | | | | | | Fixes #3144.
* | Make Self implement the trait inside trait default methodsFlorian Diebold2020-02-141-0/+48
|/
* Don't let unknown match arms fall back to !Florian Diebold2020-02-111-0/+17
|
* Add two more testsFlorian Diebold2020-02-071-0/+51
|
* Don't print implicit type args from impl TraitFlorian Diebold2020-02-071-11/+11
|
* Deal better with implicit type parameters and argument listsFlorian Diebold2020-02-071-0/+108
|
* Clean up RPIT a bitFlorian Diebold2020-02-071-13/+11
|
* Fix APIT some moreFlorian Diebold2020-02-071-23/+28
|
* Change Ty::Param to contain param IDFlorian Diebold2020-02-072-3/+2
|
* WIP use params for APITFlorian Diebold2020-02-071-0/+53
|
* Fix assoc type selectionFlorian Diebold2020-02-071-3/+3
|
* Fix another testFlorian Diebold2020-02-071-2/+2
|
* Fix enum constructorsFlorian Diebold2020-02-072-5/+5
|
* Fix printing of function typesFlorian Diebold2020-02-076-69/+69
|
* Lower impl trait to variables, move away from using placeholders where they ↵Florian Diebold2020-02-071-1/+1
| | | | don't belong
* wip implement lowering modeFlorian Diebold2020-02-071-20/+8
|
* Standard formatting for array typesAleksey Kladov2020-01-284-88/+88
|
* Ignore failing impl Trait testsFlorian Diebold2020-01-271-0/+2
|
* Fix inference for shift operatorsFlorian Diebold2020-01-171-0/+21
| | | | Fixes #2602.
* Use dummy value for line! and column! macroEdwin Cheng2020-01-141-2/+2
|
* Fix various names, e.g. Iterator not resolving in core preludeFlorian Diebold2020-01-111-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 expressionsFlorian Diebold2020-01-101-0/+81
|
* Expand PAREN_EXPR as expressionEdwin Cheng2020-01-101-0/+17
|
* Fix #2705Florian Diebold2020-01-031-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 infrastructureEmil Lauridsen2019-12-292-0/+6
|
* Don't add non-impl/trait containers to scopeAleksey Kladov2019-12-292-1/+38
|
* Merge #2661bors[bot]2019-12-241-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 funcEdwin Cheng2019-12-241-0/+57
| |
* | Filter out error predicates in type bounds as wellFlorian Diebold2019-12-221-0/+17
| |
* | Introduce our own Chalk TypeFamily, instead of using ChalkIrFlorian Diebold2019-12-221-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 itemsAleksey Kladov2019-12-221-6/+6
|