Commit Graph

4070 Commits

Author SHA1 Message Date
Aleksey Kladov
f63be06002 profile type inference 2019-05-21 16:26:13 +03:00
Aleksey Kladov
0f3e85002b profile implements query 2019-05-21 16:04:17 +03:00
bors[bot]
9fe8e56177 Merge #1301
1301: fix odrer-of-iteration bug in tests r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-05-21 11:53:27 +00:00
Aleksey Kladov
908c9589a8 fix odrer-of-iteration bug in tests 2019-05-21 14:51:52 +03:00
Laurențiu Nicola
9ade271a67 Use ThemeColor and add support for light themes 2019-05-21 14:19:08 +03:00
bors[bot]
772311392f Merge #1300
1300: sort hash maps for tests r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-05-21 11:14:54 +00:00
Aleksey Kladov
0efb5364c3 sort hash maps for tests 2019-05-21 14:14:31 +03:00
bors[bot]
8b6f02d0d6 Merge #1297
1297: mozilla is sponsoring as well r=matklad a=nikomatsakis



Co-authored-by: Niko Matsakis <niko@alum.mit.edu>
2019-05-21 10:40:33 +00:00
bors[bot]
c59a3cdb03 Merge #1296
1296: ⬆️ insta r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-05-21 10:28:55 +00:00
Niko Matsakis
02ecd6727a
mozilla is sponsoring as well 2019-05-21 06:27:07 -04:00
Aleksey Kladov
507c97a18c ⬆️ insta 2019-05-21 13:21:54 +03:00
bors[bot]
3db7bdb6b7 Merge #1295
1295: add _query to query functions r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-05-21 10:19:20 +00:00
Aleksey Kladov
69341a0bbe add _query to query functions 2019-05-21 12:44:08 +03:00
bors[bot]
eabfe3902f Merge #1293
1293: Pass `--all-targets` to `cargo watch` r=matklad a=aleksijuvani

A trivial change, but passes the `--all-targets` flag to `cargo watch`. This enables inline diagnostics for the example, bin and test targets. Previously, modifying an example would trigger a change notification for `cargo watch`, but `cargo check` does not actually check these unless either `--all-targets` or `--examples` is specified.

Co-authored-by: Aleksi Juvani <aleksi@aleksijuvani.com>
2019-05-21 07:23:21 +00:00
Aleksi Juvani
854dac335d Pass --all-targets to cargo watch 2019-05-21 09:44:28 +03:00
bors[bot]
4369c1c4a1 Merge #1291
1291: add is_union to structs AST r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-05-20 22:16:21 +00:00
Aleksey Kladov
765f93b8d8 add is_union to structs AST 2019-05-21 01:15:56 +03:00
Aleksey Kladov
4ca8331933 remove minor code duplication 2019-05-21 01:02:29 +03:00
bors[bot]
9383ae720b Merge #1289
1289: simplify r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-05-20 20:02:18 +00:00
Aleksey Kladov
9680ae865e simplify 2019-05-20 23:01:49 +03:00
bors[bot]
11742e3371 Merge #1287
1287: Add support of matching literal in mbe r=matklad a=edwin0cheng

This PR adds support of matching literal in mbe , which used in our `T` macro :

```rust
macro_rules! foo {
    ('(') => {
        fn foo() {}
    }
}
```

Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2019-05-20 19:27:05 +00:00
bors[bot]
c8f93ff58c Merge #1288
1288: output the progress for real r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-05-20 18:21:18 +00:00
Aleksey Kladov
87316db0b1 output the progress for real 2019-05-20 21:20:52 +03:00
Edwin Cheng
ad9d2012de Fix match literal 2019-05-20 18:29:02 +08:00
bors[bot]
3894eb77d8 Merge #1286
1286: Add infer for generic default type r=flodiebold a=edwin0cheng

This PR add infer support for generic default type:

```
struct Gen<T=u32> {
    val: T
}
```

* add the (unresolved) defaults from the definition to GenericParams
* add a query generic_defaults that resolves those defaults to types and returns a Substs
* add the missing type in `substs_from_path_segment`
* add tests

