Florian Diebold
3f42b2e837
Handle Self
in values and patterns
...
I.e.
- `Self(x)` or `Self` in tuple/unit struct impls
- `Self::Variant(x)` or `Self::Variant` in enum impls
- the same in patterns
Fixes #4454 .
2020-05-15 17:25:28 +02:00
Aleksey Kladov
9faea2364d
Use dyn Trait
for working with databse
...
It improves compile time in `--release` mode quite a bit, it doesn't
really slow things down and, conceptually, it seems closer to what we
want the physical architecture to look like (we don't want to
monomorphise EVERYTHING in a single leaf crate).
2020-03-16 17:42:30 +01:00
Edwin Cheng
fe78a14bbb
Support local macro_rules
2020-03-14 14:25:51 +08:00
Aleksey Kladov
a1e1869554
Rename ast::ImplBlock -> ast::ImplDef
2020-02-29 21:33:15 +01:00
Florian Diebold
31af774254
Refactor how builtins are resolved
...
This fixes autocompletion suggesting e.g. self::usize.
2020-02-21 15:39:51 +01:00
Kirill Bulatov
b8ddcb0652
Run cargo +nightly fix --clippy -Z unstable-options
2020-02-18 16:03:08 +02:00
Florian Diebold
001dd6a200
Make Self implement the trait inside trait default methods
2020-02-14 20:39:04 +01:00
Florian Diebold
93aa166748
wip lower impl trait to type args
2020-02-07 18:28:10 +01:00
Florian Diebold
4496e2a06a
Apply review suggestions
2020-01-11 23:33:04 +01:00
Florian Diebold
4d75430e91
Qualify some paths in 'add missing impl members'
2020-01-11 23:33:04 +01:00
Aleksey Kladov
8f36f768e1
Don't add non-impl/trait containers to scope
2019-12-29 14:47:47 +01:00
Florian Diebold
50ebff257d
Rename ResolvedVisibility -> Visibility
2019-12-26 16:23:40 +01:00
Florian Diebold
e1a2961273
Rename Visibility -> RawVisibility
2019-12-26 16:23:40 +01:00
Florian Diebold
8ac25f119e
Keep track of visibility during def collection
2019-12-26 16:23:40 +01:00
Florian Diebold
79c90b5641
Collect visibility of items during nameres
2019-12-26 16:23:40 +01:00
Florian Diebold
1ce809d0fa
Add logic for resolving and checking visibility
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
6c3ddcfa50
Simplify
2019-12-22 15:37:53 +01:00
Aleksey Kladov
0f212b3798
Move ModuleScope to a new module
2019-12-20 16:52:02 +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
ba12e83c26
Add body as a possible container for items
2019-12-19 18:12:46 +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
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
Aleksey Kladov
200bda3daf
Cleanup Field ty
2019-12-08 12:16:57 +01:00
Aleksey Kladov
88c5b1282a
Rename GenericParam -> TypeParam
...
We don't have LifetimeParam yet, but they are planned!
2019-12-07 20:25:48 +01:00
Aleksey Kladov
8e9837df21
Remove idx and parent generics from generics
...
This makes `hir_def::GenericParams` flatter. The logic for
re-numbering the params is moved to hir instead.
2019-12-07 13:05:56 +01:00
Aleksey Kladov
30fefcc08c
Store GenericParams in arena
2019-12-07 13:05:56 +01:00
Edwin Cheng
bb601e7eaf
Add BuiltinShadowMode
2019-11-30 23:29:21 +08:00
Aleksey Kladov
d9a36a736b
Rename module_id -> local_id
2019-11-27 21:31:51 +03:00
Aleksey Kladov
bed6869865
Cleanup
2019-11-26 22:56:07 +03:00
Aleksey Kladov
6fb4871f31
Add note
2019-11-26 19:30:57 +03:00
Aleksey Kladov
a0e1dbb450
Implement HasModule for AdtId
2019-11-24 22:48:37 +03:00
Aleksey Kladov
d87c16bea6
hir_def is fully doc'ed!
2019-11-24 21:00:50 +03:00
Aleksey Kladov
f5e0a31eaf
Cleanup nameres
2019-11-24 18:05:12 +03:00
Aleksey Kladov
99af523b68
Cleanup
2019-11-24 17:36:06 +03:00
Aleksey Kladov
e0b06cb672
Switch to StaticLoc for statics
2019-11-24 15:18:12 +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
fc1e543f7a
Get rid of DefDatabase2
2019-11-23 14:49:45 +03:00
Aleksey Kladov
4f8f3393bc
Reduce visibility
2019-11-21 16:00:57 +03:00
Aleksey Kladov
36758f2767
Resimplify
2019-11-21 15:56:27 +03:00
Aleksey Kladov
6d64798a23
Move resolver to hir_def
2019-11-21 15:39:09 +03:00