aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/ty
Commit message (Collapse)AuthorAgeFilesLines
* Parse and infer tuple indicesrobojumper2019-04-061-0/+59
|
* Merge #1076bors[bot]2019-04-022-10/+71
|\ | | | | | | | | | | | | | | | | 1076: Const body inference r=flodiebold a=Lapz This is the second part of #887. I've added type inference on const bodies and introduced the DefWithBody containing Function, Const and Static. I want to add tests but im unsure on how I would go about testing that completions work. Co-authored-by: Lenard Pratt <[email protected]>
| * Added const bodies and static body to the astLenard Pratt2019-04-022-10/+71
| | | | | | | | | | | | and added inference the inference test reduce code duplication
* | switch to new rowanAleksey Kladov2019-04-011-8/+6
|/
* Clean up comments / use nicer Iterator methodsFlorian Diebold2019-03-251-9/+14
|
* Implement a very naive implements checkFlorian Diebold2019-03-252-7/+27
| | | | ... to make the infer_trait_method_simple test have the correct result.
* Basics for trait method resolutionFlorian Diebold2019-03-253-21/+54
|
* test diagnosticsAleksey Kladov2019-03-251-0/+24
|
* 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-232-2/+25
| | | | Fixes #1030.
* replace todo with fixmeAleksey Kladov2019-03-234-28/+28
|
* Refactor primitive types into more orthogonal representationyanchith2019-03-223-140/+149
|
* 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-213-14/+14
|
* TypeName => TypeCtorFlorian Diebold2019-03-214-70/+70
|
* Remove the old variants replaced by Ty::ApplyFlorian Diebold2019-03-214-152/+194
|
* Represent FnPtr and Tuple using SubstsFlorian Diebold2019-03-212-12/+14
|
* make Name::new privateAleksey Kladov2019-03-202-14/+56
|
* Merge #982bors[bot]2019-03-172-17/+136
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-172-76/+102
| |
| * 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-162-62/+154
| | | | | | | | | | | | | | 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.
* | rename ModuleId -> CrateModuleIdAleksey Kladov2019-03-171-4/+4
| |
* | Reorganize name resolutionAleksey Kladov2019-03-171-1/+1
| |
* | Replace module_tree with CrateDefMapAleksey Kladov2019-03-171-1/+3
| |
* | Remove FnSig from FnDef typeFlorian Diebold2019-03-162-8/+16
| | | | | | | | | | 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-162-36/+57
| |
* | Some more Ty displaying cleanupFlorian Diebold2019-03-161-33/+31
| |
* | Replace Display by a pretty printing trait for TyFlorian Diebold2019-03-163-19/+65
|/ | | | | This allows removing the names from Adt and FnDef (and more later), as a first step towards aligning more with chalk's Ty :)
* 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
|
* Inline type inference test snapshotsFlorian Diebold2019-03-0359-1504/+1096
|
* Represent unknown types as {unknown} instead of [unknown]Florian Diebold2019-03-0327-170/+170
| | | | Since the latter could actually be a real type...
* Add a bunch of tests for type inference involving traitsFlorian Diebold2019-03-0213-0/+403
| | | | None of them works correctly yet, of course.
* rename syntax-mapping -> source-mapAleksey Kladov2019-03-021-5/+5
|
* Add static type inferenceVille Penttinen2019-02-253-10/+24
|
* Add const type inferenceVille Penttinen2019-02-256-19/+104
|
* Rename Type => TypeAliasFlorian Diebold2019-02-242-11/+11
|
* Add test for recursive type aliasesFlorian Diebold2019-02-241-0/+14
|
* Implement support for type aliasesFlorian Diebold2019-02-244-10/+70
|
* Refactor associated method resolution a bit and make it work with genericsFlorian Diebold2019-02-234-64/+98
|
* Split ty.rs into several modulesFlorian Diebold2019-02-233-0/+1478
| | | | | | | | | 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
* Fix resolution of associated method calls across cratesFlorian Diebold2019-02-231-2/+39
| | | | | | I think it'll be better to make the path resolution the number of unresolved segments, not the first unresolved index; then this error could simply not have happened. But I'll do that separately.