Commit graph

198 commits

Author SHA1 Message Date
Aleksey Kladov
ff0312fa32 Semantical call info 2020-07-16 18:03:04 +02:00
Aleksey Kladov
4c08fc9be3 Cleanup limits 2020-07-15 15:53:33 +02:00
Aleksey Kladov
8baa2b727d Check cancellation when updating imports recursively
For winapi, this takes a lot of CPU time without doing queries and
causes the main event loop to stall on cancellation.
2020-07-15 15:49:20 +02:00
Aleksey Kladov
760ee8173c Micro-optimize update 2020-07-15 15:45:34 +02:00
Aleksey Kladov
d47834ee1b Guard against infinite macro expansions
closes #4463
2020-07-14 18:31:48 +02:00
Aleksey Kladov
dab7f3d2c6 Remove relative_path dependency 2020-07-08 19:32:36 +02:00
bors[bot]
656cbc68a1
Merge #5033
5033: Order of glob imports should not affect import shadowing r=Nashenas88 a=Nashenas88

Fixes #5032

Co-authored-by: Paul Daniel Faria <Nashenas88@users.noreply.github.com>
2020-06-27 02:51:54 +00:00
Paul Daniel Faria
b700443e78 Remove comment that's no longer valid 2020-06-26 11:13:58 -04:00
Paul Daniel Faria
76755ce176 Split glob import map to per-ns, switch ExprCollector to use a simpler push_res 2020-06-26 11:11:51 -04:00
Jonas Schievink
72fe70f2f8 Make VFS join methods fallible 2020-06-26 16:30:50 +02:00
Paul Daniel Faria
de9e964e4a Track import type outside of , use enum rather than bool to improve readability 2020-06-25 12:42:12 -04:00
Paul Daniel Faria
0b657ddbfe Revert resolution of all glob imports first, replace with tracking of glob imports and shadowing when more specific 2020-06-25 09:27:00 -04:00
Paul Daniel Faria
70d4829560 Order of glob imports should not affect import shadowing 2020-06-25 09:23:34 -04:00
Jonas Schievink
d84b3ff6a1 Collect field/variant attrs in ItemTree 2020-06-25 14:39:27 +02:00
Jonas Schievink
43cad21623 Don't allocate common visibilities 2020-06-24 16:54:20 +02:00
Jonas Schievink
4b03b39d5b draw the rest of the owl 2020-06-24 16:53:16 +02:00
Jonas Schievink
864b650f92 ItemTree: use a newtyped ID 2020-06-24 16:53:16 +02:00
Jonas Schievink
f9e5ba7d40 Remove now-broken incremental test
The ItemTree tracks impl and trait items, so the CrateDefMap now needs
recomputing when those change
2020-06-24 16:53:16 +02:00
Jonas Schievink
0e2602f75e Remove raw item query 2020-06-24 16:53:16 +02:00
Jonas Schievink
7054e89d18 Fix test 2020-06-24 16:53:16 +02:00
Jonas Schievink
9d24412929 Move collector 2020-06-24 16:53:14 +02:00
Jonas Schievink
e24de2007f collector changes WIP 2020-06-24 16:52:37 +02:00
Paul Daniel Faria
43c6f6c039 Fix formatting issue with glob shadow test 2020-06-24 08:50:59 -04:00
Paul Daniel Faria
dfd79907b8 Use a macro in push_res to simplify code, simplify glob_shadowed_def assertion 2020-06-24 08:20:41 -04:00
Paul Daniel Faria
38af81f183 Account for updated module ids when determining whether a resolution is "changed" 2020-06-23 22:10:01 -04:00
Aleksey Kladov
6996ec860b Drop rarely used fixture functionality 2020-06-23 18:37:26 +02:00
Aleksey Kladov
dad1333b48 New VFS 2020-06-23 17:51:06 +02:00
Florian Diebold
584bddef0c Don't panic on crates depending on themselves
Fixes #3883.
2020-06-19 18:38:03 +02:00
Aleksey Kladov
42be05a335 Simplify 2020-06-18 16:02:45 +02:00
Aleksey Kladov
3c72fc0573 Anchor file-system operations to the file, and not to the source root.
Anchoring to the SourceRoot wont' work if the path is absolute:

  #[path = "/tmp/foo.rs"]
  mod foo;

Anchoring to a file will.

However, we *should* anchor, instead of just producing an abs path.

I can imagine a situation where, for example, rust-analyzer processes
crates from different machines (or, for example, from in-memory git
branch), where the same absolute path in different crates might refer
to different files in the end!
2020-06-16 18:45:58 +02:00
Aleksey Kladov
fac7b0e252 Don't guess macro expansion crate 2020-06-11 12:13:14 +02:00
Aleksey Kladov
bba374bab2 More direct signature for resolve_path 2020-06-05 15:07:30 +02:00
Aleksey Kladov
e63c00f100 Rename resolve_relative_path -> resolve_path
For things like `concant!(env!("OUT_DIR"))`, we need to support abs paths
2020-06-05 14:58:30 +02:00
kjeremy
bee4f8f9fe Pass trivially copy types as copy 2020-05-26 14:12:13 -04:00
Aleksey Kladov
ecac5d7de2 Switch to new magic marks 2020-05-20 13:02:53 +02:00
Edwin Cheng
cf821cc332 Change union resolve types only 2020-05-05 01:19:54 +08:00
Edwin Cheng
e921195d93 Change favor_types to has_constructor 2020-05-05 01:15:27 +08:00
Edwin Cheng
af001677d1 Fix test 2020-05-05 00:17:30 +08:00
Edwin Cheng
8d96db3417 Favor types for Record in name resolution 2020-05-05 00:17:22 +08:00
Edwin Cheng
291d03949b Add test in name resolutions 2020-05-02 10:06:17 +08:00
Edwin Cheng
7bbdeb43a4 Make AttrQuery copyable 2020-05-01 20:58:24 +08:00
Edwin Cheng
e4267967a8 Support local_inner_macros 2020-05-01 11:23:03 +08:00
Jonas Schievink
5cc9546ca0 Record definitions in extern blocks 2020-04-23 23:36:23 +02:00
Aleksey Kladov
f980b07529 Make incremental nameres test harder 2020-04-11 17:54:46 +02:00
Aleksey Kladov
38c67e5c0d Avoid cyclic queries in name resolution when processing enums 2020-04-11 17:52:26 +02:00
Aleksey Kladov
55356332bf Remove code duplication 2020-04-11 17:18:42 +02:00
Aleksey Kladov
c8b4c36f81 Semicolon token 2020-04-10 16:10:28 +02:00
Aleksey Kladov
2bfb65db93 Be consistent about token accesors 2020-04-09 18:48:13 +02:00
Luca Barbieri
60f4d7bd8c Provide more complete AST accessors to support usage in rustc 2020-04-09 11:50:37 +02:00
bors[bot]
b1594f1080
Merge #3727
3727: Introduce ra_proc_macro r=matklad a=edwin0cheng

This PR implemented:

1.  Reading dylib path of proc-macro crate from cargo check , similar to how `OUTDIR` is obtained.
2.  Added a new crate `ra_proc_macro` and implement the foot-work for reading result from external proc-macro expander. 
3. Added a struct `ProcMacroClient` , which will be responsible to the client side communication to the External process.



Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2020-03-26 17:09:32 +00:00