Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | | Filter out error predicates in type bounds as well | Florian Diebold | 2019-12-22 | 2 | -2/+29 | |
| | | ||||||
* | | Introduce our own Chalk TypeFamily, instead of using ChalkIr | Florian Diebold | 2019-12-22 | 4 | -87/+126 | |
| | | | | | | | | | | | | It's not very different, except we can directly use Salsa IDs instead of casting them. This means we need to refactor the handling of errors to get rid of UNKNOWN_TRAIT though. | |||||
* | | Refactor Chalk integration some more | Florian Diebold | 2019-12-22 | 2 | -79/+83 | |
| | | ||||||
* | | Update Chalk, clean up Chalk integration a bit | Florian Diebold | 2019-12-22 | 4 | -125/+103 | |
|/ | ||||||
* | Rudimentary name resolution for local items | Aleksey Kladov | 2019-12-22 | 1 | -6/+6 | |
| | ||||||
* | Merge #2626 | bors[bot] | 2019-12-21 | 1 | -0/+23 | |
|\ | | | | | | | | | | | | | | | 2626: Recursive collect macros in impl items r=matklad a=edwin0cheng Co-authored-by: Edwin Cheng <[email protected]> | |||||
| * | Recursive collect macros in impl items | Edwin Cheng | 2019-12-20 | 1 | -0/+23 | |
| | | ||||||
* | | Merge #2625 | bors[bot] | 2019-12-21 | 2 | -3/+3 | |
|\ \ | |/ |/| | | | | | | | | | | | 2625: Clippy lints r=matklad a=kjeremy Co-authored-by: kjeremy <[email protected]> | |||||
| * | Clippy lints | kjeremy | 2019-12-20 | 2 | -3/+3 | |
| | | ||||||
* | | Merge #2624 | bors[bot] | 2019-12-20 | 3 | -3/+3 | |
|\ \ | | | | | | | | | | | | | | | | | | | | | | 2624: Separate module item from module scope r=matklad a=matklad bors r+ Co-authored-by: Aleksey Kladov <[email protected]> | |||||
| * | | Move impls to ItemScope | Aleksey Kladov | 2019-12-20 | 3 | -3/+3 | |
| | | | ||||||
* | | | Merge #2623 | bors[bot] | 2019-12-20 | 1 | -0/+19 | |
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | 2623: Add support macros in impl blocks r=matklad a=edwin0cheng This PR add support for macros in impl blocks, which reuse `Expander` for macro expansion. see also: #2459 Co-authored-by: Edwin Cheng <[email protected]> | |||||
| * | | Add support macros in impl blocks | Edwin Cheng | 2019-12-20 | 1 | -0/+19 | |
| |/ | ||||||
* | | Coerce closures to fn pointers | Florian Diebold | 2019-12-20 | 3 | -5/+48 | |
| | | | | | | | | E.g. `let x: fn(A) -> B = |x| { y };` | |||||
* | | Fix coercion of last expression in function body | Florian Diebold | 2019-12-20 | 3 | -2/+18 | |
| | | ||||||
* | | Handle closure return types | Florian Diebold | 2019-12-20 | 4 | -4/+106 | |
|/ | | | | Fixes #2547. | |||||
* | Merge #2592 | bors[bot] | 2019-12-20 | 3 | -5/+59 | |
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2592: Add std::ops::Index support for infering r=edwin0cheng a=edwin0cheng see also #2534 Seem like this can't fix #2534 for this case: ```rust fn foo3(bar: [usize; 2]) { let baz = bar[1]; // <--- baz is still unknown ? println!("{}", baz); } ``` Co-authored-by: Edwin Cheng <[email protected]> | |||||
| * | Use fill instread of for loop | Edwin Cheng | 2019-12-19 | 1 | -5/+3 | |
| | | ||||||
| * | Use build_for_def | Edwin Cheng | 2019-12-19 | 1 | -1/+1 | |
| | | ||||||
| * | Add std::ops::Index support for infering | Edwin Cheng | 2019-12-19 | 3 | -5/+61 | |
| | | ||||||
* | | Use generic ItemLoc for impls | Aleksey Kladov | 2019-12-20 | 2 | -2/+2 | |
| | | ||||||
* | | Support for nested traits | Aleksey Kladov | 2019-12-20 | 1 | -2/+4 | |
| | | ||||||
* | | Support for nested ADT | Aleksey Kladov | 2019-12-20 | 1 | -2/+2 | |
| | | ||||||
* | | Introduce `ContainerId` | Aleksey Kladov | 2019-12-20 | 3 | -3/+3 | |
| | | ||||||
* | | Rename ContainerId -> AssocContainerId | Aleksey Kladov | 2019-12-20 | 6 | -22/+22 | |
| | | ||||||
* | | Add body as a possible container for items | Aleksey Kladov | 2019-12-19 | 3 | -7/+7 | |
| | | ||||||
* | | Remove TruncateOptions struct | Kirill Bulatov | 2019-12-19 | 1 | -13/+10 | |
| | | ||||||
* | | Omit default parameter types | Kirill Bulatov | 2019-12-19 | 2 | -7/+47 | |
| | | ||||||
* | | Forbid <T>::foo syntax in mod paths | Aleksey Kladov | 2019-12-18 | 2 | -5/+5 | |
|/ | ||||||
* | Add test mark | Florian Diebold | 2019-12-15 | 3 | -2/+9 | |
| | ||||||
* | Handle impl Trait more correctly | Florian Diebold | 2019-12-15 | 3 | -1/+56 | |
| | | | | | | | When calling a function, argument-position impl Trait is transparent; same for return-position impl Trait when inside the function. So in these cases, we need to represent that type not by `Ty::Opaque`, but by a type variable that can be unified with whatever flows into there. | |||||
* | Add test for unifying impl Trait | Florian Diebold | 2019-12-15 | 1 | -1/+27 | |
| | ||||||
* | Use different types for path with and without generics | Aleksey Kladov | 2019-12-14 | 4 | -51/+51 | |
| | ||||||
* | Use path macro | Florian Diebold | 2019-12-13 | 2 | -15/+15 | |
| | ||||||
* | Rename N! to name! | Florian Diebold | 2019-12-13 | 5 | -15/+15 | |
| | ||||||
* | Add macros for known names and paths | Florian Diebold | 2019-12-13 | 5 | -17/+15 | |
| | ||||||
* | Correctly infer - and ! using std::ops::{Neg,Not} | Emil Lauridsen | 2019-12-13 | 3 | -23/+104 | |
| | ||||||
* | Add helper for resolving associated type of trait in infer | Emil Lauridsen | 2019-12-13 | 2 | -47/+25 | |
| | ||||||
* | Move enum&union to new loc | Aleksey Kladov | 2019-12-12 | 1 | -4/+5 | |
| | ||||||
* | Move structs to new loc | Aleksey Kladov | 2019-12-12 | 1 | -1/+1 | |
| | ||||||
* | Move traits to the new loc | Aleksey Kladov | 2019-12-12 | 1 | -4/+2 | |
| | ||||||
* | Switch to the new location for impls | Aleksey Kladov | 2019-12-12 | 2 | -4/+4 | |
| | ||||||
* | chore: bump deps and use mainline chalk | Laurențiu Nicola | 2019-12-09 | 1 | -3/+3 | |
| | ||||||
* | Fix coercion from &Foo to an inference variable in a reference | Florian Diebold | 2019-12-08 | 2 | -1/+42 | |
| | | | | We didn't try to unify within the reference, but we should. | |||||
* | Merge #2466 | bors[bot] | 2019-12-08 | 1 | -0/+29 | |
|\ | | | | | | | | | | | | | | | | | | | | | 2466: Handle partial resolve cases r=matklad a=edwin0cheng Another try to fix #2443 : We resolve all imports every time in `DefCollector::collect` loop even it is resolved previously. This is because other unresolved imports and macros will bring in another `PerNs`, so we can only assume that it has been partially resolved. Co-authored-by: Edwin Cheng <[email protected]> | |||||
| * | Add tests | Edwin Cheng | 2019-12-06 | 1 | -0/+29 | |
| | | ||||||
* | | Rename GenericParam -> TypeParam | Aleksey Kladov | 2019-12-07 | 1 | -14/+12 | |
| | | | | | | | | We don't have LifetimeParam yet, but they are planned! | |||||
* | | Reformat | Aleksey Kladov | 2019-12-07 | 1 | -2/+2 | |
| | | ||||||
* | | Refactor parameter count tracking | Aleksey Kladov | 2019-12-07 | 6 | -32/+30 | |
| | | ||||||
* | | Remove idx and parent generics from generics | Aleksey Kladov | 2019-12-07 | 6 | -60/+135 | |
| | | | | | | | | | | This makes `hir_def::GenericParams` flatter. The logic for re-numbering the params is moved to hir instead. |