aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/ty/infer.rs
Commit message (Collapse)AuthorAgeFilesLines
* Differentiate Tuple / FnPtr type constructors by cardinalityFlorian Diebold2019-05-041-4/+7
| | | | | This is necessary because Chalk (reasonably) expects each 'struct' to know how many type parameters it takes.
* Make canonicalization API a bit nicerFlorian Diebold2019-05-041-15/+16
|
* Canonicalize before doing method resolutionFlorian Diebold2019-05-041-3/+10
|
* Chalk integrationFlorian Diebold2019-05-041-15/+16
| | | | | - add proper canonicalization logic - add conversions from/to Chalk IR
* New krate() method in Resolver.Marco Groppo2019-04-191-28/+26
| | | | Renamed Impl to ImplBlock.
* Initial support for lang items.Marco Groppo2019-04-191-25/+29
|
* RefactoringEdwin Cheng2019-04-171-51/+46
|
* Simpliy codeEdwin Cheng2019-04-171-60/+32
|
* Bug fix and add more commentsEdwin Cheng2019-04-171-22/+60
|
* Fix 1099Edwin Cheng2019-04-171-3/+48
|
* Extract generic_params method to a HasGenericParams traitFlorian Diebold2019-04-141-4/+7
|
* Make callable signature handling a bit nicerFlorian Diebold2019-04-141-47/+14
|
* Some cleanupFlorian Diebold2019-04-141-90/+99
|
* More trait infrastructureFlorian Diebold2019-04-141-6/+78
| | | | | | | | | | - make it possible to get parent trait from method - add 'obligation' machinery for checking that a type implements a trait (and inferring facts about type variables from that) - handle type parameters of traits (to a certain degree) - improve the hacky implements check to cover enough cases to exercise the handling of traits with type parameters - basic canonicalization (will probably also be done by Chalk)
* Avoid two-phase borrow conflictLaurențiu Nicola2019-04-081-2/+2
|
* Added ArrayExprKind,Lenard Pratt2019-04-071-13/+17
| | | | | changed the display for fixed array types, Added Array Enum to ra_hir/expr
* Added inference of array lengthLenard Pratt2019-04-071-1/+10
|
* Added const bodies and static body to the astLenard Pratt2019-04-021-6/+14
| | | | | | and added inference the inference test reduce code duplication
* Basics for trait method resolutionFlorian Diebold2019-03-251-1/+2
|
* cleanupAleksey Kladov2019-03-251-4/+4
|
* switch modules to new diagnosticsAleksey Kladov2019-03-251-4/+9
|
* allow dyn diagnosticsAleksey Kladov2019-03-251-6/+33
|
* diagnosticsAleksey Kladov2019-03-251-3/+20
|
* Fix apply_substs assertion failureFlorian Diebold2019-03-231-2/+2
| | | | Fixes #1030.
* replace todo with fixmeAleksey Kladov2019-03-231-23/+23
|
* Refactor primitive types into more orthogonal representationyanchith2019-03-221-5/+10
|
* Assert in apply_substs that the number of parameters doesn't changeFlorian Diebold2019-03-211-1/+1
| | | | ... and fix a small bug revealed by that.
* Rename name field to ctor as wellFlorian Diebold2019-03-211-9/+9
|
* TypeName => TypeCtorFlorian Diebold2019-03-211-39/+39
|
* Remove the old variants replaced by Ty::ApplyFlorian Diebold2019-03-211-118/+146
|
* Represent FnPtr and Tuple using SubstsFlorian Diebold2019-03-211-10/+12
|
* Merge #982bors[bot]2019-03-171-17/+82
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 982: Implement BindingMode for pattern matching. r=flodiebold a=mjkillough Implement `BindingMode` for pattern matching, so that types can be correctly inferred using match ergonomics. The binding mode defaults to `Move` (referred to as 'BindingMode::BindByValue` in rustc), and is updated by automatic dereferencing of the value being matched. Fixes #888. - [Binding modes in The Reference](https://doc.rust-lang.org/reference/patterns.html#binding-modes) - [`rustc` implementation](https://github.com/rust-lang/rust/blob/e17c48e2f21eefd59748e364234efc7037a3ec96/src/librustc_typeck/check/_match.rs#L77) (and [definition of `BindingMode`](https://github.com/rust-lang/rust/blob/e957ed9d10ec589bdd523b88b4b44c41b1ecf763/src/librustc/ty/binding.rs)) - [Match Ergonomics RFC](https://github.com/rust-lang/rfcs/blob/master/text/2005-match-ergonomics.md#binding-mode-rules) Co-authored-by: Michael Killough <[email protected]>
| * Split test case and use tested_by!.Michael Killough2019-03-171-0/+3
| |
| * Simplify match statement.Michael Killough2019-03-171-6/+1
| |
| * impl Default for BindingMode.Michael Killough2019-03-171-5/+11
| | | | | | | | | | This decouples callers from knowing what the default binding mode of pattern matching is.
| * Implement BindingMode for pattern matching.Michael Killough2019-03-161-17/+78
| | | | | | | | | | | | | | Implement `BindingMode` for pattern matching, so that types can be correctly inferred using match ergonomics. The binding mode defaults to `Move` (referred to as 'BindingMode::BindByValue` in rustc), and is updated by automatic dereferencing of the value being matched.
* | Remove FnSig from FnDef typeFlorian Diebold2019-03-161-2/+4
| | | | | | | | | | It doesn't need to be in there since it's just information from the def. Another step towards aligning Ty with Chalk's representation.
* | Refactor FnSig a bitFlorian Diebold2019-03-161-11/+12
|/
* Use impl_froms!kjeremy2019-03-041-13/+3
|
* Make ExpOrPatId privatekjeremy2019-03-041-3/+6
|
* Remove commented out codeJeremy Kolb2019-03-041-9/+0
|
* Use ImplItems instead of just FunctionJeremy Kolb2019-03-041-34/+48
|
* Make goto definition/hover resolve constructorskjeremy2019-03-041-3/+40
|
* Add static type inferenceVille Penttinen2019-02-251-1/+2
|
* Add const type inferenceVille Penttinen2019-02-251-7/+13
|
* Rename Type => TypeAliasFlorian Diebold2019-02-241-2/+2
|
* Implement support for type aliasesFlorian Diebold2019-02-241-1/+3
|
* Refactor associated method resolution a bit and make it work with genericsFlorian Diebold2019-02-231-33/+53
|
* Split ty.rs into several modulesFlorian Diebold2019-02-231-0/+1079
It was just getting too big. We now have: - ty: the `Ty` enum and helpers - ty::infer: actual type inference - ty::lower: lowering from HIR to `Ty` - ty::op: helpers for binary operations, currently