diff options
| author | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2018-06-30 19:53:46 +0300 |
|---|---|---|
| committer | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2018-07-08 16:17:37 +0300 |
| commit | 94ef9f57f5fa985beb7588e5cb4c73f1b5f2dcba (patch) | |
| tree | 6fd06514639327df46c5a78a93f2a01008e3d6d5 /src/libsyntax/ext | |
| parent | 01b6d7cc6f1b1513b717bdc1bbc48f7407d4964c (diff) | |
| download | rust-94ef9f57f5fa985beb7588e5cb4c73f1b5f2dcba.tar.gz rust-94ef9f57f5fa985beb7588e5cb4c73f1b5f2dcba.zip | |
hygiene: Decouple transparencies from expansion IDs
Diffstat (limited to 'src/libsyntax/ext')
| -rw-r--r-- | src/libsyntax/ext/base.rs | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/src/libsyntax/ext/base.rs b/src/libsyntax/ext/base.rs index e2424de4d14..2e9c7d6f96c 100644 --- a/src/libsyntax/ext/base.rs +++ b/src/libsyntax/ext/base.rs @@ -17,7 +17,7 @@ use syntax_pos::{Span, MultiSpan, DUMMY_SP}; use edition::Edition; use errors::{DiagnosticBuilder, DiagnosticId}; use ext::expand::{self, AstFragment, Invocation}; -use ext::hygiene::{self, Mark, SyntaxContext}; +use ext::hygiene::{self, Mark, SyntaxContext, Transparency}; use fold::{self, Folder}; use parse::{self, parser, DirectoryOwnership}; use parse::token; @@ -673,20 +673,14 @@ impl SyntaxExtension { } } - pub fn is_modern(&self) -> bool { + pub fn default_transparency(&self) -> Transparency { match *self { - SyntaxExtension::DeclMacro { .. } | SyntaxExtension::ProcMacro { .. } | SyntaxExtension::AttrProcMacro(..) | - SyntaxExtension::ProcMacroDerive(..) => true, - _ => false, - } - } - - pub fn is_transparent(&self) -> bool { - match *self { - SyntaxExtension::DeclMacro { is_transparent, .. } => is_transparent, - _ => false, + SyntaxExtension::ProcMacroDerive(..) | + SyntaxExtension::DeclMacro { is_transparent: false, .. } => Transparency::Opaque, + SyntaxExtension::DeclMacro { is_transparent: true, .. } => Transparency::Transparent, + _ => Transparency::SemiTransparent, } } |
