Jeffrey Seyfried
6cd43f6ee9
Rename source
-> name
in finalize_import
.
2016-08-18 08:09:24 +00:00
Jeffrey Seyfried
11c38fdce0
Rename target_module
to module
or imported_module
.
2016-08-18 08:09:24 +00:00
Jeffrey Seyfried
5b969a2a58
Improve import failure detection.
2016-08-18 08:09:22 +00:00
Jeffrey Seyfried
fbc322975f
Refactor out finalize_import()
from resolve_import()
.
2016-08-18 03:31:10 +00:00
Jeffrey Seyfried
165b0b618c
Check privacy in resolve_name_in_module
.
2016-08-18 03:22:48 +00:00
Jeffrey Seyfried
e1c9efcba4
Refactor value_determined
-> value_result
, type_determined
-> type_result
.
2016-08-18 03:22:48 +00:00
Jeffrey Seyfried
7608bbdea8
Refactor resolve_module_path
to take an Option<Span>
instead of a Span
.
2016-08-18 03:22:47 +00:00
Jeffrey Seyfried
05afe15d1f
Refactor record_used: bool
-> record_used: Option<Span>
.
2016-08-18 03:22:47 +00:00
Jeffrey Seyfried
75c3fd89d4
Refactor away the field arenas
of ModuleS
.
2016-08-18 03:22:47 +00:00
Jeffrey Seyfried
bfc98f59a4
Refactor away module.resolve_name()
.
2016-08-18 03:22:47 +00:00
Jeffrey Seyfried
89de52eff0
Add field current_vis
to Resolver
.
2016-08-18 03:22:43 +00:00
Jeffrey Seyfried
c1362d8cc5
Clean up build_reduced_graph.rs
.
2016-08-18 03:13:43 +00:00
Jeffrey Seyfried
37154ca95d
Refactor unresolved_imports
-> indeterminate_imports
.
2016-08-18 03:13:42 +00:00
Jeffrey Seyfried
c64cd86be8
Add field parent
to ImportDirective
.
2016-08-18 03:13:41 +00:00
Jeffrey Seyfried
d107d22590
Refactor module.add_import_directive()
-> resolver.add_import_directive()
.
2016-08-18 03:13:39 +00:00
Eduard-Mihai Burtescu
d36b296cb6
Rollup merge of #35768 - GuillaumeGomez:err_codes, r=jonathandturner
...
Add new error code tests
r? @jonathandturner
2016-08-18 06:12:23 +03:00
Eduard-Mihai Burtescu
c3601d40ec
Rollup merge of #35756 - crypto-universe:E0407, r=GuillaumeGomez
...
New output for E0407
Issue #35697 as a part of #35233 .
r? @GuillaumeGomez
2016-08-18 06:12:23 +03:00
Eduard-Mihai Burtescu
71759ec52c
Rollup merge of #35739 - circuitfox:E0403-update-error-format, r=jonathandturner
...
E0403 update error format
Fixes #35696
Part of #35233
r? @jonathandturner
Also did the bonus for this one.
2016-08-18 06:12:21 +03:00
Guillaume Gomez
8d78237701
Add new error code tests
2016-08-17 23:45:10 +02:00
crypto-universe
2179defa04
New output for E0407
...
Issue #35697 as a part of #35233 .
r? @jonathandturner
2016-08-17 19:59:22 +02:00
Chris Stankus
6a1efbd08e
Merge branch 'master' into E0403-update-error-format
2016-08-17 12:31:20 -05:00
Jonathan Turner
fbc62afba6
Rollup merge of #35726 - mikhail-m1:master2, r=jonathandturner
...
update E0409 to new error format
fixes #35699 as part of #35233 .
r? @jonathandturner
2016-08-17 06:25:28 -07:00
Jonathan Turner
5fc58dcaff
Rollup merge of #35722 - knight42:update-error-msg, r=jonathandturner
...
Updated E0394 & E0422 to new format
Fixes #35692 and #35700 , as part of #35233 .
r? @jonathandturner
2016-08-17 06:25:27 -07:00
Jonathan Turner
02a8e2c285
Rollup merge of #35670 - RockyTV:e0365, r=jonathandturner
...
Update error E0365 to new format
Fixes #35633 as part of #35233 .
r? @jonathandturner
2016-08-17 06:25:25 -07:00
Eduard Burtescu
c1cfd58cbd
rustc: remove SelfSpace from ParamSpace.
2016-08-17 05:50:57 +03:00
Chris Stankus
f0ff2d32c8
E0403 update error format
2016-08-16 20:49:09 -05:00
Mikhail Modin
193b9ae86b
update to new error format E0409
2016-08-16 22:13:09 +03:00
Knight
d2e78956c3
Updated E0422 to new error message
2016-08-17 03:02:25 +08:00
Alexandre Oliveira
a026e2c727
Update error E0365 to new format
2016-08-14 16:33:25 -03:00
Eduard-Mihai Burtescu
812a8c1e33
Rollup merge of #35596 - crypto-universe:E0254_style_and_tests, r=jonathandturner
...
Add label to E0254
This issue #35513 is a part of #35233 .
r? @jonathandturner
2016-08-14 20:29:50 +03:00
Eduard-Mihai Burtescu
9c347b93a4
Rollup merge of #35558 - lukehinds:master, r=nikomatsakis
...
Update error message for E0253 #35512
Fixes #35512 . Part of #35233 .
2016-08-14 20:29:49 +03:00
bors
8787a12334
Auto merge of #35592 - jonathandturner:rollup, r=jonathandturner
...
Rollup of 23 pull requests
- Successful merges: #35279 , #35331 , #35358 , #35375 , #35445 , #35448 , #35482 , #35486 , #35505 , #35528 , #35530 , #35532 , #35536 , #35537 , #35541 , #35552 , #35554 , #35555 , #35557 , #35562 , #35565 , #35569 , #35576
- Failed merges: #35395 , #35415 , #35563
2016-08-11 13:14:28 -07:00
crypto-universe
4209f948b1
Add label to E0254
...
This issue #35513 is a part of #35233 .
r? @jonathandturner
2016-08-11 20:15:10 +02:00
Jonathan Turner
d3af9a38ed
Fix tidy warning
2016-08-11 10:17:12 -07:00
Jonathan Turner
294ac7b561
Rollup merge of #35536 - hank-der-hafenarbeiter:E0433, r=jonathandturner
...
Updated E0433 to new error message. (no bonus)
Part of #35345
r? @jonathandturner
2016-08-11 06:33:59 -07:00
petrochenkov
08f0f7c54a
Substitute private type aliases in rustdoc
2016-08-11 00:32:07 +03:00
Niko Matsakis
ae9c049cfc
remove field that need not be public
2016-08-09 20:28:46 -04:00
Luke Hinds
5c2c19aa89
Update error message for E0253 #35512
...
Fixes #35512 . Part of #35233 .
2016-08-09 22:34:23 +01:00
hank-der-hafenarbeiter
ee076dd937
Updated E0433 to new error message. (no bonus)
2016-08-09 00:26:43 +02:00
bors
f5e7a5910d
Auto merge of #35362 - medzin:E0252, r=GuillaumeGomez
...
Updated error message E0252
Fixes #35306 as part of #35233 .
r? @GuillaumeGomez
2016-08-07 05:48:47 -07:00
Eduard-Mihai Burtescu
c846c30584
Rollup merge of #35363 - GuillaumeGomez:err_codes, r=jonathandturner
...
Err codes
r? @jonathandturner
2016-08-06 15:01:21 +03:00
Adam Medziński
f4dd1f9500
Updated error message E0252
2016-08-06 13:31:03 +02:00
bors
7bf54f90d6
Auto merge of #35116 - jseyfried:groundwork_for_new_import_semantics, r=nrc
...
resolve: diagnostics improvement and groundwork for RFC 1560
Fixes #35115 , fixes #35135 , and lays groundwork for #32213 (cc #35120 ).
r? @nrc
2016-08-05 14:42:42 -07:00
Guillaume Gomez
7cd1779c31
Add new error code tests
2016-08-05 13:17:39 +02:00
Ryan Scott
19e140b946
Update E0404 to new format.
2016-08-05 17:36:43 +09:00
Guillaume Gomez
8787237651
Add E0254 error explanation
2016-08-05 00:23:42 +02:00
Jeffrey Seyfried
a18fc76049
Refactor directive.import(binding)
-> resolver.import(binding, directive)
.
2016-08-01 19:10:07 +00:00
Jeffrey Seyfried
0db8ca6ca2
nit: rename module_
-> module
2016-08-01 19:10:05 +00:00
Jeffrey Seyfried
6372a6d7c2
Improve diagnostics for pattern bindings that illegally shadow items.
...
Improve unused import detection.
2016-08-01 19:09:58 +00:00
Jeffrey Seyfried
07c706b57c
Clean up resolver.record_use()
.
2016-08-01 19:06:47 +00:00
Jeffrey Seyfried
b107a4e4f6
Refactor module.try_define_child(..)
-> resolver.try_define(module, ..)
.
2016-08-01 19:06:45 +00:00
Jeffrey Seyfried
096c3ed6c6
Refactor away resolution.try_define()
.
2016-08-01 19:06:44 +00:00
Jeffrey Seyfried
5868e78b09
Refactor away resolution.report_conflicts()
.
2016-08-01 19:06:43 +00:00
Jeffrey Seyfried
79e82b5c41
Implement Deref
for ImportResolver
to Resolver
.
2016-08-01 19:06:41 +00:00
Jeffrey Seyfried
d6b10beb88
Make "type aliases cannot be used for traits" a note instead of a span_label.
2016-07-31 21:29:01 +00:00
Jeffrey Seyfried
93fd214d61
Clean up resolve_trait_reference
.
2016-07-31 20:40:03 +00:00
Jeffrey Seyfried
46bd5d3fa0
Avoid emitting a unhelpful cascading resolution error.
2016-07-31 20:17:08 +00:00
Manish Goregaokar
8c6421fb17
Rollup merge of #35063 - jseyfried:avoid_importing_inaccessible_names, r=nrc
...
resolve: Exclude inaccessible names from single imports
If a single import resolves to an inaccessible name in some but not all namespaces, avoid importing the name in the inaccessible namespaces.
Currently, the inaccessible namespaces are imported but cause a privacy error when used.
r? @nrc
2016-07-30 13:44:46 +05:30
Jeffrey Seyfried
132bff9933
If a single import resolves to an inaccessible name in some but not all namespaces,
...
avoid importing the name in the inaccessible namespaces.
Currently, the inaccessible namespaces are imported but cause a privacy error when used.
2016-07-27 05:17:04 +00:00
Vadim Petrochenkov
d7a968eb1c
Fix ICE happening when unresolved imports are used in patterns
2016-07-21 21:19:16 +03:00
Jeffrey Seyfried
44575f708a
Rename mtwt
to hygiene
2016-07-17 17:12:35 +00:00
Jeffrey Seyfried
76ed445622
Clean up and encapsulate syntax::ext::mtwt
2016-07-17 17:12:32 +00:00
bors
4db1874f4c
Auto merge of #34570 - jseyfried:no_rename, r=nrc
...
Simplify the macro hygiene algorithm
This PR removes renaming from the hygiene algorithm and treats differently marked identifiers as unequal.
This change makes the scope of identifiers in `macro_rules!` items empty. That is, identifiers in `macro_rules!` definitions do not inherit any semantics from the `macro_rules!`'s scope.
Since `macro_rules!` macros are items, the scope of their identifiers "should" be the same as that of other items; in particular, the scope should contain only items. Since all items are unhygienic today, this would mean the scope should be empty.
However, the scope of an identifier in a `macro_rules!` statement today is the scope that the identifier would have if it replaced the `macro_rules!` (excluding anything unhygienic, i.e. locals only).
To continue to support this, this PR tracks the scope of each `macro_rules!` and uses it in `resolve` to ensure that an identifier expanded from a `macro_rules!` gets a chance to resolve to the locals in the `macro_rules!`'s scope.
This PR is a pure refactoring. After this PR,
- `syntax::ext::expand` is much simpler.
- We can expand macros in any order without causing problems for hygiene (needed for macro modularization).
- We can deprecate or remove today's `macro_rules!` scope easily.
- Expansion performance improves by 25%, post-expansion memory usage decreases by ~5%.
- Expanding a block is no longer quadratic in the number of `let` statements (fixes #10607 ).
r? @nrc
2016-07-15 08:48:41 -07:00
Jeffrey Seyfried
c83e31e7c9
Include the MacroDefinition
rib in the label ribs.
2016-07-15 05:16:21 +00:00
Jeffrey Seyfried
0701571fe7
Implement macro_rules!
placeholders and the macro scope map
2016-07-14 01:34:37 +00:00
Jeffrey Seyfried
a15dfca54f
Instead of renaming, treat differently marked identifiers as unequal
2016-07-14 01:34:31 +00:00
Jeffrey Seyfried
195a27faab
Move node id assigning into resolve
2016-07-14 01:30:19 +00:00
Michael Rosenberg
5a99d79857
Fixed issue where importing a trait method directly and then calling the method causes a compiler panic
2016-07-13 02:34:10 -04:00
petrochenkov
d27e55c5d8
Stabilize FnOnce::Output
+ Fix rebase
2016-07-08 13:35:17 +03:00
Vadim Petrochenkov
eb32440d45
Do not generate Def::Err in bindings
...
Instead of Def::Err erroneous bindings can get usual definitions that doesn't require special cases later on and have less chances to generate ICE.
2016-07-08 12:42:57 +03:00
Vadim Petrochenkov
d3c94b25cb
Don't generate Def::Err if it's not stored in def_map immediately
2016-07-08 12:36:45 +03:00
bors
b4e11c2af8
Auto merge of #34655 - jseyfried:improve_resolver_api, r=nrc
...
Add to `resolve`'s public API
This adds a public method `with_module_lexical_scope` to `Resolver` to allow users to resolve a path in the lexical scope of an arbitrary module.
r? @nrc
2016-07-06 23:18:23 -07:00
Steve Klabnik
26821a6f88
Rollup merge of #34636 - tshepang:shorten, r=GuillaumeGomez
...
doc: fix and shorten comment
2016-07-06 19:13:08 -04:00
Jeffrey Seyfried
58dd06d9e5
Add FIXME comment
2016-07-05 22:38:41 +00:00
Jeffrey Seyfried
6e0bd44fa3
Add method with_module_lexical_scope
to Resolver
.
2016-07-05 08:50:43 +00:00
Tshepang Lekhonkhobe
5efc780e14
doc: fix and shorten comment
2016-07-03 22:03:45 +02:00
Jeffrey Seyfried
d1e3d6272e
Add the after_expand
entry point between import resolution and the rest of name resolution
2016-07-01 00:07:32 +00:00
Manish Goregaokar
8e2598c3d2
Rollup merge of #34542 - jseyfried:fix_recursive_modules, r=nrc
...
Fix non-termination on recursive module re-exports in extern crates
Fixes #33776 .
r? @nrc
2016-06-29 21:21:24 +05:30
Manish Goregaokar
2a0c2c3b3a
Rollup merge of #34467 - GuillaumeGomez:err-codes, r=brson
...
Add new error codes and improve some explanations
r? @brson
cc @steveklabnik
cc @jonathandturner
2016-06-29 21:21:22 +05:30
Jeffrey Seyfried
232783c914
Fix infinite loop on recursive module exports in an extern crate
2016-06-28 23:03:56 +00:00
Jeffrey Seyfried
e58963d3e4
groundwork: create the Resolver
earlier in phase 2
2016-06-28 05:28:27 +00:00
Jeffrey Seyfried
ec0c150152
groundwork: refactor the interface that resolve
exposes to driver
2016-06-28 05:28:26 +00:00
Jeffrey Seyfried
4a13bcb4fb
groundwork: use resolve_identifier
instead of resolve_path
to classify ident patterns
2016-06-28 05:28:23 +00:00
Jeffrey Seyfried
8748cd92d0
Rollup merge of #34316 - jseyfried:refactor_ast_stmt, r=eddyb
...
Refactor away `ast::Decl`, refactor `ast::Stmt`, and rename `ast::ExprKind::Again` to `ast::ExprKind::Continue`.
2016-06-26 02:17:27 +00:00
Jeffrey Seyfried
33ea1e330c
Rollup merge of #33943 - jseyfried:libsyntax_cleanup, r=nrc
...
Miscellaneous low priority cleanup in `libsyntax`.
2016-06-26 02:15:04 +00:00
Guillaume Gomez
58955dee66
Add new error codes and improve some explanations
2016-06-26 02:26:42 +02:00
Jeffrey Seyfried
d3ae56d755
Rollup merge of #34403 - jonathandturner:move_liberror, r=alexcrichton
...
This PR refactors the 'errors' part of libsyntax into its own crate (librustc_errors). This is the first part of a few refactorings to simplify error reporting and potentially support more output formats (like a standardized JSON output and possibly an --explain mode that can work with the user's code), though this PR stands on its own and doesn't assume further changes.
As part of separating out the errors crate, I have also refactored the code position portion of codemap into its own crate (libsyntax_pos). While it's helpful to have the common code positions in a separate crate for the new errors crate, this may also enable further simplifications in the future.
2016-06-25 22:35:09 +00:00
Jeffrey Seyfried
4e2e31c118
Rollup merge of #34368 - petrochenkov:astqpath, r=Manishearth
...
The AST part of https://github.com/rust-lang/rust/pull/34365
plugin-[breaking-change] cc https://github.com/rust-lang/rust/issues/31645
2016-06-25 22:35:06 +00:00
Jeffrey Seyfried
f0310e061b
Rollup merge of #34213 - josephDunne:trait_item_macros, r=jseyfried
...
**syntax-[breaking-change]** cc #31645
New `TraitItemKind::Macro` variant
This change adds support for macro expansion inside trait items by adding the new `TraitItemKind::Macro` and associated parsing code.
2016-06-25 22:35:01 +00:00
Jonathan Turner
6ae3502134
Move errors from libsyntax to its own crate
2016-06-23 08:07:35 -04:00
Liigo Zhuang
2d7bac7d86
Improve diagnostics E0425: use
(public) items
...
E0425: unresolved name
2016-06-23 12:51:10 +08:00
Vadim Petrochenkov
f903c97959
Merge PatKind::QPath into PatKind::Path in AST
2016-06-20 23:39:02 +03:00
Guillaume Gomez
8637b4b034
Remove unused functions calls and unused E0406
2016-06-18 17:02:41 +02:00
Jeffrey Seyfried
f0b21c2d1e
Rename ast::ExprKind::Again
-> ast::ExprKind::Continue
2016-06-17 05:21:25 +00:00
Jeffrey Seyfried
962d5c16b5
Fix fallout
2016-06-17 05:21:23 +00:00
Jeffrey Seyfried
0644aba0b3
Remove the type parameter from syntax::visit::Visitor
2016-06-14 07:40:32 +00:00
Joseph Dunne
dc3d878e0f
Add support for macro expansion inside trait items
2016-06-13 21:46:43 +01:00
Vadim Petrochenkov
6d7b35bd98
Address review comments + fix rebase
2016-06-10 01:06:37 +03:00
Vadim Petrochenkov
ee4e55398b
Introduce TyCtxt::expect_def/expect_resolution helpers and use them where possible
2016-06-10 01:03:54 +03:00
Vadim Petrochenkov
4c30f6405c
Move the hack with fake partial resolution for <A>::B from typeck to resolve
2016-06-10 01:03:54 +03:00