Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Merge #2661 | bors[bot] | 2019-12-24 | 2 | -2/+78 |
|\ | | | | | | | | | | | | | | | | | | | | | | | 2661: Implement infer await from async function r=flodiebold a=edwin0cheng This PR is my attempt for trying to add support for infer `.await` expression from an `async` function, by desugaring its return type to `Impl Future<Output=RetType>`. Note that I don't know it is supposed to desugaring it in that phase, if it is not suitable in current design, just feel free to reject it :) r=@flodiebold Co-authored-by: Edwin Cheng <[email protected]> | ||||
| * | Check if parameters is empty | Edwin Cheng | 2019-12-24 | 1 | -4/+6 |
| | | |||||
| * | Add FIXME | Edwin Cheng | 2019-12-24 | 1 | -1/+5 |
| | | |||||
| * | Implement infer await from async func | Edwin Cheng | 2019-12-24 | 2 | -2/+72 |
| | | |||||
* | | 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 | 3 | -121/+100 |
|/ | |||||
* | 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 |
| | |||||
* | 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! |