Lukas Wirth
41b6b372a7
fix: Resolve private fields in type inference
2022-02-23 16:45:58 +01:00
Chayim Refael Friedman
fe1e324694
Type-inference for let
expressions
2022-02-21 08:34:35 +02:00
Lukas Wirth
d7a544e69a
fix: Complete functions and methods from block level impls
2022-02-01 23:29:40 +01:00
hkalbasi
75c2acae6e
Evaluate constants in array repeat expression
2022-01-05 01:17:01 +03:30
Laurențiu Nicola
32b6f103a6
Bump chalk
2021-12-19 18:58:39 +02:00
Lukas Wirth
f9c59d3752
Use known names instead of string literals
2021-12-09 18:13:15 +01:00
Jonas Schievink
b365b6119c
Treat extern blocks as item containers
2021-12-07 17:31:26 +01:00
Lukas Wirth
cc327774b7
internal: Replace Vec with Box in hir Expr
2021-11-20 16:00:45 +01:00
Laurențiu Nicola
24eca25d8a
Make some functions non-generic
2021-10-20 20:20:17 +03:00
Jonas Schievink
f8acae7895
Support let...else
2021-10-07 17:06:24 +02:00
Aramis Razzaghipour
9583dd5725
Replace if let
with match
where appropriate
2021-10-05 09:00:21 +11:00
Florian Diebold
a2d9f7d7bb
Avoid type inference panic on bitslice methods
...
Should fix #10090 , #10046 , #10179 .
This is only a workaround, but the proper fix requires some bigger
refactoring (also related to fixing #10058 ), and this at least prevents
the crash.
2021-09-12 10:49:40 +02:00
Lukas Wirth
36a5ce9790
minor: fix some clippy lints
2021-09-03 16:00:50 +02:00
Florian Diebold
424dda8113
Refactor & improve handling of overloaded binary operators
...
Fixes #9971 . Also records them as method resolutions, which we could use
later.
2021-08-22 17:35:50 +02:00
bors[bot]
9e3517f8f3
Merge #9975
...
9975: minor: Fix panic caused by #9966 r=flodiebold a=flodiebold
Chalk can introduce new type variables when doing lazy normalization, so we have to do the proper 'fudging' after all.
Co-authored-by: Florian Diebold <flodiebold@gmail.com>
2021-08-21 18:07:36 +00:00
Florian Diebold
df77e2448c
Fix panic caused by #9966
...
Chalk can introduce new type variables when doing lazy normalization, so
we have to do the proper 'fudging' after all.
2021-08-21 20:07:07 +02:00
Laurențiu Nicola
104d6124d7
Handle coercion on binary operator RHS
2021-08-21 17:54:45 +03:00
Florian Diebold
1791a35f9f
Determine expected parameters from expected return in calls
...
Fixes #9560
2021-08-21 14:33:31 +02:00
Jonas Schievink
4757679b9a
feat: type inference for if-let guards
2021-08-14 00:09:30 +02:00
Jonas Schievink
d568e7686a
Support if let
match guards
2021-08-13 00:25:14 +02:00
Jonas Schievink
b596c32a41
Resolve tuple variants in value namespace
2021-07-22 13:40:18 +02:00
Florian Diebold
7c00ca2f51
Revert "Merge #9655 "
...
This reverts commit 8c8c6fb73d
, reversing
changes made to ec7b4cbf8f
.
2021-07-20 22:53:39 +02:00
Florian Diebold
ae22050a42
Determine expected parameters from expected return in calls
...
Fixes #9560
2021-07-18 20:56:44 +02:00
Lukas Wirth
69e6511820
Record autoderef adjustments
2021-07-10 12:26:18 +02:00
Lukas Wirth
9272942b92
Use CoerceMany
in BreakableContext
2021-07-09 15:51:07 +02:00
Lukas Wirth
64a1b26b8d
Implement CoerceMany
2021-07-08 14:16:23 +02:00
Lukas Wirth
9779526d8f
Record coercion adjustments
2021-07-08 13:07:24 +02:00
Laurențiu Nicola
3b2602cbb2
Don't unify array elements with their arrays
2021-07-08 12:55:00 +03:00
Jonas Schievink
cb63b021ff
Implement LUB coercion of array elements
2021-07-07 22:50:20 +02:00
Jonas Schievink
88a86d4ff9
Fix deduction of dyn Fn
closure parameter types
2021-06-30 15:04:04 +02:00
Laurențiu Nicola
e3ce88f6f2
Minor clippy perf fixes
2021-06-18 14:40:51 +03:00
Lukas Wirth
95c8c65139
Nest all the or-patterns!
2021-06-17 17:37:14 +02:00
Maan2003
5ac6804bb3
cargo fmt
2021-06-13 09:48:15 +05:30
Maan2003
c9b4ac5be4
clippy::redudant_borrow
2021-06-13 09:24:16 +05:30
Florian Diebold
20487a1b4a
Fix coercion in match with expected type
...
Plus add infrastructure to test type mismatches without expect.
2021-06-12 23:04:43 +02:00
cynecx
759cb07891
hir_ty: use correct receiver_ty in method resolution
2021-05-31 20:26:38 +02:00
Jonas Schievink
33debc4065
Update salsa
2021-05-27 15:05:41 +02:00
bors[bot]
f3aaae6555
Merge #9007
...
9007: Internal: `clippy::redundant_clone` fixes r=lnicola a=lnicola
bors r+
Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
2021-05-26 15:36:14 +00:00
Laurențiu Nicola
8206939fed
clippy::redundant_clone fixes
2021-05-26 18:34:50 +03:00
Florian Diebold
b26a472ccb
Fix type mismatch caused by macros
...
MacroStmts should be completely transparent, but it prevented
coercion. (I should maybe give `infer_expr` and `infer_expr_inner`
better names.)
2021-05-25 11:15:02 +02:00
Florian Diebold
4a6cdd776d
Record method call substs and use them in call info
2021-05-23 18:24:21 +02:00
Florian Diebold
6e5637983c
Record type mismatches for failed coercions in match etc.
2021-05-21 18:23:03 +02:00
Florian Diebold
556c9cebdb
Refactor expectation handling
...
So as to not use `TyKind::Error` as "no expectation".
2021-05-21 18:23:03 +02:00
Florian Diebold
4bd446f5b3
Get rid of resolve_ty_as_possible
...
Instead use shallow resolving where necessary.
2021-05-21 17:49:07 +02:00
Florian Diebold
1250ddc5cf
Rework obligation handling
...
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.
2021-05-21 17:48:34 +02:00
Florian Diebold
b939a6dcac
Fix if/else coercion
2021-05-21 17:48:34 +02:00
Florian Diebold
84074cb185
Remove our unification code, use Chalk's instead
2021-05-21 17:48:33 +02:00
Dawer
472317c008
internal: Record mismatches of pattern types.
2021-05-19 11:08:59 +05:00
Jade
de0ed9860d
Address final feedback
...
* rename ConstExtension->ConstExt
* refactor a manual construction of a Const
2021-05-15 18:51:18 -07:00
Jade
78d6b88f21
Add more tests, refactor array lengths/consteval work
...
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)
2021-05-14 01:39:28 -07:00