Commit graph

5077 commits

Author SHA1 Message Date
bors[bot]
2b69c84396
Merge #1815
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 <hooccooh1896@gmail.com>
2019-09-27 02:58:26 +00:00
uHOOCCOOHu
edadeb95be
Fix 2019-09-27 10:55:25 +08:00
bors[bot]
fc218ec0d0
Merge #1923
1923: Add SubstsBuilder r=flodiebold a=flodiebold

+ further refactoring.

Co-authored-by: Florian Diebold <flodiebold@gmail.com>
2019-09-26 21:04:20 +00:00
Florian Diebold
daaf46177e Add SubstsBuilder
+ further refactoring.
2019-09-26 23:03:39 +02:00
bors[bot]
1002e47074
Merge #1921
1921: WIP: start simplifying editing API r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-09-26 19:31:28 +00:00
Aleksey Kladov
d847d53e36 Start simplifying editing API 2019-09-26 22:22:08 +03:00
uHOOCCOOHu
2ecb126f5c
Support $crate in item and expr place. 2019-09-27 02:05:06 +08:00
uHOOCCOOHu
8cd23a4fb8
Store crate info in MacroDefId 2019-09-27 02:05:06 +08:00
uHOOCCOOHu
128dc5355b
Refactor Name ready for hygienic macro 2019-09-27 02:04:47 +08:00
bors[bot]
53a30d9e69
Merge #1919
1919: move diff to ra_syntax r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-09-26 12:58:54 +00:00
Aleksey Kladov
1a4b424005 move diff to ra_syntax 2019-09-26 15:56:52 +03:00
bors[bot]
3882231f32
Merge #1918
1918: keep ast creation API simple r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-09-26 12:30:44 +00:00
Aleksey Kladov
183a38fb50 keep ast creation API simple 2019-09-26 15:29:28 +03:00
bors[bot]
d6bbdfefa7
Merge #1917
1917: disable periodic GC r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-09-26 09:33:18 +00:00
Aleksey Kladov
fabb32693f disable periodic GC
There's hypothesis that it doesn't do anything useful now that we have
LRU...
2019-09-26 12:31:16 +03:00
bors[bot]
79376abb43
Merge #1823
1823: Support type coercion r=flodiebold a=uHOOCCOOHu



Co-authored-by: uHOOCCOOHu <hooccooh1896@gmail.com>
2019-09-26 08:19:18 +00:00
bors[bot]
6c1878009d
Merge #1916
1916: Missing word r=matklad a=nicrd



Co-authored-by: nicrd <nicolasrd@gmail.com>
2019-09-26 05:11:23 +00:00
nicrd
b0f992a351
Missing word 2019-09-25 21:49:52 -04:00
uHOOCCOOHu
29e56b8ee4
Support all coercion places 2019-09-26 06:16:58 +08:00
uHOOCCOOHu
5807e261c2
Support custom CoerceUnsized
Split out tests about coercion
2019-09-26 06:16:52 +08:00
uHOOCCOOHu
bf161fa3e5
Better handle never type and branch merging
Split out tests for never type to another file
2019-09-26 06:04:43 +08:00
uHOOCCOOHu
4bb66df6de
Support basic implicit type coerce 2019-09-26 06:04:39 +08:00
uHOOCCOOHu
5205c84ec7
Support auto-deref in argument position 2019-09-26 06:02:04 +08:00
bors[bot]
870ce4b1a5
Merge #1912
1912: add new editing API, suitable for modifying several nodes at once r=viorina a=matklad

r? @viorina 

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-09-25 20:44:20 +00:00
bors[bot]
0d277faf6c
Merge #1914
1914: Resolve trait associated items r=matklad a=flodiebold

E.g. `Default::default` or `<Foo as Default>::default`.

Co-authored-by: Florian Diebold <flodiebold@gmail.com>
2019-09-25 20:23:09 +00:00
Florian Diebold
c35ef5013c Resolve trait associated items
E.g. `Default::default` or `<Foo as Default>::default`.
2019-09-25 21:41:17 +02:00
bors[bot]
5704485063
Merge #1913
1913: Fix retrieval of the Fn traits r=flodiebold a=flodiebold

I used the wrong query, so it only used the lang items from the respective
crate...

Co-authored-by: Florian Diebold <flodiebold@gmail.com>
2019-09-25 18:14:35 +00:00
Florian Diebold
d0d1a202d4 Fix retrieval of the Fn traits
I used the wrong query, so it only used the lang items from the respective
crate...
2019-09-25 20:04:37 +02:00
Aleksey Kladov
a525e830a6 add new editing API, suitable for modifying several nodes at once 2019-09-25 17:57:12 +03:00
bors[bot]
a452e50e0e
Merge #1911
1911: fewer monomorphisations r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-09-25 14:19:46 +00:00
Aleksey Kladov
b7422bd1ab fewer monomorphisations 2019-09-25 17:19:16 +03:00
bors[bot]
bb467b857e
Merge #1910
1910: Assists r=matklad a=matklad

