Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Add support for unions in inference and lowering | Paul Daniel Faria | 2020-08-08 | 1 | -2/+2 |
| | |||||
* | Add additional checks for union inference tests | Paul Daniel Faria | 2020-08-08 | 1 | -5/+33 |
| | |||||
* | Replace remaining insta uses | Laurențiu Nicola | 2020-07-21 | 1 | -1706/+1707 |
| | |||||
* | infer: Add type inference support for Union types | Otavio Salvador | 2020-07-11 | 1 | -0/+23 |
| | | | | | | | | This adds the type inference to Union types and add a small test case for it, ensuring it keeps working in future. Fixes: #5277 Signed-off-by: Otavio Salvador <[email protected]> | ||||
* | (T): make typification tests more data driven | Aleksey Kladov | 2020-06-29 | 1 | -61/+28 |
| | |||||
* | (Partially) fix handling of type params depending on type params | Florian Diebold | 2020-06-29 | 1 | -0/+45 |
| | | | | | | | | If the first type parameter gets inferred, that's still not handled correctly; it'll require some more refactoring: E.g. if we have `Thing<T, F=fn() -> T>` and then instantiate `Thing<_>`, that gets turned into `Thing<_, fn() -> _>` before the `_` is instantiated into a type variable -- so afterwards, we have two type variables without any connection to each other. | ||||
* | Track unsafe blocks, don't trigger missing unsafe diagnostic when unsafe ↵ | Paul Daniel Faria | 2020-06-27 | 1 | -0/+1 |
| | | | | exprs within unsafe block | ||||
* | Split glob import map to per-ns, switch ExprCollector to use a simpler push_res | Paul Daniel Faria | 2020-06-26 | 1 | -0/+46 |
| | |||||
* | Use only one code-path for parsing fixtures | Aleksey Kladov | 2020-06-23 | 1 | -827/+827 |
| | | | | | This removes leading newlines everywhere, shifting all ranges in tests by one | ||||
* | Make known paths use `core` instead of `std` | Jonas Schievink | 2020-06-11 | 1 | -2/+2 |
| | |||||
* | Fix type parameter defaults | Florian Diebold | 2020-06-05 | 1 | -0/+108 |
| | | | | | They should not be applied in expression or pattern contexts, unless there are other explicitly given type args. | ||||
* | correctly infer labelled breaks | robojumper | 2020-05-31 | 1 | -10/+10 |
| | |||||
* | labelled break test | robojumper | 2020-05-31 | 1 | -0/+54 |
| | |||||
* | Merge #4651 | bors[bot] | 2020-05-29 | 1 | -1/+1 |
|\ | | | | | | | | | | | | | | | | | | | | | 4651: Use first match branch in case of type mismatch, not last r=kjeremy a=flodiebold The comment says this was intentional, but I do agree with #4304 that it makes more sense the other way around (for if/else as well). Fixes #4304. Co-authored-by: Florian Diebold <[email protected]> | ||||
| * | Use first match branch in case of type mismatch, not last | Florian Diebold | 2020-05-29 | 1 | -1/+1 |
| | | | | | | | | | | | | | | The comment says this was intentional, but I do agree with #4304 that it makes more sense the other way around (for if/else as well). Fixes #4304. | ||||
* | | Support raw_ref_op's raw reference operator | robojumper | 2020-05-28 | 1 | -0/+20 |
|/ | |||||
* | loop return value inference: add tests | Roland Ruckerbauer | 2020-05-19 | 1 | -0/+63 |
| | |||||
* | Handle `Self` in values and patterns | Florian Diebold | 2020-05-15 | 1 | -0/+44 |
| | | | | | | | | | I.e. - `Self(x)` or `Self` in tuple/unit struct impls - `Self::Variant(x)` or `Self::Variant` in enum impls - the same in patterns Fixes #4454. | ||||
* | infer: Make expected rhs type for plain assign the lhs type | Emil Lauridsen | 2020-05-10 | 1 | -0/+29 |
| | | | | | | | | | | | | | This fixes an issue where the following code sample would fail to infer the type contained in the option: ```rust fn main() { let mut end = None; // TODO: Fix inference for this in RA loop { end = Some(true); } } ``` | ||||
* | Implement better handling of divergence | Florian Diebold | 2020-05-08 | 1 | -5/+5 |
| | | | | | | | | Divergence here means that for some reason, the end of a block will not be reached. We tried to model this just using the never type, but that doesn't work fully (e.g. in `let x = { loop {}; "foo" };` x should still have type `&str`); so this introduces a `diverges` flag that the type checker keeps track of, like rustc does. | ||||
* | Fix type of byte literals | Florian Diebold | 2020-05-08 | 1 | -2/+2 |
| | | | | They're `&[u8; N]`, not `&[u8]` (see #4374). | ||||
* | Add smoke test for decorated blocks | Aleksey Kladov | 2020-05-02 | 1 | -0/+32 |
| | |||||
* | Convert tests to text-size | Aleksey Kladov | 2020-04-25 | 1 | -680/+680 |
| | |||||
* | Hide unit fn return types | Laurențiu Nicola | 2020-04-05 | 1 | -3/+3 |
| | |||||
* | Fix inference of function pointer return types | Laurențiu Nicola | 2020-04-05 | 1 | -0/+26 |
| | |||||
* | Add inference for literal and range patterns | Florian Diebold | 2020-04-01 | 1 | -0/+2 |
| | |||||
* | Support aliases and Self in struct literals | Florian Diebold | 2020-03-06 | 1 | -0/+41 |
| | | | | Fixes #3306. | ||||
* | Fix enum constructors | Florian Diebold | 2020-02-07 | 1 | -4/+4 |
| | |||||
* | Fix printing of function types | Florian Diebold | 2020-02-07 | 1 | -16/+16 |
| | |||||
* | Lower impl trait to variables, move away from using placeholders where they ↵ | Florian Diebold | 2020-02-07 | 1 | -1/+1 |
| | | | | don't belong | ||||
* | Standard formatting for array types | Aleksey Kladov | 2020-01-28 | 1 | -35/+35 |
| | |||||
* | Fix inference for shift operators | Florian Diebold | 2020-01-17 | 1 | -0/+21 |
| | | | | Fixes #2602. | ||||
* | Resolve traits in infer using lang item infrastructure | Emil Lauridsen | 2019-12-29 | 1 | -0/+1 |
| | |||||
* | Don't add non-impl/trait containers to scope | Aleksey Kladov | 2019-12-29 | 1 | -0/+3 |
| | |||||
* | Rudimentary name resolution for local items | Aleksey Kladov | 2019-12-22 | 1 | -6/+6 |
| | |||||
* | Handle closure return types | Florian Diebold | 2019-12-20 | 1 | -0/+55 |
| | | | | Fixes #2547. | ||||
* | Split up ty tests a bit | Florian Diebold | 2019-12-03 | 1 | -0/+1608 |