Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | switch to new rowan | Aleksey Kladov | 2019-04-01 | 1 | -8/+6 |
| | |||||
* | Clean up comments / use nicer Iterator methods | Florian Diebold | 2019-03-25 | 1 | -9/+14 |
| | |||||
* | Implement a very naive implements check | Florian Diebold | 2019-03-25 | 2 | -7/+27 |
| | | | | ... to make the infer_trait_method_simple test have the correct result. | ||||
* | Basics for trait method resolution | Florian Diebold | 2019-03-25 | 3 | -21/+54 |
| | |||||
* | test diagnostics | Aleksey Kladov | 2019-03-25 | 1 | -0/+24 |
| | |||||
* | cleanup | Aleksey Kladov | 2019-03-25 | 1 | -4/+4 |
| | |||||
* | switch modules to new diagnostics | Aleksey Kladov | 2019-03-25 | 1 | -4/+9 |
| | |||||
* | allow dyn diagnostics | Aleksey Kladov | 2019-03-25 | 1 | -6/+33 |
| | |||||
* | diagnostics | Aleksey Kladov | 2019-03-25 | 1 | -3/+20 |
| | |||||
* | Fix apply_substs assertion failure | Florian Diebold | 2019-03-23 | 2 | -2/+25 |
| | | | | Fixes #1030. | ||||
* | replace todo with fixme | Aleksey Kladov | 2019-03-23 | 4 | -28/+28 |
| | |||||
* | Refactor primitive types into more orthogonal representation | yanchith | 2019-03-22 | 3 | -140/+149 |
| | |||||
* | Assert in apply_substs that the number of parameters doesn't change | Florian Diebold | 2019-03-21 | 1 | -1/+1 |
| | | | | ... and fix a small bug revealed by that. | ||||
* | Rename name field to ctor as well | Florian Diebold | 2019-03-21 | 3 | -14/+14 |
| | |||||
* | TypeName => TypeCtor | Florian Diebold | 2019-03-21 | 4 | -70/+70 |
| | |||||
* | Remove the old variants replaced by Ty::Apply | Florian Diebold | 2019-03-21 | 4 | -152/+194 |
| | |||||
* | Represent FnPtr and Tuple using Substs | Florian Diebold | 2019-03-21 | 2 | -12/+14 |
| | |||||
* | make Name::new private | Aleksey Kladov | 2019-03-20 | 2 | -14/+56 |
| | |||||
* | Merge #982 | bors[bot] | 2019-03-17 | 2 | -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 Killough | 2019-03-17 | 2 | -76/+102 |
| | | |||||
| * | Simplify match statement. | Michael Killough | 2019-03-17 | 1 | -6/+1 |
| | | |||||
| * | impl Default for BindingMode. | Michael Killough | 2019-03-17 | 1 | -5/+11 |
| | | | | | | | | | | This decouples callers from knowing what the default binding mode of pattern matching is. | ||||
| * | Implement BindingMode for pattern matching. | Michael Killough | 2019-03-16 | 2 | -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 -> CrateModuleId | Aleksey Kladov | 2019-03-17 | 1 | -4/+4 |
| | | |||||
* | | Reorganize name resolution | Aleksey Kladov | 2019-03-17 | 1 | -1/+1 |
| | | |||||
* | | Replace module_tree with CrateDefMap | Aleksey Kladov | 2019-03-17 | 1 | -1/+3 |
| | | |||||
* | | Remove FnSig from FnDef type | Florian Diebold | 2019-03-16 | 2 | -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 bit | Florian Diebold | 2019-03-16 | 2 | -36/+57 |
| | | |||||
* | | Some more Ty displaying cleanup | Florian Diebold | 2019-03-16 | 1 | -33/+31 |
| | | |||||
* | | Replace Display by a pretty printing trait for Ty | Florian Diebold | 2019-03-16 | 3 | -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! | kjeremy | 2019-03-04 | 1 | -13/+3 |
| | |||||
* | Make ExpOrPatId private | kjeremy | 2019-03-04 | 1 | -3/+6 |
| | |||||
* | Remove commented out code | Jeremy Kolb | 2019-03-04 | 1 | -9/+0 |
| | |||||
* | Use ImplItems instead of just Function | Jeremy Kolb | 2019-03-04 | 1 | -34/+48 |
| | |||||
* | Make goto definition/hover resolve constructors | kjeremy | 2019-03-04 | 1 | -3/+40 |
| | |||||
* | Inline type inference test snapshots | Florian Diebold | 2019-03-03 | 59 | -1504/+1096 |
| | |||||
* | Represent unknown types as {unknown} instead of [unknown] | Florian Diebold | 2019-03-03 | 27 | -170/+170 |
| | | | | Since the latter could actually be a real type... | ||||
* | Add a bunch of tests for type inference involving traits | Florian Diebold | 2019-03-02 | 13 | -0/+403 |
| | | | | None of them works correctly yet, of course. | ||||
* | rename syntax-mapping -> source-map | Aleksey Kladov | 2019-03-02 | 1 | -5/+5 |
| | |||||
* | Add static type inference | Ville Penttinen | 2019-02-25 | 3 | -10/+24 |
| | |||||
* | Add const type inference | Ville Penttinen | 2019-02-25 | 6 | -19/+104 |
| | |||||
* | Rename Type => TypeAlias | Florian Diebold | 2019-02-24 | 2 | -11/+11 |
| | |||||
* | Add test for recursive type aliases | Florian Diebold | 2019-02-24 | 1 | -0/+14 |
| | |||||
* | Implement support for type aliases | Florian Diebold | 2019-02-24 | 4 | -10/+70 |
| | |||||
* | Refactor associated method resolution a bit and make it work with generics | Florian Diebold | 2019-02-23 | 4 | -64/+98 |
| | |||||
* | Split ty.rs into several modules | Florian Diebold | 2019-02-23 | 3 | -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 crates | Florian Diebold | 2019-02-23 | 1 | -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. | ||||
* | Merge #866 | bors[bot] | 2019-02-22 | 6 | -0/+223 |
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | 866: Implement basic support for Associated Methods r=flodiebold a=vipentti This is my attempt at learning to understand how the type inference works by adding basic support for associated methods. Currently it does not resolve associated types or constants. The basic idea is that `Resolver::resolve_path` returns a new `PathResult` type, which has two variants, `FullyResolved` and `PartiallyResolved`, fully resolved matches the previous behavior, where as `PartiallyResolved` contains the `PerNs<Resolution` in addition to a `segment_index` which contains the index of the segment which we failed to resolve. This index can then be used to continue inference in `infer_path_expr` using the `Type` we managed to resolve. This changes some of the previous apis, so looking for feedback and suggestions. This should enable fixing #832 Co-authored-by: Ville Penttinen <[email protected]> | ||||
| * | Ignore failing test for now | Ville Penttinen | 2019-02-21 | 1 | -0/+1 |
| | | |||||
| * | Remove Const inference for now, refactor PathResult | Ville Penttinen | 2019-02-21 | 1 | -7/+7 |
| | |