Jeffrey Seyfried
e768fa729f
Refactor away the field Module::external_module_children in resolve
2016-01-31 03:38:41 +00:00
Jeffrey Seyfried
1ca9f03ead
Nits and other local improvements in resolve
2016-01-29 21:18:15 +00:00
Jeffrey Seyfried
118c93ba5e
Refactor away NameBindings, NsDef, ImportResolutionPerNamespace, DuplicateCheckingMode, and NamespaceDefinition.
2016-01-29 21:18:12 +00:00
Vadim Petrochenkov
ff6b0aac6a
resolve: Fix variant namespacing
2016-01-21 23:22:01 +03:00
Vadim Petrochenkov
2084c2c33a
Rename Def's variants and don't reexport them
2016-01-20 22:31:10 +03:00
Vadim Petrochenkov
ceaaa1bc33
Refactor definitions of ADTs in rustc::middle::def
2016-01-20 21:50:57 +03:00
Jeffrey Seyfried
a8514d3ecc
resolve: use arena allocation instead of reference counting for Module
s to fix memory leaks from Rc cycles
2016-01-13 00:54:16 +00:00
Jeffrey Seyfried
834fb17e94
Fix bug in duplicate checking for extern crates.
2016-01-06 07:04:48 +00:00
Nick Cameron
aaa02b3ff9
Refactoring
2015-12-30 14:27:59 +13:00
Nick Cameron
95dc7efad0
use structured errors
2015-12-30 14:27:59 +13:00
Vadim Petrochenkov
73307475f9
Prohibit private variant reexports
2015-12-18 04:12:31 +03:00
bors
6734dccc31
Auto merge of #30325 - jseyfried:fixes_30078, r=nrc
...
This fixes a bug in which unused imports can get wrongly marked as used when checking for unused qualifications in `resolve_path` (issue #30078 ), and it removes unused imports that were previously undetected because of the bug.
2015-12-17 18:21:25 +00:00
Jeffrey Seyfried
8364a6feef
Remove unused imports
2015-12-17 05:43:27 +00:00
Vadim Petrochenkov
0cc69f0ea3
rustc: Remove def::DefUse
2015-12-16 18:19:11 +03:00
Nick Cameron
18b4fe0e3e
Make name resolution errors non-fatal
2015-12-11 21:00:15 +13:00
Jeffrey Seyfried
ada87fae5f
Rename (Ns)ImportResolution
2015-12-11 01:38:13 +00:00
Jeffrey Seyfried
27c4f9e7b1
Fix a bug in which the visibility of a use declaration defining a name in one namespace (e.g. the value namespace) is overridden by a later use declaration defining the same name in the other namespace (e.g. the type namespace).
2015-12-10 02:55:05 +00:00
Vadim Petrochenkov
ca88e9c536
Remove some unnecessary indirection from HIR structures
2015-12-07 17:17:41 +03:00
Ariel Ben-Yehuda
0a8bb4c509
split the metadata code into rustc_metadata
...
tests & rustdoc still broken
2015-11-26 18:22:40 +02:00
Ariel Ben-Yehuda
d45dd9423e
make CrateStore a trait object
...
rustdoc still broken
2015-11-26 18:21:17 +02:00
Ariel Ben-Yehuda
f5fbefa3af
remove csearch from resolve and typeck
2015-11-26 18:21:17 +02:00
bors
8e9a97529d
Auto merge of #29530 - jseyfried:resolve, r=nikomatsakis
...
Replace `TypeNsDef` and `ValueNsDef` with a more general type `NsDef`.
Define a newtype `NameBinding` for `Rc<RefCell<Option<NsDef>>>` and refactor `NameBindings` to be a `NameBinding` for each namespace.
Replace uses of `NameBindings` with `NameBinding` where only one binding is being used (in `NamespaceResult`, `Target,` etc).
Refactor away `resolve_definition_of_name_in_module` and `NameDefinition`, fixing issue #4952 .
2015-11-23 17:31:19 +00:00
Niko Matsakis
98b046e16e
Various straight-forward ports that override visit_nested_items
...
to do "in-situ" visits.
2015-11-18 19:23:29 -05:00
Jeffrey Seyfried
6a6e1dba55
Refactor away get_module_if_available and get_module and reformat one-liners
2015-11-18 01:22:32 +00:00
Jeffrey Seyfried
572c2f3e07
Fix issue #21546 and refactor NsDef
2015-11-17 09:10:41 +00:00
Jeffrey Seyfried
8a6187fde1
Refactor fields def_id and kind of Module into a single field def.
...
Change build_reduced_graph.rs so the fields def and module of NsDef are never both Some unless the NsDef represents a duplicate definition (see issue 26421).
2015-11-16 07:59:50 +00:00
Jeffrey Seyfried
ceda8383c9
Replace TypeNsDef
and ValueNsDef
with a more general type NsDef
.
...
Define a newtype `NameBinding` for `Rc<RefCell<Option<NsDef>>>` and refactor `NameBindings` to be a `NameBinding` for each namespace.
Replace uses of `NameBindings` with `NameBinding` where only one binding is being used (in `NamespaceResult`, `Target,` etc).
Refactor away `resolve_definition_of_name_in_module` and `NameDefinition`.
2015-11-16 02:10:09 +00:00
corentih
889b0e9ace
rustfmt librustc_resolve
2015-11-14 16:21:30 +01:00
bors
a1e2a5538a
Auto merge of #26421 - nham:fix_21546, r=pnkfelix
...
Fixes #21546 .
2015-10-27 19:15:29 +00:00
Vadim Petrochenkov
e8ddbba2ed
syntax/rustc_front: Simplify VariantData::fields
...
And use VariantData instead of P<VariantData> in Item_ and Variant_
2015-10-25 18:33:51 +03:00
Nick Hamann
f0af1eb110
Warn when creating a module and a struct that both have the same name.
...
Currently it is possible to do the following:
- define a module named `Foo` and then a unit or tuple struct also named `Foo`
- define any struct named `Foo` and then a module named `Foo`
This commit introduces a warning for both of these cases.
2015-10-22 17:12:16 -05:00
Vadim Petrochenkov
46750d0409
Merge VariantData and VariantData_
2015-10-13 15:19:27 +03:00
Vadim Petrochenkov
40aa09e4c9
Merge struct fields and struct kind
2015-10-13 15:19:25 +03:00
Vadim Petrochenkov
30af54dede
Dict -> Struct, StructDef -> VariantData, def -> data
2015-10-13 15:19:24 +03:00
Vadim Petrochenkov
877c35e8a2
Remove now redundant NodeId from Variant
2015-10-13 15:19:18 +03:00
Vadim Petrochenkov
495566ee61
Decouple structure kinds from NodeIds
2015-10-13 15:19:17 +03:00
Vadim Petrochenkov
2314ab29c2
Unify structures and enum variants in HIR
2015-10-13 15:19:16 +03:00
Niko Matsakis
01f32ace03
Convert DefId to use DefIndex, which is an index into a list of
...
paths, and construct paths for all definitions. Also, stop rewriting
DefIds for closures, and instead just load the closure data from
the original def-id, which may be in another crate.
2015-10-01 10:43:07 -04:00
Niko Matsakis
cb784b70ba
Remove DefRegion, which is not used
2015-10-01 10:37:19 -04:00
Niko Matsakis
5600c6282e
move direct accesses of node
to go through as_local_node_id
, unless
...
they are being used as an opaque "position identifier"
2015-10-01 10:37:19 -04:00
Niko Matsakis
9ff4f57cd0
move job of creating local-def-ids to ast-map (with a few stragglers)
2015-10-01 10:28:28 -04:00
Vadim Petrochenkov
40ce80484c
Remove random Idents outside of libsyntax
2015-09-23 20:04:49 +03:00
Vadim Petrochenkov
2a779062d8
Use Names in the remaining HIR structures with exception of...
...
PathSegment, PatIdent, ExprWhile, ExprLoop, ExprBreak and ExprAgain - they need Idents for resolve
2015-09-22 19:58:29 +03:00
Vadim Petrochenkov
a636a83caa
Use Names in path fragments and MacroDef
2015-09-22 19:57:43 +03:00
Vadim Petrochenkov
a4af958786
Use Names in HIR Items
2015-09-22 19:53:52 +03:00
Nick Cameron
e9f1b06329
Use ast attributes every where (remove HIR attributes).
...
This could be a [breaking-change] if your lint or syntax extension (is that even possible?) uses HIR attributes or literals.
2015-09-16 10:57:06 +12:00
Nick Cameron
facdf2ebb1
Add an intital HIR and lowering step
2015-09-03 10:02:36 +12:00
Niko Matsakis
e91bef2e05
fallout from moving def-id
2015-08-24 05:35:34 -04:00
Alexis Beingessner
5bbaa3c9ac
fallout of reworking rc and arc APIs
2015-08-19 15:52:12 -07:00
Ariel Ben-Yehuda
1dd0c058cf
stop cross-crate associated types from being imported
...
Fixes #22968
Probably fixes #27602
2015-08-12 19:58:32 +03:00