based on the idea in this [comment](https://github.com/rust-analyzer/rust-analyzer/issues/1099#issuecomment-484206279)

Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2019-05-20 09:52:15 +00:00
Edwin Cheng
3fc344b9f1 Use normal iteration instead of walk_mut 2019-05-20 17:48:58 +08:00
Edwin Cheng
d4dc879415 Add infer for generic default type 2019-05-19 21:08:16 +08:00
Edwin Cheng
e74d8f148b Add default type to GenericParam 2019-05-19 17:44:29 +08:00
bors[bot]
5edddae523 Merge #1284
1284: Assert that DB is unwind-safe, instead of proving r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-05-18 10:06:21 +00:00
Aleksey Kladov
fcffa6ba6b Assert that DB is unwind-safe, instead of proving
Unfortunately, that `: RefUnwindSafe` bound gives rustc a hard time,
so let's remove it for know.

See

* https://github.com/rust-analyzer/rust-analyzer/issues/1283
* https://github.com/rust-lang/rust/pull/60444
* https://github.com/rust-lang/rust/issues/58291

closes #1283
2019-05-18 13:05:42 +03:00
Unreal Hoang
99ad6143cd
rename 2019-05-16 12:53:52 +09:00
bors[bot]
f7112371ee Merge #1280
1280: ⬆️ text_unit r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-05-15 16:21:45 +00:00
Aleksey Kladov
e29a58995b ⬆️ text_unit 2019-05-15 19:19:05 +03:00
bors[bot]
ec7d2f64ad Merge #1278
1278: Apply T! macro where posible r=matklad a=pasa

apply T! macro implemented in #1248

Co-authored-by: Sergey Parilin <sergey.parilin@fxdd.com>
2019-05-15 12:45:58 +00:00
Sergey Parilin
993abedd77 apply T! macro where it is possible 2019-05-15 15:35:47 +03:00
Sergey Parilin
d77175ce28 fixed macro for brackets 2019-05-15 12:34:48 +03:00
bors[bot]
64ab5ab10d Merge #1273
1273: show current function in analysis-stats progress bar r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-05-14 06:59:09 +00:00
Aleksey Kladov
d4b1e958c5 show current function in analysis-stats progress bar 2019-05-14 09:58:41 +03:00
bors[bot]
c417c77b68 Merge #1267
1267: Macro expand to r=edwin0cheng a=matklad

closes #1264 

The core problem this PR is trying to wrangle is that macros can expand to different stuffs, depending on context. 

That is, `foo!()` on the top-level expands to a list of items, but the same `foo!()` in expression position expands to expression.

Our current `hir_parse(HirFileId) -> TreeArc<SourceFile>` does not really support this. 

So, the plan is to change `hir_parse` to untyped inreface (`TreeArc<Syntaxnode>`), and add `expands_to` field to `MacroCallLoc`, such that the *target* of macro expansion is selected by the calling code and is part of macro id. 

This unfortunately looses some type-safety :( 


Moreover, this doesn't really fix #1264 by itself, because we die due to some other error inside macro expansion: expander fails to produce a tree with a single root, which trips assert inside rowan.

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-05-14 06:12:09 +00:00
Aleksey Kladov
caa8663c08 allow expanding expressions 2019-05-14 09:03:43 +03:00
Aleksey Kladov
16c7405262 expand to syntax node 2019-05-14 09:03:43 +03:00
Aleksey Kladov
101b3abfd7 store macro kind in HirFileId 2019-05-14 09:03:43 +03:00
bors[bot]
ee0ab7c00b Merge #1272
1272: Error out non single root token tree conversion r=matklad a=edwin0cheng

This PR add a check to prevent non single root token tree conversion between token trees and syntax tree.

It should prevent the assert produced in #1267.

Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2019-05-14 05:41:23 +00:00
Edwin Cheng
10ecb11ff5 Error out non single root token tree conversion 2019-05-14 07:59:28 +08:00
bors[bot]
bebc5c7166 Merge #1271
1271: make AstId untyped r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-05-13 21:04:04 +00:00
bors[bot]
d7a4ae43f9 Merge #1270
1270: Increase Chalk solver max_size back to 4 r=flodiebold a=flodiebold

Reducing it to 2 was just a failed attempt to see whether that would help fix
some slow cases; in fact, it can create new slow cases by replacing concrete
types by variables.

Co-authored-by: Florian Diebold <flodiebold@gmail.com>
2019-05-13 20:23:09 +00:00
Florian Diebold
c29a692137 Increase Chalk solver max_size back to 4
Reducing it to 2 was just a failed attempt to see whether that would help fix
some slow cases; in fact, it can create new slow cases by replacing concrete
types by variables.
2019-05-13 22:20:39 +02:00
Aleksey Kladov
549728bba8 make AstId untyped 2019-05-13 19:39:06 +03:00
bors[bot]
033a32f349 Merge #1257
1257: Implemented tkn! macro for syntax kinds r=matklad a=pasa

Implementation of #1248

Co-authored-by: Sergey Parilin <sergey.parilin@fxdd.com>
2019-05-13 13:49:14 +00:00
Sergey Parilin
57bb618fd3 Implemented T! macro for syntax kinds 2019-05-13 15:19:57 +03:00