Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Record type mismatches for failed coercions in match etc. | Florian Diebold | 2021-05-21 | 2 | -15/+21 |
| | |||||
* | Refactor expectation handling | Florian Diebold | 2021-05-21 | 3 | -54/+88 |
| | | | | So as to not use `TyKind::Error` as "no expectation". | ||||
* | Remove TypeVariableTable | Florian Diebold | 2021-05-21 | 2 | -56/+48 |
| | |||||
* | Deal with goals arising from unification | Florian Diebold | 2021-05-21 | 4 | -18/+21 |
| | |||||
* | Get rid of resolve_ty_as_possible | Florian Diebold | 2021-05-21 | 8 | -88/+56 |
| | | | | Instead use shallow resolving where necessary. | ||||
* | Make resolve_ty_shallow return Ty | Florian Diebold | 2021-05-21 | 3 | -14/+7 |
| | |||||
* | Rework obligation handling | Florian Diebold | 2021-05-21 | 10 | -139/+234 |
| | | | | | | | | We can't do the easy hack that we did before anymore, where we kept track of whether any inference variables changed since the last time we rechecked obligations. Instead, we store the obligations in canonicalized form; that way we can easily check the inference variables to see whether they have changed since the goal was canonicalized. | ||||
* | Fix another panic | Florian Diebold | 2021-05-21 | 1 | -17/+15 |
| | |||||
* | Improve debug printing without TLS | Florian Diebold | 2021-05-21 | 2 | -158/+21 |
| | |||||
* | Fix panic | Florian Diebold | 2021-05-21 | 1 | -1/+4 |
| | |||||
* | Fix HIR expecting errors to unify with anything | Florian Diebold | 2021-05-21 | 2 | -2/+62 |
| | |||||
* | Fix if/else coercion | Florian Diebold | 2021-05-21 | 1 | -1/+4 |
| | |||||
* | Make diverging type variables work again | Florian Diebold | 2021-05-21 | 2 | -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 coercion | Florian Diebold | 2021-05-21 | 2 | -4/+52 |
| | | | | Fixes #7626. | ||||
* | Fix coercion of two closures to a function pointer | Florian Diebold | 2021-05-21 | 4 | -56/+48 |
| | | | | Fixes #8604. | ||||
* | Update tests with expected changes | Florian Diebold | 2021-05-21 | 2 | -40/+34 |
| | |||||
* | Make type resolver a proper folder, make it resolve consts as well | Florian Diebold | 2021-05-21 | 1 | -48/+117 |
| | |||||
* | Fix fallback to bound vars in `unify` | Florian Diebold | 2021-05-21 | 1 | -45/+78 |
| | |||||
* | Better Debug impl for InternedWrapper | Florian Diebold | 2021-05-21 | 1 | -1/+7 |
| | |||||
* | Temporary fix for unknown expectations | Florian Diebold | 2021-05-21 | 2 | -0/+8 |
| | |||||
* | Fix warnings & format | Florian Diebold | 2021-05-21 | 3 | -20/+11 |
| | |||||
* | Rewrite coercion using the new unification | Florian Diebold | 2021-05-21 | 6 | -105/+371 |
| | |||||
* | Remove our unification code, use Chalk's instead | Florian Diebold | 2021-05-21 | 8 | -438/+125 |
| | |||||
* | Check patterns for type match recursively. | Dawer | 2021-05-19 | 2 | -2/+30 |
| | |||||
* | internal: Record mismatches of pattern types. | Dawer | 2021-05-19 | 6 | -11/+93 |
| | |||||
* | Merge #8813 | bors[bot] | 2021-05-16 | 11 | -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 feedback | Jade | 2021-05-16 | 3 | -31/+17 |
| | | | | | | | | | | * rename ConstExtension->ConstExt * refactor a manual construction of a Const | ||||
| * | Add more tests, refactor array lengths/consteval work | Jade | 2021-05-14 | 5 | -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 more | Jade | 2021-05-13 | 1 | -14/+25 |
| | | |||||
| * | Add support for lengths in array repeats, if they are literals | Jade | 2021-05-13 | 2 | -7/+17 |
| | | | | | | | | Now we will get the type of `[0u8; 4]`. | ||||
| * | Support length for ByteStrings | Jade | 2021-05-13 | 2 | -8/+16 |
| | | | | | | | | I am not confident that my added byte string parsing is right. | ||||
| * | Add lowering of array lengths in types | Jade | 2021-05-13 | 9 | -76/+64 |
| | | | | | | | | | | | | | | | | | | | | | | Now e.g. ```rust fn a(b: [u8; 2]) { } ``` will know about the length of b. | ||||
* | | Fix false positive "Missing match arm". | Dawer | 2021-05-14 | 3 | -5/+7 |
|/ | |||||
* | Merge #8799 | bors[bot] | 2021-05-12 | 11 | -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 @eddyb | Jade | 2021-05-11 | 2 | -2/+3 |
| | | |||||
| * | Add basic support for array lengths in types | Jade | 2021-05-11 | 11 | -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 #8398 | bors[bot] | 2021-05-11 | 3 | -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 tails | Daniel McNab | 2021-05-03 | 1 | -0/+49 |
| | | |||||
| * | Fix inference with conditionally compiled tails | Daniel McNab | 2021-05-03 | 2 | -2/+2 |
| | | | | | | | | Fixes #8378 | ||||
* | | Correctly support SelfType when searching for usages | Lukas Wirth | 2021-05-08 | 1 | -2/+34 |
| | | |||||
* | | Reuse database in LowerCtx | Jonas Schievink | 2021-05-06 | 1 | -1/+1 |
| | | |||||
* | | Don't store call-site text offsets in hygiene info | Jonas Schievink | 2021-05-06 | 1 | -2/+2 |
|/ | |||||
* | Don't look in super traits for <T as Trait>::Assoc | Florian Diebold | 2021-04-29 | 2 | -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 iterator | Florian Diebold | 2021-04-29 | 1 | -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 gracefully | Florian Diebold | 2021-04-29 | 2 | -0/+22 |
| | |||||
* | Add test for #8686 | Florian Diebold | 2021-04-29 | 1 | -0/+30 |
| | |||||
* | fix: closure unify without check ClosureId | Comonad | 2021-04-29 | 2 | -0/+40 |
| | | | | closes #8604 | ||||
* | Merge #8462 | bors[bot] | 2021-04-19 | 3 | -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 test | cynecx | 2021-04-18 | 2 | -8/+14 |
| | | |||||
| * | hir_ty: keep body::Expander in TyLoweringContext | cynecx | 2021-04-18 | 2 | -14/+83 |
| | |