Vadim Petrochenkov
09aba18e10
More systematic error reporting in path resolution
2016-12-26 15:01:49 +03:00
bors
44ad63e487
Auto merge of #38490 - jseyfried:def_id_vis, r=nrc
...
Use `DefId`s instead of `NodeId`s for `pub(restricted)` visibilities
This is groundwork for hygiene 2.0, specifically privacy checking hygienic intercrate name resolutions.
r? @nrc
2016-12-25 21:32:37 +00:00
bors
c74ac6cb97
Auto merge of #38566 - jseyfried:fix_import_resolution_bug, r=eddyb
...
Fix bug in import resolution
Fixes #38535 and fixes #38556 .
r? @nrc
2016-12-25 13:14:12 +00:00
Jeffrey Seyfried
41f1e189ee
Use DefId
s instead of NodeId
s for pub(restricted)
visibilities.
2016-12-24 00:23:03 +00:00
Jeffrey Seyfried
31d9cc3833
Fix import resolution bug and fold all idents in the AST.
2016-12-23 02:16:31 +00:00
Jeffrey Seyfried
f10f50b426
Refactor how global paths are represented (for both ast and hir).
2016-12-22 06:14:35 +00:00
Alex Crichton
0cf7d5dcae
Merge branch 'rfc_1560_warning_cycle' of https://github.com/jseyfried/rust into rollup
...
Conflicts:
src/librustc_resolve/lib.rs
src/librustc_resolve/resolve_imports.rs
2016-12-20 13:00:16 -08:00
Jeffrey Seyfried
aa19274b72
De-genericize try_define
.
2016-12-18 23:26:26 +00:00
Jeffrey Seyfried
59de7f8f04
Add ident.unhygienize()
and use Ident
more instead of Name
in resolve
.
2016-12-18 23:26:22 +00:00
Jeffrey Seyfried
b35c306b65
Fix the path resolutions of glob imports.
2016-12-18 23:23:23 +00:00
Aaron Turon
9a5cef4de5
Address fallout
2016-12-16 19:42:17 -08:00
Jeffrey Seyfried
cfabce2230
Demote most backwards incompatible ambiguity errors from RFC 1560 to warnings.
2016-12-15 06:02:49 +00:00
Jeffrey Seyfried
ed9a09d40c
Support paths in macro invocations.
2016-11-30 22:54:40 +00:00
Jeffrey Seyfried
e9e178a581
Refactor away ResolveResult
.
2016-11-29 00:18:39 +00:00
Jeffrey Seyfried
af2d89c7f6
Refactor path resoloution.
2016-11-29 00:18:34 +00:00
Jeffrey Seyfried
1fd9041b82
Avoid loading needless proc-macro dependencies.
2016-11-28 03:37:02 +00:00
Jeffrey Seyfried
bf41c85c24
Cleanup.
2016-11-21 09:21:48 +00:00
Jeffrey Seyfried
9c88650080
Add feature use_extern_macros
.
2016-11-17 08:08:06 +00:00
Jeffrey Seyfried
b25c063caa
Refactor out PerNS
.
2016-11-17 08:07:47 +00:00
Jeffrey Seyfried
1bbf7a43d3
Add field expansion: Mark
to NameBinding
.
2016-11-17 08:07:46 +00:00
Jeffrey Seyfried
641274f907
Resolve imports during expansion.
2016-11-17 08:07:44 +00:00
Jeffrey Seyfried
907120637e
Add field module.unresolved_invocations
.
2016-11-17 08:07:41 +00:00
Jeffrey Seyfried
872943c317
Improve macro reexports.
2016-11-10 10:04:24 +00:00
Jeffrey Seyfried
b0e13dc5ba
Treat extern crate
s more like imports (pure refactoring).
2016-11-10 06:04:40 +00:00
Jeffrey Seyfried
7b81106a85
Use Ident
s instead of Name
s in ImportDirective
's paths.
2016-10-19 09:58:12 +00:00
Alex Crichton
20991829e2
Rollup merge of #37084 - jseyfried:cleanup_expanded_macro_use_scopes, r=nrc
...
macros: clean up scopes of expanded `#[macro_use]` imports
This PR changes the scope of macro-expanded `#[macro_use]` imports to match that of unexpanded `#[macro_use]` imports. For example, this would be allowed:
```rust
example!();
macro_rules! m { () => { #[macro_use(example)] extern crate example_crate; } }
m!();
```
This PR also enforces the full shadowing restrictions from RFC 1560 on `#[macro_use]` imports (currently, we only enforce the weakened restrictions from #36767 ).
This is a [breaking-change], but I believe it is highly unlikely to cause breakage in practice.
r? @nrc
2016-10-12 14:07:56 -07:00
Jeffrey Seyfried
31e0e12e69
Add support for undetermined macro invocations.
2016-10-11 03:41:48 +00:00
Jeffrey Seyfried
dd19bf0843
Support importing inaccessible extern crate
s with a warning again.
2016-10-07 07:39:00 +00:00
Vadim Petrochenkov
d19c16acfb
Fix cross-crate resolution of half-items created by export shadowing
2016-10-04 22:20:37 +03:00
Jeffrey Seyfried
dd47815478
Avoid re-export errors in the generated test harness.
2016-09-27 20:23:59 +00:00
Jeffrey Seyfried
9a0e88a339
Refactor away ParentLink
.
2016-09-22 07:13:54 +00:00
athulappadan
49e77dbf25
Documentation of what does for each type
2016-09-11 17:00:09 +05:30
bors
f707582a43
Auto merge of #36289 - euclio:self-suggestion, r=jseyfried
...
resolve: Suggest `use self` when import resolves
Improves errors messages by replacing "Maybe a missing `extern crate`" messages
with "Did you mean `self::...`" when the `self` import would succeed.
Fixes #34191 .
Thank you for the help @jseyfried!
2016-09-07 05:59:50 -07:00
Jeffrey Seyfried
888a968139
Add field used: Cell<bool>
to variant NameBindingKind::Import
.
2016-09-06 03:43:46 +00:00
Andy Russell
288e7caf19
show self
suggestion when items are in the block
2016-09-05 23:08:21 -04:00
Andy Russell
41ee2e9124
resolve: Suggest use self
when import resolves
...
Improves errors messages by replacing "Maybe a missing `extern crate`" messages
with "Did you mean `self::...`" when the `self` import would succeed.
2016-09-05 21:48:02 -04:00
Jeffrey Seyfried
90ce504c1c
Address comments.
2016-09-02 00:35:16 +00:00
Jeffrey Seyfried
4f5616e3c4
Avoid cascading name resolution errors caused by an ambiguous module.
2016-09-01 22:30:29 +00:00
Jeffrey Seyfried
681a14f29b
item_like_imports: Allow unused ambiguous glob imports.
2016-09-01 22:30:27 +00:00
Jeffrey Seyfried
f582fa327e
item_like_imports: Allow multiple glob imports of the same item.
2016-09-01 22:30:26 +00:00
Jeffrey Seyfried
245a0c5530
item_like_imports: Make all visible items glob importable.
2016-09-01 22:30:26 +00:00
Jeffrey Seyfried
097b6d62fc
item_like_imports: Allow glob imports with a given visibility
...
to reexport some (but not all) names with less visibility.
2016-09-01 22:30:25 +00:00
Jeffrey Seyfried
c56a5afd4d
item_like_imports: Allow single imports with a given visibility
...
to reexport some (but not all) namespaces with less visibility.
2016-09-01 22:30:24 +00:00
Jeffrey Seyfried
aad1f3cbf3
item_like_imports: Allow glob imports to be shadowed by items and single imports.
2016-09-01 22:30:24 +00:00
Jeffrey Seyfried
efc0bea687
item_like_imports: Treat private imports like private items.
2016-09-01 22:30:21 +00:00
Jeffrey Seyfried
513e955a18
Add field dummy_binding
to Resolver
.
2016-09-01 22:29:30 +00:00
Jeffrey Seyfried
95528d1a98
Refactor away resolver.current_vis
and add module.normal_ancestor_id
.
2016-09-01 22:29:29 +00:00
Jeffrey Seyfried
87ae68c1d6
Refactor binding.def()
to return a Def
instead of an Option<Def>
.
2016-09-01 22:29:27 +00:00
Jeffrey Seyfried
691d10c3c9
Rename new_binding
-> binding
.
2016-09-01 22:29:27 +00:00
Jeffrey Seyfried
5dc1196191
Refactor away binding.is_pseudo_public()
.
2016-09-01 22:29:26 +00:00