| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2019-09-17 | Rollup merge of #64486 - matthewjasper:hygiene-debugging, r=petrochenkov | Tyler Mandry | -0/+32 | |
| Print out more information for `-Zunpretty=expanded,hygiene` I've found this helpful when trying to understand how hygiene works. Closes #16420 | ||||
| 2019-09-17 | Print syntax contexts and marks when printing hygiene information | Matthew Jasper | -0/+32 | |
| 2019-09-15 | resolve: Tweak "cannot find" wording for attributes | Vadim Petrochenkov | -0/+7 | |
| 2019-09-05 | Add `with_{def_site,call_site,legacy}_ctxt,` methods to `Span` | Vadim Petrochenkov | -1/+1 | |
| Use these to create call-site spans for AST passes when needed. | ||||
| 2019-09-05 | Allow ast passes to create hygienic spans | Matthew Jasper | -1/+1 | |
| 2019-09-05 | Add an ExpnKind for AST passes | Matthew Jasper | -1/+23 | |
| 2019-08-23 | Remove default macro transparencies | Vadim Petrochenkov | -5/+1 | |
| All transparancies are passed explicitly now. Also remove `#[rustc_macro_transparency]` annotations from built-in macros, they are no longer used. `#[rustc_macro_transparency]` only makes sense for declarative macros now. | ||||
| 2019-08-23 | hygiene: Require passing transparency explicitly to `apply_mark` | Vadim Petrochenkov | -30/+16 | |
| 2019-08-23 | incremental: Do not rely on default transparency when decoding syntax contexts | Vadim Petrochenkov | -9/+17 | |
| Using `ExpnId`s default transparency here instead of the mark's real transparency was actually incorrect. | ||||
| 2019-08-23 | resolve: Do not rely on default transparency when detecting proc macro derives | Vadim Petrochenkov | -12/+0 | |
| 2019-08-17 | Remove unused `SyntaxContext` serialization impls | Matthew Jasper | -4/+0 | |
| The implementations were wrong and unused. | ||||
| 2019-08-17 | Stop emulating cross-crate hygiene with gensyms | Matthew Jasper | -10/+2 | |
| Most `Ident`s are serialized as `InternedString`s the exceptions are: * Reexports * Attributes * Idents in macro definitions Using gensyms helped reexports emulate hygiene. However, the actual item wouldn't have a gensymmed name so would be usable cross-crate. So removing this case until we have proper cross-crate hygiene seems sensible. Codegen attributes (`inline`, `export_name`) are resolved by their `Symbol`. This meant that opaque macro-expanded codegen attributes could cause linker errors. This prevented making built-in derives hygienic. | ||||
| 2019-08-15 | hygiene: `ExpnInfo` -> `ExpnData` | Vadim Petrochenkov | -45/+45 | |
| For naming consistency with everything else in this area | ||||
| 2019-08-15 | hygiene: Merge a tiny bit of the "share expansion definition data" PR | Vadim Petrochenkov | -1/+3 | |
| 2019-08-15 | hygiene: Merge `ExpnInfo` and `InternalExpnData` | Vadim Petrochenkov | -37/+33 | |
| 2019-08-15 | hygiene: Remove `Option`s from functions returning `ExpnInfo` | Vadim Petrochenkov | -36/+22 | |
| The expansion info is not optional and should always exist | ||||
| 2019-08-15 | syntax_pos: `NO_EXPANSION`/`SyntaxContext::empty()` -> `SyntaxContext::root()` | Vadim Petrochenkov | -6/+6 | |
| For consistency with `ExpnId::root`. Also introduce a helper `Span::with_root_ctxt` for creating spans with `SyntaxContext::root()` context | ||||
| 2019-08-15 | syntax_pos: Introduce a helper for checking whether a span comes from expansion | Vadim Petrochenkov | -1/+1 | |
| 2019-08-02 | Replace "existential" by "opaque" | varkor | -3/+3 | |
| 2019-07-27 | Remove run-pass test suites | Vadim Petrochenkov | -1/+1 | |
| 2019-07-23 | cleanup: Remove `extern crate serialize as rustc_serialize`s | Vadim Petrochenkov | -1/+1 | |
| 2019-07-19 | hygiene: Tweak naming some more | Vadim Petrochenkov | -48/+49 | |
| 2019-07-19 | Adjust other names after the `Mark` renaming | Vadim Petrochenkov | -103/+107 | |
| 2019-07-19 | libsyntax: Remove `Mark` into `ExpnId` | Vadim Petrochenkov | -50/+50 | |
| 2019-07-11 | hygiene: Make sure each `Mark` has an associated expansion info | Vadim Petrochenkov | -3/+17 | |
| The root expansion was missing one. Expansions created for "derive containers" (see one of the next commits for the description) also didn't get expansion info. | ||||
| 2019-07-11 | hygiene: Fix wording of desugaring descriptions | Vadim Petrochenkov | -8/+9 | |
| Use variant names rather than descriptions for identifying desugarings in `#[rustc_on_unimplemented]`. Both are highly unstable, but variant name is at least a single identifier. | ||||
| 2019-07-11 | hygiene: Introduce a helper method for creating new expansions | Vadim Petrochenkov | -35/+24 | |
| Creating a fresh expansion and immediately generating a span from it is the most common scenario. Also avoid allocating `allow_internal_unstable` lists for derive markers repeatedly. And rename `ExpnInfo::with_unstable` to `ExpnInfo::allow_unstable`, seems to be a better fitting name. | ||||
| 2019-07-11 | expand: Do not overwrite existing `ExpnInfo` when injecting derive markers | Vadim Petrochenkov | -1/+5 | |
| Create a fresh expansion for them instead - this is the usual way to allow unstable features for generated/desugared code. Fixes https://github.com/rust-lang/rust/issues/52363 | ||||
| 2019-07-11 | hygiene: Reuse `MacroKind` in `ExpnKind` | Vadim Petrochenkov | -18/+16 | |
| Orthogonality and reuse are good. | ||||
| 2019-07-11 | hygiene: Remove some unused impls | Vadim Petrochenkov | -7/+7 | |
| 2019-07-11 | syntax: Make def-site span mandatory in ↵ | Vadim Petrochenkov | -6/+4 | |
| ExpnInfo/MacroBacktrace/DiagnosticSpanMacroExpansion We have to deal with dummy spans anyway Remove def-site span from expander interfaces. It's not used by the expansion infra, only by specific expanders, which can keep it themselves if they want it. | ||||
| 2019-07-11 | hygiene: Remove some dead code | Vadim Petrochenkov | -27/+1 | |
| 2019-07-11 | Rename some things in `syntax_pos/hygiene` | Vadim Petrochenkov | -22/+22 | |
| More consistent with other naming: ExpnFormat -> ExpnKind ExpnKind::name -> ExpnKind::descr DesugaringKind::name -> DesugaringKind::descr Shorter, no tautology: CompilerDesugaring -> Desugaring CompilerDesugaringKind -> DesugaringKind | ||||
| 2019-07-11 | Move `MacroKind` into `libsyntax_pos` | Vadim Petrochenkov | -0/+28 | |
| So it can be eventually used in `ExpnInfo` | ||||
| 2019-07-09 | Resolve `$crate` in all hygienic contexts for pretty-pringing | Vadim Petrochenkov | -12/+18 | |
| Stop visiting AST to discover those contexts, just iterate through hygiene data instead | ||||
| 2019-07-06 | Enforce 'cond: bool' in while-expr + improve reachability diags. | Mazdak Farrokhzad | -2/+3 | |
| 2019-06-18 | hygiene: Avoid some unnecessary `ExpnInfo` clones | Vadim Petrochenkov | -5/+5 | |
| 2019-06-18 | syntax: Move `default_transparency` into `ExpnInfo` | Vadim Petrochenkov | -25/+17 | |
| 2019-06-18 | syntax: Introduce `default`/`with_unstable` constructors for `ExpnInfo` | Vadim Petrochenkov | -0/+23 | |
| 2019-06-05 | Addressed points raised in review. | Alexander Regueiro | -2/+2 | |
| 2019-06-05 | Add `modernize_and_adjust` methods. | Nicholas Nethercote | -0/+8 | |
| These combine two `HygieneData::with` calls into one. | ||||
| 2019-06-05 | Add a useful comment about this file. | Nicholas Nethercote | -0/+20 | |
| 2019-06-05 | Add `walk_chain`. | Nicholas Nethercote | -0/+15 | |
| This combines multiple `HygieneData::with` calls on a hot path. | ||||
| 2019-06-05 | Add `SyntaxContext::hygienic_eq`. | Nicholas Nethercote | -0/+8 | |
| This combines multiple `HygieneData::with` calls into one, by combining parts of `hygienic_eq` and `adjust_ident`. | ||||
| 2019-06-05 | Add and use `SyntaxContext::outer_and_expn_info`. | Nicholas Nethercote | -0/+10 | |
| This combines two `HygieneData::with` calls into one on a hot path. | ||||
| 2019-06-05 | Optimize `glob_adjust` and `reverse_glob_adjust`. | Nicholas Nethercote | -23/+27 | |
| They can each now do a single `HygieneData::with` call by replacing the `SyntaxContext` and `Mark` methods with the equivalent methods from `HygieneData`. | ||||
| 2019-06-05 | Add `HygieneData::apply_mark`. | Nicholas Nethercote | -4/+6 | |
| This combines two `HygieneData::with` calls into one. | ||||
| 2019-06-05 | Add `HygieneData::apply_mark_with_transparency`. | Nicholas Nethercote | -35/+35 | |
| Also remove `HygieneData::apply_mark_internal`, which is no longer needed. | ||||
| 2019-06-05 | Add `HygieneData::apply_mark_internal`. | Nicholas Nethercote | -55/+58 | |
| 2019-06-05 | Add `HygieneData::marks`. | Nicholas Nethercote | -13/+15 | |