bors r+

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-09-25 12:59:12 +00:00
Aleksey Kladov
efeae82f52 clean up naming 2019-09-25 15:58:40 +03:00
Aleksey Kladov
98639d835c cleanup diagnostics 2019-09-25 15:39:41 +03:00
Aleksey Kladov
32843ae6f7 shorten AstBuilder names 2019-09-25 15:28:26 +03:00
Aleksey Kladov
546f031e4e minor builder cleanups 2019-09-25 15:26:05 +03:00
Aleksey Kladov
25fca04753 cleaned up record field builder 2019-09-25 15:09:03 +03:00
bors[bot]
8f92309dbc
Merge #1909
1909: move ast builder to a separate file r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-09-25 11:35:50 +00:00
Aleksey Kladov
69689625ce move ast builder to a separate file 2019-09-25 14:35:26 +03:00
Aleksey Kladov
f32081fa18 move assists to subdir 2019-09-25 14:29:41 +03:00
bors[bot]
d9b4835625
Merge #1900 #1907
1900: Add rollup bundler for vscode extension r=matklad a=JasperDeSutter

This is an alternative approach to #1451 - bundling should improve extension startup times as explained [here](https://code.visualstudio.com/api/working-with-extensions/bundling-extension).

I'm using [rollup.js](https://rollupjs.org/guide/en/) which is a small and light bundler as opposed to webpack. Bundling is only done for creating the final vsix package, reducing 196 files down to 7 (of which 1 javascript file).

1907: update documentation according to new settings r=matklad a=lesurp

1. `command` has been added to change the default cargo-watch command
2. `check-arguments` has been renamed to `arguments` as a consequence

Thoses changes were merged in #1434

Co-authored-by: JasperDeSutter <jasper.desutter@gmail.com>
Co-authored-by: Paul Lesur <paul.lesur@dfki.de>
2019-09-25 09:02:59 +00:00
bors[bot]
63433ba79a
Merge #1906
1906: Add missing lang-items to `def_crates` r=matklad a=sinkuu



Co-authored-by: Shotaro Yamada <sinkuu@sinkuu.xyz>
2019-09-25 08:55:32 +00:00
Paul Lesur
f14e2ffbe0 update documentation according to new settings
1. `command` has been added to change the default cargo-watch command
2. `check-arguments` has been renamed to `arguments` as a consequence

Thoses changes were merged in #1434
2019-09-25 10:55:18 +02:00
bors[bot]
6bac2d0a63
Merge #1904
1904: Remove redundant `clone()` r=matklad a=sinkuu



Co-authored-by: Shotaro Yamada <sinkuu@sinkuu.xyz>
2019-09-25 05:27:07 +00:00
Shotaro Yamada
89d0ff1623 Add missing lang-items to def_crates 2019-09-25 12:02:53 +09:00
Shotaro Yamada
9c45a9e586 Remove redundant clone() 2019-09-25 10:32:01 +09:00
Shotaro Yamada
7e0fa71532 Avoid intermediate allocation 2019-09-25 10:30:33 +09:00
bors[bot]
c7420ddaaa
Merge #1845
1845: Closure types r=flodiebold a=flodiebold

This adds types for closures and makes them implement the `Fn` traits (we don't currently care or try to infer `Fn` vs. `FnMut` vs. `FnOnce`; this would require move analysis, I think).

This requires some changes in Chalk; one is that we need to know the self type when asked for impls, so we can synthesize `Fn` trait impls for closures; but also there's a problem that prevents us from normalizing the closure output type correctly that I _think_ will be fixed on the Chalk side (basically, we ask too early and try to solve `Normalize(<?1 as FnOnce<(u32,)>>::Output => ?0)` -- note the variable in the self type -- and instead of an ambiguous answer, we get back that it can't be solved, so we don't try again. Niko mentioned he's making all goals where the self type is unconstrained flounder, which I think would mean this would be ambiguous).

Co-authored-by: Florian Diebold <flodiebold@gmail.com>
2019-09-24 21:12:26 +00:00
Florian Diebold
6a86706650 Implement the call argument checking order hack for closures 2019-09-24 23:05:12 +02:00
Florian Diebold
a0aeb6e7ad Make the closure_1 test work 2019-09-24 23:05:12 +02:00