Florian Diebold
79c90b5641
Collect visibility of items during nameres
2019-12-26 16:23:40 +01:00
Aleksey Kladov
e424545c0f
Rudimentary name resolution for local items
2019-12-22 22:41:21 +01:00
Aleksey Kladov
7c405c0156
Simplify
2019-12-22 19:32:35 +01:00
Aleksey Kladov
007032f850
Refactor
2019-12-22 19:31:01 +01:00
Aleksey Kladov
6c3ddcfa50
Simplify
2019-12-22 15:37:53 +01:00
Aleksey Kladov
e8da7d4061
Remove unused parameters
2019-12-22 15:31:30 +01:00
Aleksey Kladov
558956c84b
Remove import field
2019-12-22 15:28:55 +01:00
Aleksey Kladov
2c60f42825
Separate defs from imports
2019-12-22 15:21:48 +01:00
Aleksey Kladov
e69af85962
Refactor PerNs construction
2019-12-22 15:10:19 +01:00
Aleksey Kladov
e903f58d29
More profiling
2019-12-21 19:44:08 +01:00
Aleksey Kladov
1a8f2aa024
Move LocalImportId
2019-12-21 17:34:28 +01:00
Aleksey Kladov
02f79e37ca
Remove import source map
2019-12-21 17:26:28 +01:00
Aleksey Kladov
ec56f59ac1
Remove import from resolution
2019-12-21 17:26:28 +01:00
Aleksey Kladov
4e0168ec14
Remove imports from hir
2019-12-21 15:18:14 +01:00
Aleksey Kladov
973b5cf7e2
Revert "Merge #2629 "
...
This reverts commit cdc9d682b0
, reversing
changes made to 90ef070db3
.
2019-12-21 15:04:33 +01:00
Aleksey Kladov
2d3fdf3fb5
Privatize LocalImportID
2019-12-21 12:47:34 +01:00
Aleksey Kladov
d335311893
Remove import source map
2019-12-21 12:45:33 +01:00
Aleksey Kladov
ab7a70fb14
Don't track imports
2019-12-21 12:38:40 +01:00
bors[bot]
1cbef27ff8
Merge #2625
...
2625: Clippy lints r=matklad a=kjeremy
Co-authored-by: kjeremy <kjeremy@gmail.com>
2019-12-21 06:12:36 +00:00
kjeremy
0d5d63a80e
Clippy lints
2019-12-20 15:14:30 -05:00
Aleksey Kladov
7a862f0d47
Make legacy macros private
2019-12-20 17:12:20 +01:00
Aleksey Kladov
af42cb5981
Privitize impls
2019-12-20 16:55:38 +01:00
Aleksey Kladov
7adb53319d
Make items private
2019-12-20 16:52:02 +01:00
Aleksey Kladov
e6b1194f2f
Move some code to scope
2019-12-20 16:52:02 +01:00
Aleksey Kladov
4f9e3f3632
Fix typos
2019-12-20 16:52:02 +01:00
Aleksey Kladov
1b8ce5b37b
Move impls to ItemScope
2019-12-20 16:52:02 +01:00
Aleksey Kladov
0f212b3798
Move ModuleScope to a new module
2019-12-20 16:52:02 +01:00
Aleksey Kladov
1234dda9ee
Use generic ItemLoc for impls
2019-12-20 13:47:44 +01:00
Aleksey Kladov
f42697e54b
Support for nested traits
2019-12-20 12:29:25 +01:00
Aleksey Kladov
fe1b160dcf
Support for nested statics, consts and type aliases
2019-12-20 12:22:55 +01:00
Aleksey Kladov
ac5a3f611b
Support for nested ADT
2019-12-20 12:20:49 +01:00
Aleksey Kladov
94ad07af4b
Introduce ContainerId
2019-12-20 12:07:23 +01:00
Aleksey Kladov
8fc20b6503
Rename ContainerId -> AssocContainerId
2019-12-20 12:00:05 +01:00
Aleksey Kladov
43ed3d1196
Handle start imports in import groups
2019-12-19 16:57:22 +01:00
Aleksey Kladov
04715cbe1c
Forbid <T>::foo syntax in mod paths
2019-12-18 17:41:33 +01:00
Aleksey Kladov
0630f8110f
Drop dead code
2019-12-17 16:03:15 +01:00
Aleksey Kladov
aca022f1d4
Refactor PathKind
2019-12-17 15:38:28 +01:00
Aleksey Kladov
2619950b3b
Use different types for path with and without generics
2019-12-14 19:15:40 +01:00
Florian Diebold
6911bc89a7
Rename N! to name!
2019-12-13 22:33:38 +01:00
Florian Diebold
259c42f00e
Add macros for known names and paths
2019-12-13 22:33:37 +01:00
Aleksey Kladov
56710f119b
Move enum&union to new loc
2019-12-12 15:11:57 +01:00
Aleksey Kladov
f135a8ea55
Move structs to new loc
2019-12-12 14:58:04 +01:00
Aleksey Kladov
82e9b24558
Move traits to the new loc
2019-12-12 14:36:14 +01:00
Aleksey Kladov
7b0644d81e
Switch to the new location for impls
2019-12-12 14:25:34 +01:00
Edwin Cheng
3a95d01d0c
Delay legacy macro expansion
2019-12-08 20:33:42 +08:00
bors[bot]
b236f6aa49
Merge #2466
...
2466: Handle partial resolve cases r=matklad a=edwin0cheng
Another try to fix #2443 :
We resolve all imports every time in `DefCollector::collect` loop even it is resolved previously.
This is because other unresolved imports and macros will bring in another `PerNs`, so we can only assume that it has been partially resolved.
Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2019-12-08 10:44:30 +00:00
Edwin Cheng
509fedd9d2
Remove MacroFileKind
2019-12-08 16:16:52 +08:00
Edwin Cheng
51f4fb448f
Refactor resolve_imports logic
2019-12-07 19:24:15 +08:00
Edwin Cheng
e5997e1746
Push glob_imports only if non-exists
2019-12-07 09:50:21 +08:00
Edwin Cheng
76ff5b7c15
Add tests
2019-12-06 23:48:45 +08:00
Florian Diebold
18f6a995d0
Add expansion infrastructure for derive macros
2019-12-05 17:23:09 +01:00
ice1000
006a583381
Use placeholder instead of Option
2019-12-05 08:33:29 -05:00
ice1000
1bb59a7d08
Three-state enum for module origin
2019-12-04 18:30:42 -05:00
ice1000
009437f5d9
Replace ra_hir_expand::either
with crate
2019-12-03 11:07:56 -05:00
Edwin Cheng
cfc6e9e366
Remove some empty lines
2019-12-01 12:17:52 +08:00
Edwin Cheng
13c54685ff
Use index instead of peekable
2019-12-01 12:14:35 +08:00
Edwin Cheng
bb601e7eaf
Add BuiltinShadowMode
2019-11-30 23:29:21 +08:00
Aleksey Kladov
e823c578c9
Use InFile for AstId
2019-11-28 16:02:38 +03:00
Aleksey Kladov
ccd1b0800a
Rename Source -> InFile
2019-11-28 12:50:26 +03:00
Aleksey Kladov
1d14fd1737
Use Name::missing consistently
2019-11-27 23:22:20 +03:00
Aleksey Kladov
27b362b059
Reformat
2019-11-27 21:44:38 +03:00
Aleksey Kladov
d9a36a736b
Rename module_id -> local_id
2019-11-27 21:31:51 +03:00
Edwin Cheng
447268ceac
Hide MacroCallLoc
2019-11-27 01:33:08 +08:00
Aleksey Kladov
5fd68b5929
Fix hir for ast::UnionDef
2019-11-25 17:50:49 +03:00
Aleksey Kladov
434f108ada
Simplify
2019-11-24 19:01:19 +03:00
Aleksey Kladov
f5e0a31eaf
Cleanup nameres
2019-11-24 18:05:12 +03:00
Aleksey Kladov
855a629b14
Use Trace in raw_items
2019-11-24 17:49:49 +03:00
Aleksey Kladov
21cfa6d529
Some docs
2019-11-24 17:36:06 +03:00
Aleksey Kladov
99af523b68
Cleanup
2019-11-24 17:36:06 +03:00
Aleksey Kladov
4b74fb1d89
Nicer API for attrs
2019-11-24 16:03:02 +03:00
Aleksey Kladov
1956d57ed4
Slightly reduce code duplication
2019-11-24 15:50:45 +03:00
Aleksey Kladov
8e36cb5860
Simplify
2019-11-24 15:28:45 +03:00
Aleksey Kladov
e0b06cb672
Switch to StaticLoc for statics
2019-11-24 15:18:12 +03:00
Aleksey Kladov
cfffea6dc8
Push poison_macros down
2019-11-24 13:57:45 +03:00
Aleksey Kladov
ffc2325d19
Move ModuleSource back to hir
2019-11-23 17:12:49 +03:00
Aleksey Kladov
6bdd5fa461
Privatise nameres
2019-11-23 17:12:49 +03:00
Aleksey Kladov
158b1cb524
Rename CrateModuleId
2019-11-23 17:12:49 +03:00
Aleksey Kladov
dd5c2dc5bf
Move ImportId
2019-11-23 16:49:05 +03:00
Aleksey Kladov
fc1e543f7a
Get rid of DefDatabase2
2019-11-23 14:49:45 +03:00
Aleksey Kladov
e42f962766
Encapsulate Attrs
2019-11-22 11:27:47 +03:00
Aleksey Kladov
111891dc2d
Move constants to new ID
...
This allows us to get rid of trait item index
2019-11-20 18:41:23 +03:00
Aleksey Kladov
ee95a35664
Don't duplicate ContainerId type
2019-11-20 17:50:02 +03:00
Aleksey Kladov
64c21ed195
Switch type aliases to new sources
2019-11-20 17:43:03 +03:00
Aleksey Kladov
cebeedc66f
Next gen IDs for functions
...
The current system with AstIds has two primaraly drawbacks:
* It is possible to manufacture IDs out of thin air.
For example, it's possible to create IDs for items which are not
considered in CrateDefMap due to cfg. Or it is possible to mixup
structs and unions, because they share ID space.
* Getting the ID of a parent requires a secondary index.
Instead, the plan is to pursue the more traditional approach, where
each items stores the id of the parent declaration. This makes
`FromSource` more awkward, but also more correct: now, to get from an
AST to HIR, we first do this recursively for the parent item, and the
just search the children of the parent for the matching def
2019-11-20 16:22:58 +03:00
Aleksey Kladov
36e3fc9d54
Rename Source::ast -> Source::value
2019-11-20 09:42:30 +03:00
Aleksey Kladov
7e2f4b30db
Disable doctests
2019-11-17 18:35:05 +03:00
Aleksey Kladov
ea3540c1a8
Store impls in CrateDefMap
2019-11-15 21:19:32 +03:00
Aleksey Kladov
2f6c0c314b
Move scope tests to hir_def
2019-11-15 14:47:26 +03:00
Aleksey Kladov
5766ceab06
Add convenience method for testing
2019-11-15 13:16:30 +03:00
bors[bot]
ef2a9aedb6
Merge #2205
...
2205: Implement bulitin line! macro r=matklad a=edwin0cheng
This PR implements bulitin macro `line!` and add basic infra-structure for other bulitin macros:
1. Extend `MacroDefId` to support builtin macros
2. Add a `quote!` macro for simple quasi quoting.
Note that for support others builtin macros, eager macro expansion have to be supported first, this PR not try to handle it. :)
Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2019-11-11 10:53:24 +00:00
Edwin Cheng
4f7df2aac1
Add MacroDefKind
2019-11-11 18:48:16 +08:00
Edwin Cheng
c46768d13d
Add basic bultin macro infrastructure
2019-11-11 14:13:31 +08:00
Matthias Einwag
d634364462
Overwrite the prelude with one defined in a later dependency
...
This removes the special casing for the "core" prelude.
Whenever a later dependency also exports a prelude, it will replace
the formerly imported prelude. The utilized prelude then depends
purely on import order.
2019-11-10 13:15:47 -08:00
Matthias Einwag
8baa05666c
Add tests for resolving types in core and std preludes
2019-11-09 17:38:08 -08:00
Matthias Einwag
799903ba16
Resolve core types
...
This adds support for completion and goto definition of
types defined within the "core" crate. The core crate is
added as a dependency to each crate in the project.
The core crate exported it's own prelude. This caused
now all crates to inherit the core crates prelude instead
of the std crates. In order to avoid the problem the
prelude resolution has been changed to overwrite
an already resolved prelude if this was set to a crate
named core - in order to pick a better prelude like std.
Fixes #2199
2019-11-09 15:22:19 -08:00
Aleksey Kladov
6294fd5ec9
Unfork struct and union ids
2019-11-09 15:34:00 +03:00
Aleksey Kladov
657340e078
Reduce visibility
2019-11-09 00:23:11 +03:00
Aleksey Kladov
53945841be
Extract path resolution submodule
2019-11-09 00:17:17 +03:00
Aleksey Kladov
785887b382
Simplify
...
There's only one call-site for the function, so it seems fine to
inline
2019-11-08 23:53:39 +03:00
Aleksey Kladov
dc5e5f610c
Reduce visibility
2019-11-08 23:47:52 +03:00