aboutsummaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
* simplify strip attrsAleksey Kladov2019-09-285-29/+35
|
* correctly reset chalk state after a panicAleksey Kladov2019-09-281-6/+9
|
* replace horrible hack with a slightly less horrible oneAleksey Kladov2019-09-272-3/+5
|
* Merge #1815bors[bot]2019-09-2720-126/+373
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1815: Support correct `$crate` expansion in macros r=uHOOCCOOHu a=uHOOCCOOHu This PR makes normal use cases of `$crate` from macros work as expected. It makes more macros from `std` work. Type inference works well with `panic`, `unimplemented`, `format`, and maybe more. Sadly that `vec![1, 2, 3]` still not works, but it is not longer an issue about macro. Screenshot: ![Screenshot_20190927_022136](https://user-images.githubusercontent.com/14816024/65714465-b4568f80-e0cd-11e9-8043-dd44c2ae8040.png) Co-authored-by: uHOOCCOOHu <[email protected]>
| * FixuHOOCCOOHu2019-09-272-2/+2
| |
| * Support `$crate` in item and expr place.uHOOCCOOHu2019-09-2614-37/+268
| |
| * Store crate info in `MacroDefId`uHOOCCOOHu2019-09-263-5/+11
| |
| * Refactor `Name` ready for hygienic macrouHOOCCOOHu2019-09-264-84/+94
| |
* | Add SubstsBuilderFlorian Diebold2019-09-2611-126/+212
| | | | | | | | + further refactoring.
* | Start simplifying editing APIAleksey Kladov2019-09-2612-82/+107
|/
* move diff to ra_syntaxAleksey Kladov2019-09-262-24/+45
|
* keep ast creation API simpleAleksey Kladov2019-09-269-250/+213
|
* Merge #1917bors[bot]2019-09-262-8/+2
|\ | | | | | | | | | | | | | | 1917: disable periodic GC r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * disable periodic GCAleksey Kladov2019-09-262-8/+2
| | | | | | | | | | There's hypothesis that it doesn't do anything useful now that we have LRU...
* | Support all coercion placesuHOOCCOOHu2019-09-253-96/+216
| |
* | Support custom `CoerceUnsized`uHOOCCOOHu2019-09-254-247/+476
| | | | | | | | Split out tests about coercion
* | Better handle never type and branch merginguHOOCCOOHu2019-09-255-181/+392
| | | | | | | | Split out tests for never type to another file
* | Support basic implicit type coerceuHOOCCOOHu2019-09-252-142/+383
| |
* | Support auto-deref in argument positionuHOOCCOOHu2019-09-252-1/+161
|/
* Merge #1912bors[bot]2019-09-256-31/+119
|\ | | | | | | | | | | | | | | 1912: add new editing API, suitable for modifying several nodes at once r=viorina a=matklad r? @viorina Co-authored-by: Aleksey Kladov <[email protected]>
| * add new editing API, suitable for modifying several nodes at onceAleksey Kladov2019-09-256-31/+119
| |
* | Resolve trait associated itemsFlorian Diebold2019-09-255-19/+78
| | | | | | | | E.g. `Default::default` or `<Foo as Default>::default`.
* | Fix retrieval of the Fn traitsFlorian Diebold2019-09-254-8/+7
|/ | | | | I used the wrong query, so it only used the lang items from the respective crate...
* Merge #1911bors[bot]2019-09-252-6/+6
|\ | | | | | | | | | | | | | | 1911: fewer monomorphisations r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * fewer monomorphisationsAleksey Kladov2019-09-252-6/+6
| |
* | clean up namingAleksey Kladov2019-09-252-2/+2
| |
* | cleanup diagnosticsAleksey Kladov2019-09-251-4/+6
| |
* | shorten AstBuilder namesAleksey Kladov2019-09-255-54/+42
| |
* | minor builder cleanupsAleksey Kladov2019-09-253-55/+55
| |
* | cleaned up record field builderAleksey Kladov2019-09-252-7/+4
| |
* | move ast builder to a separate fileAleksey Kladov2019-09-257-235/+237
| |
* | move assists to subdirAleksey Kladov2019-09-2520-49/+55
|/
* Merge #1906bors[bot]2019-09-251-2/+5
|\ | | | | | | | | | | | | | | 1906: Add missing lang-items to `def_crates` r=matklad a=sinkuu Co-authored-by: Shotaro Yamada <[email protected]>
| * Add missing lang-items to `def_crates`Shotaro Yamada2019-09-251-2/+5
| |
* | Remove redundant clone()Shotaro Yamada2019-09-2514-29/+21
| |
* | Avoid intermediate allocationShotaro Yamada2019-09-251-1/+1
|/
* Implement the call argument checking order hack for closuresFlorian Diebold2019-09-243-12/+108
|
* Make the closure_1 test workFlorian Diebold2019-09-243-27/+40
|
* Make closures impl closure traitsFlorian Diebold2019-09-244-41/+188
|
* Give closures typesFlorian Diebold2019-09-245-21/+78
|
* Upgrade Chalk againFlorian Diebold2019-09-241-3/+6
|
* simplifyAleksey Kladov2019-09-244-39/+25
|
* Merge #1898bors[bot]2019-09-233-3/+3
|\ | | | | | | | | | | | | | | | | 1898: Drive by lints r=kjeremy a=kjeremy Co-authored-by: kjeremy <[email protected]> Co-authored-by: Jeremy Kolb <[email protected]>
| * Revert SelfJeremy Kolb2019-09-231-1/+1
| |
| * Drive by lintskjeremy2019-09-234-4/+4
| |
* | Upgrade ChalkFlorian Diebold2019-09-231-4/+6
|/
* Split off path expression inference code into submoduleFlorian Diebold2019-09-232-172/+199
|
* Merge #1895bors[bot]2019-09-227-23/+173
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1895: Handle associated type shorthand (`T::Item`) (Second attempt) r=flodiebold a=flodiebold This is only allowed for generic parameters (including `Self` in traits), and special care needs to be taken to not run into cycles while resolving it, because we use the where clauses of the generic parameter to find candidates for the trait containing the associated type, but the where clauses may themselves contain instances of short-hand associated types. In some cases this is even fine, e.g. we might have `T: Trait<U::Item>, U: Iterator`. If there is a cycle, we'll currently panic, which isn't great, but better than overflowing the stack... Co-authored-by: Florian Diebold <[email protected]>
| * Handle projection types from ChalkFlorian Diebold2019-09-221-1/+5
| |
| * Handle associated type shorthand (`T::Item`)Florian Diebold2019-09-227-392/+538
| | | | | | | | | | | | | | | | | | | | | | | | This is only allowed for generic parameters (including `Self` in traits), and special care needs to be taken to not run into cycles while resolving it, because we use the where clauses of the generic parameter to find candidates for the trait containing the associated type, but the where clauses may themselves contain instances of short-hand associated types. In some cases this is even fine, e.g. we might have `T: Trait<U::Item>, U: Iterator`. If there is a cycle, we'll currently panic, which isn't great, but better than overflowing the stack...