Alexander Andreev
018bf3d7b1
Added resolve submodules with raw name
...
#1211
2019-07-03 17:37:56 +03:00
Shotaro Yamada
546442df68
Add completion for type aliases
2019-07-03 03:08:39 +09:00
Aleksey Kladov
e7164e6aeb
put source maps first for better stats
2019-06-30 16:35:40 +03:00
Aleksey Kladov
d70520eb38
print memory usage for queries
2019-06-30 14:49:45 +03:00
Florian Diebold
d37f960dfa
Complete associated methods on enums (and unions) as well
2019-06-29 12:40:01 +02:00
Aleksey Kladov
6e2369938a
make sure that CrateDefMap is independent from syntax
2019-06-26 21:50:42 +03:00
Aleksey Kladov
a198d78bd1
cache chalk queries
...
This gives a significant speedup, because chalk will call these
functions several times even withing a single revision. The only
significant one here is `impl_data`, but I figured it might be good to
cache others just for consistency.
The results I get are:
Before:
from scratch: 16.081457952s
no change: 15.846493ms
trivial change: 352.95592ms
comment change: 361.998408ms
const change: 457.629212ms
After:
from scratch: 14.910610278s
no change: 14.934647ms
trivial change: 85.633023ms
comment change: 96.433023ms
const change: 171.543296ms
Seems like a nice win!
2019-06-26 12:54:13 +03:00
Shotaro Yamada
9668737d05
Add comment
2019-06-25 20:57:42 +09:00
Shotaro Yamada
9e7a6bd66e
Method resolution for slices
2019-06-25 02:17:44 +09:00
kjeremy
f8f136e990
Bump cargo_metadata, ena, flexi_logger
2019-06-20 15:09:39 -04:00
Aleksey Kladov
bcff61257a
Add firewall query to lang items
...
With an intermediate query, changing one module won't cause reparsing
of all modules
2019-06-19 23:46:50 +03:00
Aleksey Kladov
0caec7d250
rename XSignature -> XData
2019-06-18 20:20:08 +03:00
Florian Diebold
ad3673d8d8
Add test for autoderef infinite recursion
2019-06-16 12:25:04 +02:00
Florian Diebold
96c2b9c41d
Simplifications / cleanup from review
2019-06-16 12:25:04 +02:00
Florian Diebold
30647cd195
Some more cleanup
2019-06-15 18:36:58 +02:00
Florian Diebold
94a6aff9f8
Check that Deref has the right number of parameters
2019-06-15 18:33:30 +02:00
Florian Diebold
3e78a6e3e0
Somewhat handle variables in the derefed type, and add another test
2019-06-15 18:21:23 +02:00
Florian Diebold
ca5ed2307c
Implement * operation using Deref trait
2019-06-15 18:21:23 +02:00
Florian Diebold
9c5e7dd849
Implement autoderef using the Deref trait
...
- add support for other lang item targets, since we need the Deref lang item
2019-06-15 18:21:23 +02:00
Florian Diebold
49489dc20c
Add basic infrastructure for assoc type projection
2019-06-15 18:21:23 +02:00
Florian Diebold
6f946f9656
Add test for Deref
2019-06-15 18:21:23 +02:00
Aleksey Kladov
b8cae2cf8f
check for cancellation when executing queries
...
Note that we can't just remove CheckCanceled trait altogether:
sometimes it's useful to check for cancellation while the query is
running! We do this, for example, in the name resolution fixed-point
loop.
2019-06-12 18:47:55 +03:00
Aleksey Kladov
ff6f6b3a52
move docs under code model
2019-06-11 18:28:51 +03:00
Aleksey Kladov
f6c227babd
fix compilation
2019-06-11 18:28:51 +03:00
Aleksey Kladov
14b1f87634
minor formatting
2019-06-11 18:28:51 +03:00
Aleksey Kladov
26753f0e49
remove unneded From(..) impl
2019-06-11 18:28:51 +03:00
Aleksey Kladov
0dcaded439
move source to a seaparate file
2019-06-11 18:28:51 +03:00
Aleksey Kladov
c4512fadb1
remove inherent source impls
2019-06-11 18:28:51 +03:00
Aleksey Kladov
dd63f17027
use Source for module, part 2
2019-06-11 18:28:51 +03:00
Aleksey Kladov
0145d06515
use Source for module, part 1
2019-06-11 18:28:51 +03:00
Aleksey Kladov
178d8e96b5
use Source for StructField
2019-06-11 18:28:51 +03:00
Aleksey Kladov
8b94b429e5
use Source for MacroDef
2019-06-11 18:28:51 +03:00
Aleksey Kladov
a6e339e822
use Source for impl block
2019-06-11 18:28:51 +03:00
Aleksey Kladov
f411c2988d
use Source for Trait
2019-06-11 18:28:51 +03:00
Aleksey Kladov
f2ccc54468
use Source for TypeAlias
2019-06-11 18:28:51 +03:00
Aleksey Kladov
46bc8675ed
use Source for statics and consts
2019-06-11 18:28:51 +03:00
Aleksey Kladov
4f94af3c4a
use Source for Function
2019-06-11 18:28:51 +03:00
Aleksey Kladov
36865adcb9
Introduce HasSource trait
2019-06-11 18:28:51 +03:00
Aleksey Kladov
2a1fe26b6d
use Source more
2019-06-11 18:28:51 +03:00
Aleksey Kladov
91c120ccea
introduce Source struct
2019-06-11 18:28:51 +03:00
Aleksey Kladov
156b7ee842
use single version of either in hir
2019-06-11 01:26:20 +03:00
Aleksey Kladov
caefa6982b
remove some hacks from nameresolution for macros
2019-06-08 20:42:02 +03:00
Aleksey Kladov
780e1a365b
somewhat better name
2019-06-08 18:38:14 +03:00
Aleksey Kladov
ac64967872
add a fixme
2019-06-08 14:55:25 +03:00
Aleksey Kladov
1b783e33e9
one macro def should be enough
2019-06-08 14:48:56 +03:00
Aleksey Kladov
2c28f5245d
make documenation a query
2019-06-08 14:36:39 +03:00
Aleksey Kladov
33026c654e
make Docs handing more ideomatic
2019-06-08 14:16:05 +03:00
Aleksey Kladov
5dc2789895
Move docs to dedicated module
2019-06-08 13:53:14 +03:00
Andrey Tkachenko
505b8d873f
[ #1083 ] Try block syntax: fix tests
2019-06-06 16:26:54 +04:00
Andrey Tkachenko
281c9eeaff
[ #1083 ] Try block syntax
2019-06-06 15:43:26 +04:00
csmoe
44363cd5d2
fix: clean up warnings
...
Change-Id: I91a468f6e846ac28574825b8ee7aa02fbff68f63
2019-06-06 10:06:46 +08:00
Alan Du
02b6f871f1
Fix clippy::iter_cloned_collect
2019-06-04 18:05:07 -04:00
Alan Du
9b54b06ee3
Fix clippy::option_map_or_none
2019-06-04 18:05:07 -04:00
Alan Du
b28ca32db2
Fix clippy::or_fun_call
2019-06-04 18:05:07 -04:00
Alan Du
40424d4222
Fix clippy::identity_conversion
2019-06-04 18:05:07 -04:00
Alan Du
ed3d93b875
Fix clippy::single_char_pattern
2019-06-04 18:05:07 -04:00
Alan Du
fb592d76aa
Fix clippy::into_iter_on_ref
2019-06-04 18:05:07 -04:00
Alan Du
619a615298
Fix clippy::len_zero
2019-06-04 18:05:07 -04:00
Alan Du
fafca4cb11
Fix clippy::ptr_arg
2019-06-04 18:05:07 -04:00
Alan Du
ecd420636e
Fix clippy::single_match
2019-06-04 18:05:07 -04:00
Aleksey Kladov
8b7f58976b
don't cache parses twice
...
Before this commit, `Parse`s for original file ended up two times in
salsa's db: first, when we parse original file, and second, when we
parse macro or a file.
Given that parse trees are the worst ofenders in terms of memory, it
makes sense to make sure we store them only once.
2019-06-02 20:15:10 +03:00
Aleksey Kladov
5af9e475f4
add AstDatabase
2019-06-02 12:27:36 +03:00
Aleksey Kladov
f7d3a87305
collect impl source maps
2019-06-01 22:31:22 +03:00
Aleksey Kladov
d7a2a9171e
don't cache ast_id_to_node
2019-06-01 22:14:42 +03:00
bors[bot]
ccec71165b
Merge #1360
...
1360: Improve goto definition for MBE r=matklad a=edwin0cheng
This PR improve the macro resolution for goto definition and expression macro invocation by using proper path resolution for external macros.
Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2019-06-01 17:48:06 +00:00
Edwin Cheng
371961be0e
Improve goto definition for MBE
2019-06-01 19:34:19 +08:00
Aleksey Kladov
f89d34be6a
don't poison mutex around chalk
...
We use panics for cancellation, so we could trigger panic while
holding the solver. std::sync::Mutex will be poisoned as a result,
which and all further attempts to use solver (from other threads) will
panic as well.
This commit switches to parking_lot::Mutex which just unlocks on panic.
2019-06-01 10:57:44 +03:00
Aleksey Kladov
c6ee9d681c
add tests for primitive types
2019-05-30 15:14:11 +03:00
Aleksey Kladov
97158f5c8a
add built-in types to scopes
2019-05-30 15:03:58 +03:00
Aleksey Kladov
4e5b02966b
add list of builtin types
2019-05-30 14:26:27 +03:00
Aleksey Kladov
e6545cc647
add ModuleDef::BuiltInType
2019-05-30 14:06:28 +03:00
Aleksey Kladov
18ed351747
⬆️ parking_lot
2019-05-30 12:02:30 +03:00
Aleksey Kladov
6bcc1b8b9e
add cacellation checks to expensive queries
2019-05-29 22:13:03 +03:00
Aleksey Kladov
c8bcfe6a05
fix syntax errors in tests
2019-05-28 18:07:39 +03:00
Aleksey Kladov
a2845bb1f5
check cancellation when expanding macros
2019-05-27 14:41:14 +03:00
Edwin Cheng
6d68d60d32
Formatting
2019-05-27 15:37:22 +08:00
Edwin Cheng
d6e6a98c03
Add Test for new item resolution
2019-05-26 20:11:18 +08:00
Edwin Cheng
b72074a715
Use ItemOrMacro in item resolution
2019-05-26 20:10:56 +08:00
Edwin Cheng
c0dc14ba5a
Add Either dep
2019-05-26 20:10:05 +08:00
Edwin Cheng
d5fbce4458
Put back unexpaned_macros after resolve
2019-05-26 13:38:03 +08:00
Aleksey Kladov
ef3169a33a
rename code_model_api -> code_model
2019-05-23 21:14:19 +03:00
Aleksey Kladov
0e57d58dd0
kill code_model_impl
2019-05-23 21:13:22 +03:00
Aleksey Kladov
ce82fbfc44
remove more references
2019-05-23 21:08:10 +03:00
Aleksey Kladov
bde9cab66e
remove references
2019-05-23 21:01:31 +03:00
Aleksey Kladov
7f22f90503
kill krate_impl
2019-05-23 20:30:09 +03:00
Aleksey Kladov
dbd02546b9
fix signature
2019-05-23 20:25:55 +03:00
Aleksey Kladov
5d54aa6781
add union to code_model
2019-05-23 20:18:47 +03:00
Aleksey Kladov
f15bb3c98a
add profile calls to parsing/expansion routines
2019-05-22 11:31:07 +03:00
Florian Diebold
ced971ee9f
Fix crash with int vars in canonicalization
2019-05-21 20:40:29 +02:00
Florian Diebold
f613c48d2e
Use fuel branch for Chalk
...
This makes sure we don't take too long in trait solving.
2019-05-21 20:40:29 +02:00
Aleksey Kladov
ed943adb29
re-enable chalk
2019-05-21 20:57:36 +03:00
Aleksey Kladov
26463f189f
publish gen_lsp_server 0.2
2019-05-21 18:57:33 +03:00
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
Aleksey Kladov
908c9589a8
fix odrer-of-iteration bug in tests
2019-05-21 14:51:52 +03:00
Aleksey Kladov
0efb5364c3
sort hash maps for tests
2019-05-21 14:14:31 +03: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
Aleksey Kladov
507c97a18c
⬆️ insta
2019-05-21 13:21:54 +03:00
Aleksey Kladov
69341a0bbe
add _query to query functions
2019-05-21 12:44:08 +03:00
Aleksey Kladov
4ca8331933
remove minor code duplication
2019-05-21 01:02:29 +03:00