aboutsummaryrefslogtreecommitdiff
path: root/crates/hir_ty/src
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix another panicFlorian Diebold2021-05-211-17/+15
|
* Improve debug printing without TLSFlorian Diebold2021-05-212-158/+21
|
* Fix panicFlorian Diebold2021-05-211-1/+4
|
* Fix HIR expecting errors to unify with anythingFlorian Diebold2021-05-212-2/+62
|
* Fix if/else coercionFlorian Diebold2021-05-211-1/+4
|
* Make diverging type variables work againFlorian Diebold2021-05-212-0/+23
| | | | | Chalk doesn't know about the `diverging` flag, so we need to instead propagate it before fully resolving the variables.
* Fix handling of diverging branches in match coercionFlorian Diebold2021-05-212-4/+52
| | | | Fixes #7626.
* Fix coercion of two closures to a function pointerFlorian Diebold2021-05-214-56/+48
| | | | Fixes #8604.
* Update tests with expected changesFlorian Diebold2021-05-212-40/+34
|
* Make type resolver a proper folder, make it resolve consts as wellFlorian Diebold2021-05-211-48/+117
|
* Fix fallback to bound vars in `unify`Florian Diebold2021-05-211-45/+78
|
* Better Debug impl for InternedWrapperFlorian Diebold2021-05-211-1/+7
|
* Temporary fix for unknown expectationsFlorian Diebold2021-05-212-0/+8
|
* Fix warnings & formatFlorian Diebold2021-05-213-20/+11
|
* Rewrite coercion using the new unificationFlorian Diebold2021-05-216-105/+371
|
* Remove our unification code, use Chalk's insteadFlorian Diebold2021-05-218-438/+125
|
* Check patterns for type match recursively.Dawer2021-05-192-2/+30
|
* internal: Record mismatches of pattern types.Dawer2021-05-196-11/+93
|
* Merge #8813bors[bot]2021-05-1611-103/+251
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8813: Get some more array lengths! r=lf- a=lf- This is built on #8799 and thus contains its changes. I'll rebase it onto master when that one gets merged. It adds support for r-a understanding the length of: * `let a: [u8; 2] = ...` * `let a = b"aaa"` * `let a = [0u8; 4]` I have added support for getting the values of byte strings, which was not previously there. I am least confident in the correctness of this part and it probably needs some more tests, as we currently have only one test that exercised that part (!). Fixes #2922. Co-authored-by: Jade <[email protected]>
| * Address final feedbackJade2021-05-163-31/+17
| | | | | | | | | | * rename ConstExtension->ConstExt * refactor a manual construction of a Const
| * Add more tests, refactor array lengths/consteval workJade2021-05-145-34/+179
| | | | | | | | | | | | | | | | | | | | | | Fix #2922: add unknown length as a condition for a type having unknown. Incorporate reviews: * Extract some of the const evaluation workings into functions * Add fixmes on the hacks * Add tests for impls on specific array lengths (these work!!! 😁) * Add tests for const generics (indeed we don't support it yet)
| * Test lowering byte strings some moreJade2021-05-131-14/+25
| |
| * Add support for lengths in array repeats, if they are literalsJade2021-05-132-7/+17
| | | | | | | | Now we will get the type of `[0u8; 4]`.
| * Support length for ByteStringsJade2021-05-132-8/+16
| | | | | | | | I am not confident that my added byte string parsing is right.
| * Add lowering of array lengths in typesJade2021-05-139-76/+64
| | | | | | | | | | | | | | | | | | | | | | Now e.g. ```rust fn a(b: [u8; 2]) { } ``` will know about the length of b.
* | Fix false positive "Missing match arm".Dawer2021-05-143-5/+7
|/
* Merge #8799bors[bot]2021-05-1211-109/+155
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | 8799: Add basic support for array lengths in types r=flodiebold a=lf- This recognizes `let a = [1u8, 2, 3]` as having type `[u8; 3]` instead of the previous `[u8; _]`. Byte strings and `[0u8; 2]` kinds of range array declarations are unsupported as before. I don't know why a bunch of our rustc tests had single quotes inside strings un-escaped by `UPDATE_EXPECT=1 cargo t`, but I don't think it's bad? Maybe something in a nightly? Co-authored-by: Jade <[email protected]>
| * address review by @eddybJade2021-05-112-2/+3
| |
| * Add basic support for array lengths in typesJade2021-05-1111-109/+154
| | | | | | | | | | | | | | | | | | | | This recognizes `let a = [1u8, 2, 3]` as having type `[u8; 3]` instead of the previous `[u8; _]`. Byte strings and `[0u8; 2]` kinds of range array declarations are unsupported as before. I don't know why a bunch of our rustc tests had single quotes inside strings un-escaped by `UPDATE_EXPECT=1 cargo t`, but I don't think it's bad? Maybe something in a nightly?
* | Merge #8398bors[bot]2021-05-113-2/+51
|\ \ | |/ |/| | | | | | | | | | | 8398: Fix inference with conditionally compiled tails r=flodiebold a=DJMcNab Fixes #8378 Co-authored-by: Daniel McNab <[email protected]>
| * Add a test for conditionally compiled tailsDaniel McNab2021-05-031-0/+49
| |
| * Fix inference with conditionally compiled tailsDaniel McNab2021-05-032-2/+2
| | | | | | | | Fixes #8378
* | Correctly support SelfType when searching for usagesLukas Wirth2021-05-081-2/+34
| |
* | Reuse database in LowerCtxJonas Schievink2021-05-061-1/+1
| |
* | Don't store call-site text offsets in hygiene infoJonas Schievink2021-05-061-2/+2
|/
* Don't look in super traits for <T as Trait>::AssocFlorian Diebold2021-04-292-7/+14
| | | | | | | This isn't actually how it works, you have to specify the exact trait that has the associated type. Fixes #8686.
* Rewrite all_super_trait_refs as an iteratorFlorian Diebold2021-04-291-18/+34
| | | | | Doesn't fix the bug I was trying to fix, but now that I did it anyway it seems fine to keep.
* Handle cycles in generic_defaults more gracefullyFlorian Diebold2021-04-292-0/+22
|
* Add test for #8686Florian Diebold2021-04-291-0/+30
|
* fix: closure unify without check ClosureIdComonad2021-04-292-0/+40
| | | | closes #8604
* Merge #8462bors[bot]2021-04-193-8/+275
|\ | | | | | | | | | | | | | | 8462: Expand macros at type position r=jonas-schievink a=cynecx Co-authored-by: cynecx <[email protected]>
| * hir_ty: cleanups and extend infinitely_recursive_macro_type testcynecx2021-04-182-8/+14
| |
| * hir_ty: keep body::Expander in TyLoweringContextcynecx2021-04-182-14/+83
| |
| * hir_def: refactor expand_macro_type and cleanupscynecx2021-04-171-3/+3
| |
| * hir_ty: deal with TypeRef::Macro in HirFormattercynecx2021-04-171-2/+15
| |
| * hir_ty: Expand macros at type positioncynecx2021-04-173-2/+181
| |
* | Collect inherent impls in unnamed constsJonas Schievink2021-04-192-17/+62
|/
* Merge #8539bors[bot]2021-04-162-1/+2
|\ | | | | | | | | | | | | | | | | | | 8539: fix: Do not propose inherent traits in flyimports and import assists r=flodiebold a=SomeoneToIgnore Closes https://github.com/rust-analyzer/rust-analyzer/issues/8520 I've went with a separate method approach, since the [highlighted code](https://github.com/rust-analyzer/rust-analyzer/issues/8520#issuecomment-819856337) has not`Type` and uses `Ty` to get his data, but the code I had to change has no access to `Ty` and has `Type` only. Co-authored-by: Kirill Bulatov <[email protected]>
| * Exclude inherent traits from flyimportsKirill Bulatov2021-04-162-1/+2
| |
* | Fix primitive shadowing with inner itemsJonas Schievink2021-04-161-0/+18
|/