Isaac van Bakel
400075d9d9
Fixed all unnecessary muts in language core
2017-08-01 23:01:24 +01:00
Esteban Küber
552ff07758
Point at path segment on module not found
...
Point at the correct path segment on a import statement where a module
doesn't exist.
New output:
```rust
error[E0432]: unresolved import `std::bar`
--> <anon>:1:10
|
1 | use std::bar::{foo1, foo2};
| ^^^ Could not find `bar` in `std`
```
instead of:
```rust
error[E0432]: unresolved import `std::bar::foo1`
--> <anon>:1:16
|
1 | use std::bar::{foo1, foo2};
| ^^^^ Could not find `bar` in `std`
error[E0432]: unresolved import `std::bar::foo2`
--> <anon>:1:22
|
1 | use std::bar::{foo1, foo2};
| ^^^^ Could not find `bar` in `std`
```
2017-07-25 21:25:43 -07:00
Vadim Petrochenkov
bdffb9722d
Move public reexports of private extern crates into a separate lint
...
This is going to be a hard error while all private-in-public errors from rustc_privacy will be reclassified into lints.
2017-07-08 01:56:27 +03:00
Tommy Ip
b89db83e6c
Only emit one error for use foo::self;
...
Currently `use foo::self;` would emit both E0429 and E0432. This
commit silence the latter one (assuming `foo` is a valid module).
Fixes #42559
2017-06-10 13:03:11 +01:00
Vadim Petrochenkov
d73a0fef38
Turn public reexporting of private extern crates into a lint again
2017-05-30 22:00:30 +03:00
Vadim Petrochenkov
caecb76f08
Turn sufficiently old compatibility lints into hard errors
2017-05-30 22:00:30 +03:00
Jeffrey Seyfried
3eb235b45e
Improve intercrate hygiene.
2017-05-25 05:52:11 +00:00
Jeffrey Seyfried
1f175fa35d
Hygienize librustc_resolve
.
2017-05-25 05:51:50 +00:00
Jeffrey Seyfried
2a1d2edb82
Declarative macros 2.0 without hygiene.
2017-05-25 05:51:06 +00:00
Oliver Schneider
a54bbf2cb3
Weave the span of an import through the resolve code
2017-05-12 11:21:11 +02:00
Oliver Schneider
dd87eabd83
Remove need for &format!(...) or &&"" dances in span_label
calls
2017-05-08 12:56:15 +02:00
Jeffrey Seyfried
64e9af47f4
Allow declarative macros 2.0 and use
macro imports to shadow builtin macros.
2017-03-24 21:05:52 +00:00
Jeffrey Seyfried
678e882ce2
Check for conflicts between macros 1.0 exports (#[macro_export]
, #[macro_reexport]
)
...
and macros 2.0 exports (`pub use` macro re-exports and `pub macro` (once implemented)
at the crate root.
2017-03-21 16:23:18 -04:00
Son
823e185a40
Suggest only if resolution was previously resolved
2017-02-02 22:05:49 +11:00
Jeffrey Seyfried
356fa2c5db
Warn on unused #[macro_use]
imports.
2017-01-22 01:31:00 +00:00
Jeffrey Seyfried
2efec3c180
Improve unused_extern_crate
warnings.
2017-01-21 07:40:19 +00:00
Jeffrey Seyfried
d86e487b0b
Start warning cycle.
2017-01-10 05:54:24 +00:00
Jeffrey Seyfried
235a7a743c
Change self
in an import list use foo::{self, ...}
to only import a module or enum foo
.
2017-01-10 05:54:22 +00:00
Jeffrey Seyfried
927408d9c5
Fix regression with duplicate #[macro_export] macro_rules!
.
2017-01-04 08:03:23 +00:00
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