about summary refs log tree commit diff
path: root/src/test/ui/hygiene
AgeCommit message (Collapse)AuthorLines
2019-07-29Add another test for const parameter (non) hygiene.Matthew Jasper-0/+38
2019-07-28Resolve const parameters with modern hygieneMatthew Jasper-14/+110
Declarations were already modernized, resulting in cases where a macro couldn't resolve it's own identifier.
2019-07-28Disallow duplicate lifetime parameters with legacy hygieneMatthew Jasper-0/+46
They were resolved with modern hygiene, making this just a strange way to shadow lifetimes.
2019-07-19Auto merge of #62684 - petrochenkov:scopevisit, r=davidtwcobors-10/+8
resolve: Improve candidate search for unresolved macro suggestions Use same scope visiting machinery for both collecting suggestion candidates and actually resolving the names. The PR is better read in per-commit fashion with whitespace changes ignored (the first commit in particular moves some code around). This should be the last pre-requisite for https://github.com/rust-lang/rust/pull/62086. r? @davidtwco
2019-07-18Rollup merge of #62764 - ↵Mark Rousskov-1/+1
fakenine:normalize_use_of_backticks_compiler_messages_p7, r=alexreg normalize use of backticks in compiler messages for librustc/lint https://github.com/rust-lang/rust/issues/60532
2019-07-18resolve: Attempt to resolve unresolved paths in macro namespaceVadim Petrochenkov-7/+8
2019-07-18resolve: Visit all scopes to collect suggestion candidates for unresolved macrosVadim Petrochenkov-3/+0
2019-07-17normalize use of backticks in compiler messages for librustc/lintSamy Kacimi-1/+1
https://github.com/rust-lang/rust/issues/60532
2019-07-16Make pretty-expanded-hygiene a `ui` testMatthew Jasper-0/+35
`normalize-stdout-test` removes the need for Make, and it can be updated with `--bless` this way
2019-07-16Change all run-pass hygiene tests to `ui` testsMatthew Jasper-7/+1177
Change some tests to `check-pass` that are only testing name resolution.
2019-07-11Add a regression test for #44692Vadim Petrochenkov-0/+65
Add a test for the issue resolved by removing `resolve_macro_path` Add a test making sure that extern prelude entries introduced from an opaque macro are not visible anywhere, even it that macro Fix test output after rebase
2019-07-11resolve: Fix access to extern and stdlib prelude from opaque macrosVadim Petrochenkov-0/+40
Ok, it's hard to explain what happens, but identifier's hygienic contexts need to be "adjusted" to modules/scopes before they are resolved in them. To be resolved in all kinds on preludes the identifier needs to be adjusted to the root expansion (aka "no expansion"). Previously this was done for the `macro m() { ::my_crate::foo }` case, but forgotten for all other cases.
2019-07-06`#[rustc_transparent_macro]` -> `#[rustc_macro_transparency = ...]`Vadim Petrochenkov-4/+56
2019-07-03Migrate compile-pass annotations to build-passYuki Okushi-3/+3
2019-06-16compiletest: Remove `skip-codegen`Vadim Petrochenkov-3/+2
2019-06-12Hygienize macros in the standard libraryVadim Petrochenkov-4/+4
2019-04-25Rollup merge of #59697 - euclio:label-fixes, r=zackmdavisMazdak Farrokhzad-4/+4
tweak unresolved label suggestion Only suggest label names in the same hygiene context, and use a structured suggestion. Question for reviewer: Is this the right way to check for label hygiene?
2019-04-22update tests for migrate mode by defaultMatthew Jasper-67/+14
2019-04-18hide `--explain` hint if error has no extended infoAndy Russell-2/+2
2019-04-04tweak unresolved label suggestionAndy Russell-4/+4
Only suggest label names in the same hygiene context, and use a structured suggestion.
2019-03-11Update NLL testsVadim Petrochenkov-6/+6
2019-03-11Update testsVadim Petrochenkov-37/+37
2019-02-28Fix errors in test/uiTaiki Endo-2/+11
2018-12-25Remove licensesMark Rousskov-321/+41
2018-11-18resolve: Avoid sentence breaks in diagnosticsVadim Petrochenkov-2/+2
2018-11-11Rollup merge of #55630 - petrochenkov:noprelude, r=Centrilkennytm-1/+25
resolve: Filter away macro prelude in modules with `#[no_implicit_prelude]` on 2018 edition This is a tiny thing. For historical reasons macro prelude (macros from `#[macro_use] extern crate ...`, including `extern crate std`) is still available in modules with `#[no_implicit_prelude]`. This PR provides proper isolation and removes those names from scope. `#[no_implicit_prelude]` modules still have built-in types (`u8`), built-in attributes (`#[inline]`) and built-in macros (`env!("PATH")`) in scope. We can introduce some `#[no_implicit_prelude_at_all]` to remove those as well, but that's a separate issue. The change is done only on 2018 edition for backward compatibility. I'm pretty sure this can be done on 2015 as well because `#[no_implicit_prelude]` is rarely used, but I don't want to go through the crater/deprecation process right now, maybe later. cc https://github.com/rust-lang/rust/issues/53977 r? @ghost
2018-11-07Removed `#[rustc_error]` from tests that are all `// compile-pass`.Felix S. Klock II-12/+4
I also added `// skip-codegen` to each one, to address potential concerns that this change would otherwise slow down our test suite spending time generating code for files that are really just meant to be checks of compiler diagnostics. (However, I will say: My preference is to not use `// skip-codegen` if one can avoid it. We can use all the testing of how we drive LLVM that we can get...) (Updated post rebase.)
2018-11-03resolve: Filter away macro prelude in modules with `#[no_implicit_prelude]` ↵Vadim Petrochenkov-1/+25
on 2018 edition
2018-10-28resolve: More precise spans for privacy errorsVadim Petrochenkov-2/+2
2018-10-03Clearer later use messages for callsMatthew Jasper-1/+1
Give a special message when the later use is from a call. Use the span of the callee instead of the whole expression. For conflicting borrow messages say that the later use is of the first borrow.
2018-09-22Stabilize crate_in_paths, extern_absolute_paths and extern_prelude on all ↵Eduard-Mihai Burtescu-0/+8
editions.
2018-08-31cleanup: Add main functions to some UI testsVadim Petrochenkov-13/+8
2018-08-30Make move out computation lazySantiago Pastorino-8/+0
2018-08-24Add a test for reset expansion infoVadim Petrochenkov-0/+29
2018-08-17Stabilize `use_extern_macros`Vadim Petrochenkov-32/+0
2018-08-14Merged migrated compile-fail tests and ui tests. Fixes #46841.David Wood-0/+112
2018-07-31Update the `.nll.stderr` files under new sorted-by-span scheme.Felix S. Klock II-9/+9
2018-07-23Match errors using the callsite of macro expansionsFederico Poli-7/+5
2018-07-08Remove fallback to parent modules from lexical resolutionVadim Petrochenkov-16/+148
2018-06-30Restore the old behavior of `$crate` in nested `macro_rules`Vadim Petrochenkov-4/+46
`$crate` is not resolved at def-site of a macro, but rather at "transitive def-site"
2018-06-30hygiene: Implement transparent marksVadim Petrochenkov-0/+138
2018-06-27Implement `#[macro_export(local_inner_macros)]`Vadim Petrochenkov-0/+91
2018-05-27Use suggestion for assoc fn called like methodEsteban Küber-2/+2
When encountering an unexisting method for a given trait where an associated function has the same name, suggest using the appropriate syntax, instead of using `help` text. When only one candidate is found, do not call it "candidate #1", just call it "the candidate".
2018-05-25rust-lang/rust#51025: improve test robustness so that they work under NLL too.Felix S. Klock II-12/+18
2018-04-27Don't feature gate bang macros on 'proc_macro_path_invoc'.Sergio Benitez-7/+7
2018-04-20rustc: Tweak custom attribute capabilitiesAlex Crichton-7/+7
This commit starts to lay some groundwork for the stabilization of custom attribute invocations and general procedural macros. It applies a number of changes discussed on [internals] as well as a [recent issue][issue], namely: * The path used to specify a custom attribute must be of length one and cannot be a global path. This'll help future-proof us against any ambiguities and give us more time to settle the precise syntax. In the meantime though a bare identifier can be used and imported to invoke a custom attribute macro. A new feature gate, `proc_macro_path_invoc`, was added to gate multi-segment paths and absolute paths. * The set of items which can be annotated by a custom procedural attribute has been restricted. Statements, expressions, and modules are disallowed behind two new feature gates: `proc_macro_expr` and `proc_macro_mod`. * The input to procedural macro attributes has been restricted and adjusted. Today an invocation like `#[foo(bar)]` will receive `(bar)` as the input token stream, but after this PR it will only receive `bar` (the delimiters were removed). Invocations like `#[foo]` are still allowed and will be invoked in the same way as `#[foo()]`. This is a **breaking change** for all nightly users as the syntax coming in to procedural macros will be tweaked slightly. * Procedural macros (`foo!()` style) can only be expanded to item-like items by default. A separate feature gate, `proc_macro_non_items`, is required to expand to items like expressions, statements, etc. Closes #50038 [internals]: https://internals.rust-lang.org/t/help-stabilize-a-subset-of-macros-2-0/7252 [issue]: https://github.com/rust-lang/rust/issues/50038
2018-04-18Update the previously checkpointed (but unused by bors) tests to reflect ↵Felix S. Klock II-2/+61
current reality.
2018-04-12Add some new tests + Fix failing testsVadim Petrochenkov-0/+157
2018-04-12Move hygiene tests to UIVadim Petrochenkov-0/+665