mirror of
https://github.com/rust-lang/rust.git
synced 2025-01-26 06:35:27 +00:00
rustc, rustc_passes: don't depend on syntax_expand.
This is done by moving some data definitions to syntax::expand.
This commit is contained in:
parent
16329402bf
commit
fb12c70852
@ -3135,7 +3135,6 @@ dependencies = [
|
||||
"serialize",
|
||||
"smallvec",
|
||||
"syntax",
|
||||
"syntax_expand",
|
||||
"syntax_pos",
|
||||
]
|
||||
|
||||
@ -3451,7 +3450,6 @@ dependencies = [
|
||||
"rustc_target",
|
||||
"serialize",
|
||||
"syntax",
|
||||
"syntax_expand",
|
||||
"syntax_pos",
|
||||
"tempfile",
|
||||
]
|
||||
@ -3707,7 +3705,6 @@ dependencies = [
|
||||
"rustc_index",
|
||||
"rustc_target",
|
||||
"syntax",
|
||||
"syntax_expand",
|
||||
"syntax_pos",
|
||||
]
|
||||
|
||||
|
@ -29,7 +29,6 @@ rustc_index = { path = "../librustc_index" }
|
||||
errors = { path = "../librustc_errors", package = "rustc_errors" }
|
||||
rustc_serialize = { path = "../libserialize", package = "serialize" }
|
||||
syntax = { path = "../libsyntax" }
|
||||
syntax_expand = { path = "../libsyntax_expand" }
|
||||
syntax_pos = { path = "../libsyntax_pos" }
|
||||
backtrace = "0.3.3"
|
||||
parking_lot = "0.9"
|
||||
|
@ -6,8 +6,8 @@ use crate::ty;
|
||||
use crate::util::nodemap::DefIdMap;
|
||||
|
||||
use syntax::ast;
|
||||
use syntax_expand::base::MacroKind;
|
||||
use syntax::ast::NodeId;
|
||||
use syntax_pos::hygiene::MacroKind;
|
||||
use syntax_pos::Span;
|
||||
use rustc_macros::HashStable;
|
||||
|
||||
|
@ -64,7 +64,7 @@ use syntax::ast;
|
||||
use syntax::ptr::P as AstP;
|
||||
use syntax::ast::*;
|
||||
use syntax::errors;
|
||||
use syntax_expand::base::SpecialDerives;
|
||||
use syntax::expand::SpecialDerives;
|
||||
use syntax::print::pprust;
|
||||
use syntax::parse::token::{self, Nonterminal, Token};
|
||||
use syntax::tokenstream::{TokenStream, TokenTree};
|
||||
|
@ -18,7 +18,7 @@ use smallvec::SmallVec;
|
||||
use syntax::attr;
|
||||
use syntax::ast::*;
|
||||
use syntax::visit::{self, Visitor};
|
||||
use syntax_expand::base::SpecialDerives;
|
||||
use syntax::expand::SpecialDerives;
|
||||
use syntax::source_map::{respan, DesugaringKind, Spanned};
|
||||
use syntax::symbol::{kw, sym};
|
||||
use syntax_pos::Span;
|
||||
|
@ -2,10 +2,10 @@ use crate::hir::map::definitions::*;
|
||||
use crate::hir::def_id::DefIndex;
|
||||
|
||||
use syntax::ast::*;
|
||||
use syntax_expand::hygiene::ExpnId;
|
||||
use syntax::visit;
|
||||
use syntax::symbol::{kw, sym};
|
||||
use syntax::parse::token::{self, Token};
|
||||
use syntax_pos::hygiene::ExpnId;
|
||||
use syntax_pos::Span;
|
||||
|
||||
/// Creates `DefId`s for nodes in the AST.
|
||||
|
@ -17,8 +17,8 @@ use std::borrow::Borrow;
|
||||
use std::fmt::Write;
|
||||
use std::hash::Hash;
|
||||
use syntax::ast;
|
||||
use syntax_expand::hygiene::ExpnId;
|
||||
use syntax::symbol::{Symbol, sym};
|
||||
use syntax_pos::symbol::{Symbol, sym};
|
||||
use syntax_pos::hygiene::ExpnId;
|
||||
use syntax_pos::{Span, DUMMY_SP};
|
||||
|
||||
/// The `DefPathTable` maps `DefIndex`es to `DefKey`s and vice versa.
|
||||
|
@ -20,7 +20,7 @@ use rustc_data_structures::svh::Svh;
|
||||
use rustc_index::vec::IndexVec;
|
||||
use syntax::ast::{self, Name, NodeId};
|
||||
use syntax::source_map::Spanned;
|
||||
use syntax_expand::base::MacroKind;
|
||||
use syntax_pos::hygiene::MacroKind;
|
||||
use syntax_pos::{Span, DUMMY_SP};
|
||||
|
||||
pub mod blocks;
|
||||
|
@ -13,11 +13,10 @@ use std::cell::RefCell;
|
||||
|
||||
use syntax::ast;
|
||||
use syntax::source_map::SourceMap;
|
||||
use syntax_expand::hygiene::SyntaxContext;
|
||||
use syntax::symbol::Symbol;
|
||||
use syntax::tokenstream::DelimSpan;
|
||||
use syntax_pos::{Span, DUMMY_SP};
|
||||
use syntax_pos::hygiene;
|
||||
use syntax_pos::hygiene::{self, SyntaxContext};
|
||||
|
||||
use rustc_data_structures::stable_hasher::{
|
||||
HashStable, StableHasher, ToStableHashKey,
|
||||
|
@ -60,7 +60,7 @@ impl_stable_hash_for!(enum ::syntax::ast::AsmDialect {
|
||||
Intel
|
||||
});
|
||||
|
||||
impl_stable_hash_for!(enum ::syntax_expand::base::MacroKind {
|
||||
impl_stable_hash_for!(enum ::syntax_pos::hygiene::MacroKind {
|
||||
Bang,
|
||||
Attr,
|
||||
Derive,
|
||||
|
@ -39,8 +39,8 @@ use syntax::ast;
|
||||
use syntax::source_map::{MultiSpan, ExpnKind, DesugaringKind};
|
||||
use syntax::early_buffered_lints::BufferedEarlyLintId;
|
||||
use syntax::edition::Edition;
|
||||
use syntax_expand::base::MacroKind;
|
||||
use syntax::symbol::{Symbol, sym};
|
||||
use syntax_pos::hygiene::MacroKind;
|
||||
use syntax_pos::Span;
|
||||
|
||||
pub use crate::lint::context::{LateContext, EarlyContext, LintContext, LintStore,
|
||||
|
@ -24,7 +24,7 @@ use errors::emitter::HumanReadableErrorType;
|
||||
use errors::annotate_snippet_emitter_writer::{AnnotateSnippetEmitterWriter};
|
||||
use syntax::ast::{self, NodeId};
|
||||
use syntax::edition::Edition;
|
||||
use syntax_expand::allocator::AllocatorKind;
|
||||
use syntax::expand::allocator::AllocatorKind;
|
||||
use syntax::feature_gate::{self, AttributeType};
|
||||
use syntax::json::JsonEmitter;
|
||||
use syntax::source_map;
|
||||
|
@ -46,8 +46,8 @@ use std::{mem, ptr};
|
||||
use std::ops::Range;
|
||||
use syntax::ast::{self, Name, Ident, NodeId};
|
||||
use syntax::attr;
|
||||
use syntax_expand::hygiene::ExpnId;
|
||||
use syntax::symbol::{kw, sym, Symbol};
|
||||
use syntax_pos::symbol::{kw, sym, Symbol};
|
||||
use syntax_pos::hygiene::ExpnId;
|
||||
use syntax_pos::Span;
|
||||
|
||||
use smallvec;
|
||||
|
@ -3,7 +3,7 @@ use std::ffi::CString;
|
||||
use crate::attributes;
|
||||
use libc::c_uint;
|
||||
use rustc::ty::TyCtxt;
|
||||
use syntax_expand::allocator::{AllocatorKind, AllocatorTy, ALLOCATOR_METHODS};
|
||||
use syntax::expand::allocator::{AllocatorKind, AllocatorTy, ALLOCATOR_METHODS};
|
||||
|
||||
use crate::ModuleLlvm;
|
||||
use crate::llvm::{self, False, True};
|
||||
|
@ -39,7 +39,6 @@ extern crate rustc_driver as _;
|
||||
|
||||
#[macro_use] extern crate log;
|
||||
extern crate syntax;
|
||||
extern crate syntax_expand;
|
||||
extern crate syntax_pos;
|
||||
extern crate rustc_errors as errors;
|
||||
|
||||
@ -49,7 +48,7 @@ use rustc_codegen_ssa::back::lto::{SerializedModule, LtoModuleCodegen, ThinModul
|
||||
use rustc_codegen_ssa::CompiledModule;
|
||||
use errors::{FatalError, Handler};
|
||||
use rustc::dep_graph::WorkProduct;
|
||||
use syntax_expand::allocator::AllocatorKind;
|
||||
use syntax::expand::allocator::AllocatorKind;
|
||||
pub use llvm_util::target_features;
|
||||
use std::any::Any;
|
||||
use std::sync::Arc;
|
||||
|
@ -21,7 +21,6 @@ tempfile = "3.1"
|
||||
|
||||
rustc_serialize = { path = "../libserialize", package = "serialize" }
|
||||
syntax = { path = "../libsyntax" }
|
||||
syntax_expand = { path = "../libsyntax_expand" }
|
||||
syntax_pos = { path = "../libsyntax_pos" }
|
||||
rustc = { path = "../librustc" }
|
||||
rustc_apfloat = { path = "../librustc_apfloat" }
|
||||
|
@ -14,7 +14,7 @@ use rustc::ty::query::Providers;
|
||||
use rustc::ty::subst::SubstsRef;
|
||||
use rustc::util::nodemap::{FxHashMap, DefIdMap};
|
||||
use rustc_index::vec::IndexVec;
|
||||
use syntax_expand::allocator::ALLOCATOR_METHODS;
|
||||
use syntax::expand::allocator::ALLOCATOR_METHODS;
|
||||
|
||||
pub type ExportedSymbols = FxHashMap<
|
||||
CrateNum,
|
||||
|
@ -27,7 +27,7 @@ use rustc_errors::{Handler, Level, FatalError, DiagnosticId, SourceMapperDyn};
|
||||
use rustc_errors::emitter::{Emitter};
|
||||
use rustc_target::spec::MergeFunctions;
|
||||
use syntax::attr;
|
||||
use syntax_expand::hygiene::ExpnId;
|
||||
use syntax_pos::hygiene::ExpnId;
|
||||
use syntax_pos::symbol::{Symbol, sym};
|
||||
use jobserver::{Client, Acquired};
|
||||
|
||||
|
@ -9,7 +9,7 @@ use rustc::ty::TyCtxt;
|
||||
use rustc_codegen_utils::codegen_backend::CodegenBackend;
|
||||
use std::sync::Arc;
|
||||
use std::sync::mpsc;
|
||||
use syntax_expand::allocator::AllocatorKind;
|
||||
use syntax::expand::allocator::AllocatorKind;
|
||||
use syntax_pos::symbol::Symbol;
|
||||
|
||||
pub trait BackendTypes {
|
||||
|
@ -502,7 +502,7 @@ pub fn lower_to_hir(
|
||||
|
||||
// Discard hygiene data, which isn't required after lowering to HIR.
|
||||
if !sess.opts.debugging_opts.keep_hygiene_data {
|
||||
syntax_expand::hygiene::clear_syntax_context_map();
|
||||
syntax_pos::hygiene::clear_syntax_context_map();
|
||||
}
|
||||
|
||||
Ok(hir_forest)
|
||||
|
@ -25,7 +25,7 @@ use std::{cmp, fs};
|
||||
|
||||
use syntax::ast;
|
||||
use syntax::attr;
|
||||
use syntax_expand::allocator::{global_allocator_spans, AllocatorKind};
|
||||
use syntax::expand::allocator::{global_allocator_spans, AllocatorKind};
|
||||
use syntax::symbol::{Symbol, sym};
|
||||
use syntax::span_fatal;
|
||||
use syntax_pos::{Span, DUMMY_SP};
|
||||
|
@ -33,12 +33,12 @@ use rustc_serialize::{Decodable, Decoder, Encodable, SpecializedDecoder, opaque}
|
||||
use syntax::attr;
|
||||
use syntax::ast::{self, Ident};
|
||||
use syntax::source_map::{self, respan, Spanned};
|
||||
use syntax::symbol::{Symbol, sym};
|
||||
use syntax_expand::base::{MacroKind, SyntaxExtensionKind, SyntaxExtension};
|
||||
use syntax_pos::{self, Span, BytePos, Pos, DUMMY_SP};
|
||||
use syntax_expand::base::{SyntaxExtensionKind, SyntaxExtension};
|
||||
use syntax_expand::proc_macro::{AttrProcMacro, ProcMacroDerive, BangProcMacro};
|
||||
use syntax_pos::{self, Span, BytePos, Pos, DUMMY_SP, hygiene::MacroKind};
|
||||
use syntax_pos::symbol::{Symbol, sym};
|
||||
use log::debug;
|
||||
use proc_macro::bridge::client::ProcMacro;
|
||||
use syntax_expand::proc_macro::{AttrProcMacro, ProcMacroDerive, BangProcMacro};
|
||||
|
||||
crate struct DecodeContext<'a, 'tcx> {
|
||||
opaque: opaque::Decoder<'a>,
|
||||
|
@ -32,7 +32,7 @@ use std::path::Path;
|
||||
use std::u32;
|
||||
use syntax::ast;
|
||||
use syntax::attr;
|
||||
use syntax_expand::proc_macro::is_proc_macro_attr;
|
||||
use syntax::expand::is_proc_macro_attr;
|
||||
use syntax::source_map::Spanned;
|
||||
use syntax::symbol::{kw, sym, Ident, Symbol};
|
||||
use syntax_pos::{self, FileName, SourceFile, Span};
|
||||
|
@ -13,7 +13,6 @@ log = "0.4"
|
||||
rustc = { path = "../librustc" }
|
||||
rustc_data_structures = { path = "../librustc_data_structures" }
|
||||
syntax = { path = "../libsyntax" }
|
||||
syntax_expand = { path = "../libsyntax_expand" }
|
||||
syntax_pos = { path = "../libsyntax_pos" }
|
||||
errors = { path = "../librustc_errors", package = "rustc_errors" }
|
||||
rustc_target = { path = "../librustc_target" }
|
||||
|
@ -14,7 +14,7 @@ use rustc::session::Session;
|
||||
use rustc_data_structures::fx::FxHashMap;
|
||||
use syntax::ast::*;
|
||||
use syntax::attr;
|
||||
use syntax_expand::proc_macro::is_proc_macro_attr;
|
||||
use syntax::expand::is_proc_macro_attr;
|
||||
use syntax::feature_gate::is_builtin_attr;
|
||||
use syntax::source_map::Spanned;
|
||||
use syntax::symbol::{kw, sym};
|
||||
|
@ -32,9 +32,6 @@ use syntax::attr;
|
||||
|
||||
use syntax::ast::{self, Block, ForeignItem, ForeignItemKind, Item, ItemKind, NodeId};
|
||||
use syntax::ast::{MetaItemKind, StmtKind, TraitItem, TraitItemKind};
|
||||
use syntax_expand::base::{MacroKind, SyntaxExtension};
|
||||
use syntax_expand::expand::AstFragment;
|
||||
use syntax_expand::hygiene::ExpnId;
|
||||
use syntax::feature_gate::is_builtin_attr;
|
||||
use syntax::parse::token::{self, Token};
|
||||
use syntax::print::pprust;
|
||||
@ -42,7 +39,9 @@ use syntax::{span_err, struct_span_err};
|
||||
use syntax::source_map::{respan, Spanned};
|
||||
use syntax::symbol::{kw, sym};
|
||||
use syntax::visit::{self, Visitor};
|
||||
|
||||
use syntax_expand::base::SyntaxExtension;
|
||||
use syntax_expand::expand::AstFragment;
|
||||
use syntax_pos::hygiene::{MacroKind, ExpnId};
|
||||
use syntax_pos::{Span, DUMMY_SP};
|
||||
|
||||
use log::debug;
|
||||
|
@ -10,12 +10,12 @@ use rustc::session::Session;
|
||||
use rustc::ty::{self, DefIdTree};
|
||||
use rustc::util::nodemap::FxHashSet;
|
||||
use syntax::ast::{self, Ident, Path};
|
||||
use syntax_expand::base::MacroKind;
|
||||
use syntax::feature_gate::BUILTIN_ATTRIBUTES;
|
||||
use syntax::source_map::SourceMap;
|
||||
use syntax::struct_span_err;
|
||||
use syntax::symbol::{Symbol, kw};
|
||||
use syntax::util::lev_distance::find_best_match_for_name;
|
||||
use syntax_pos::hygiene::MacroKind;
|
||||
use syntax_pos::{BytePos, Span, MultiSpan};
|
||||
|
||||
use crate::resolve_imports::{ImportDirective, ImportDirectiveSubclass, ImportResolver};
|
||||
|
@ -13,9 +13,9 @@ use rustc::hir::PrimTy;
|
||||
use rustc::session::config::nightly_options;
|
||||
use rustc::util::nodemap::FxHashSet;
|
||||
use syntax::ast::{self, Expr, ExprKind, Ident, NodeId, Path, Ty, TyKind};
|
||||
use syntax_expand::base::MacroKind;
|
||||
use syntax::symbol::kw;
|
||||
use syntax::util::lev_distance::find_best_match_for_name;
|
||||
use syntax_pos::hygiene::MacroKind;
|
||||
use syntax_pos::Span;
|
||||
|
||||
type Res = def::Res<ast::NodeId>;
|
||||
|
@ -35,17 +35,18 @@ use rustc::span_bug;
|
||||
use rustc_metadata::creader::CrateLoader;
|
||||
use rustc_metadata::cstore::CStore;
|
||||
|
||||
use syntax_expand::hygiene::{ExpnId, Transparency, SyntaxContext};
|
||||
use syntax_expand::base::{SyntaxExtension, MacroKind, SpecialDerives};
|
||||
use syntax::{struct_span_err, unwrap_or};
|
||||
use syntax::attr;
|
||||
use syntax::expand::SpecialDerives;
|
||||
use syntax::ast::{self, Name, NodeId, Ident, FloatTy, IntTy, UintTy};
|
||||
use syntax::ast::{ItemKind, Path, CRATE_NODE_ID, Crate};
|
||||
use syntax::ast::{CRATE_NODE_ID, Crate};
|
||||
use syntax::ast::{ItemKind, Path};
|
||||
use syntax::attr;
|
||||
use syntax::print::pprust;
|
||||
use syntax::symbol::{kw, sym};
|
||||
use syntax::source_map::Spanned;
|
||||
use syntax::visit::{self, Visitor};
|
||||
|
||||
use syntax_expand::base::SyntaxExtension;
|
||||
use syntax_pos::hygiene::{MacroKind, ExpnId, Transparency, SyntaxContext};
|
||||
use syntax_pos::{Span, DUMMY_SP};
|
||||
use errors::{Applicability, DiagnosticBuilder};
|
||||
|
||||
|
@ -14,20 +14,21 @@ use rustc::{ty, lint, span_bug};
|
||||
use syntax::ast::{self, NodeId, Ident};
|
||||
use syntax::attr::StabilityLevel;
|
||||
use syntax::edition::Edition;
|
||||
use syntax_expand::base::{self, InvocationRes, Indeterminate, SpecialDerives};
|
||||
use syntax_expand::base::{MacroKind, SyntaxExtension};
|
||||
use syntax_expand::expand::{AstFragment, AstFragmentKind, Invocation, InvocationKind};
|
||||
use syntax_expand::hygiene::{self, ExpnId, ExpnData, ExpnKind};
|
||||
use syntax_expand::compile_declarative_macro;
|
||||
use syntax::expand::SpecialDerives;
|
||||
use syntax::feature_gate::{emit_feature_err, is_builtin_attr_name};
|
||||
use syntax::feature_gate::GateIssue;
|
||||
use syntax::print::pprust;
|
||||
use syntax::symbol::{Symbol, kw, sym};
|
||||
use syntax_expand::base::{self, InvocationRes, Indeterminate};
|
||||
use syntax_expand::base::SyntaxExtension;
|
||||
use syntax_expand::expand::{AstFragment, AstFragmentKind, Invocation, InvocationKind};
|
||||
use syntax_expand::compile_declarative_macro;
|
||||
use syntax_pos::hygiene::{self, ExpnId, ExpnData, ExpnKind};
|
||||
use syntax_pos::{Span, DUMMY_SP};
|
||||
|
||||
use std::{mem, ptr};
|
||||
use rustc_data_structures::sync::Lrc;
|
||||
use syntax_pos::hygiene::AstPass;
|
||||
use syntax_pos::hygiene::{MacroKind, AstPass};
|
||||
|
||||
type Res = def::Res<NodeId>;
|
||||
|
||||
|
@ -28,10 +28,10 @@ use rustc::util::nodemap::FxHashSet;
|
||||
use rustc::{bug, span_bug};
|
||||
|
||||
use syntax::ast::{Ident, Name, NodeId, CRATE_NODE_ID};
|
||||
use syntax_expand::hygiene::ExpnId;
|
||||
use syntax::symbol::kw;
|
||||
use syntax::util::lev_distance::find_best_match_for_name;
|
||||
use syntax::{struct_span_err, unwrap_or};
|
||||
use syntax_pos::hygiene::ExpnId;
|
||||
use syntax_pos::{MultiSpan, Span};
|
||||
|
||||
use log::*;
|
||||
|
@ -3,8 +3,8 @@
|
||||
use std::iter::once;
|
||||
|
||||
use syntax::ast;
|
||||
use syntax_expand::base::MacroKind;
|
||||
use syntax::symbol::sym;
|
||||
use syntax_pos::hygiene::MacroKind;
|
||||
use syntax_pos::Span;
|
||||
|
||||
use rustc::hir;
|
||||
|
@ -28,10 +28,10 @@ use rustc::ty::layout::VariantIdx;
|
||||
use rustc::util::nodemap::{FxHashMap, FxHashSet};
|
||||
use syntax::ast::{self, Attribute, AttrStyle, AttrItem, Ident};
|
||||
use syntax::attr;
|
||||
use syntax_expand::base::MacroKind;
|
||||
use syntax::parse::lexer::comments;
|
||||
use syntax::source_map::DUMMY_SP;
|
||||
use syntax::symbol::{Symbol, kw, sym};
|
||||
use syntax_pos::symbol::{Symbol, kw, sym};
|
||||
use syntax_pos::hygiene::MacroKind;
|
||||
use syntax_pos::{self, Pos, FileName};
|
||||
|
||||
use std::collections::hash_map::Entry;
|
||||
|
@ -4,7 +4,7 @@ pub use self::StructType::*;
|
||||
|
||||
use syntax::ast;
|
||||
use syntax::ast::Name;
|
||||
use syntax_expand::base::MacroKind;
|
||||
use syntax_pos::hygiene::MacroKind;
|
||||
use syntax_pos::{self, Span};
|
||||
|
||||
use rustc::hir;
|
||||
|
@ -1,7 +1,7 @@
|
||||
//! Item types.
|
||||
|
||||
use std::fmt;
|
||||
use syntax_expand::base::MacroKind;
|
||||
use syntax_pos::hygiene::MacroKind;
|
||||
use crate::clean;
|
||||
|
||||
/// Item type. Corresponds to `clean::ItemEnum` variants.
|
||||
|
@ -49,7 +49,7 @@ use syntax::feature_gate::UnstableFeatures;
|
||||
use syntax::print::pprust;
|
||||
use syntax::source_map::FileName;
|
||||
use syntax::symbol::{Symbol, sym};
|
||||
use syntax_expand::base::MacroKind;
|
||||
use syntax_pos::hygiene::MacroKind;
|
||||
use rustc::hir::def_id::DefId;
|
||||
use rustc::middle::privacy::AccessLevels;
|
||||
use rustc::middle::stability;
|
||||
|
@ -8,9 +8,9 @@ use rustc::middle::privacy::AccessLevel;
|
||||
use rustc::util::nodemap::{FxHashSet, FxHashMap};
|
||||
use rustc::ty::TyCtxt;
|
||||
use syntax::ast;
|
||||
use syntax_expand::base::MacroKind;
|
||||
use syntax::source_map::Spanned;
|
||||
use syntax::symbol::sym;
|
||||
use syntax_pos::hygiene::MacroKind;
|
||||
use syntax_pos::{self, Span};
|
||||
|
||||
use std::mem;
|
||||
|
@ -1,5 +1,5 @@
|
||||
use syntax::{ast, attr, visit};
|
||||
use syntax::symbol::{sym, Symbol};
|
||||
use crate::{ast, attr, visit};
|
||||
use syntax_pos::symbol::{sym, Symbol};
|
||||
use syntax_pos::Span;
|
||||
|
||||
#[derive(Clone, Copy)]
|
21
src/libsyntax/expand/mod.rs
Normal file
21
src/libsyntax/expand/mod.rs
Normal file
@ -0,0 +1,21 @@
|
||||
//! Definitions shared by macros / syntax extensions and e.g. librustc.
|
||||
|
||||
use crate::ast::Attribute;
|
||||
use syntax_pos::symbol::sym;
|
||||
|
||||
pub mod allocator;
|
||||
|
||||
bitflags::bitflags! {
|
||||
/// Built-in derives that need some extra tracking beyond the usual macro functionality.
|
||||
#[derive(Default)]
|
||||
pub struct SpecialDerives: u8 {
|
||||
const PARTIAL_EQ = 1 << 0;
|
||||
const EQ = 1 << 1;
|
||||
const COPY = 1 << 2;
|
||||
}
|
||||
}
|
||||
|
||||
pub fn is_proc_macro_attr(attr: &Attribute) -> bool {
|
||||
[sym::proc_macro, sym::proc_macro_attribute, sym::proc_macro_derive]
|
||||
.iter().any(|kind| attr.check_name(*kind))
|
||||
}
|
@ -95,6 +95,7 @@ pub mod json;
|
||||
|
||||
pub mod ast;
|
||||
pub mod attr;
|
||||
pub mod expand;
|
||||
pub mod source_map;
|
||||
#[macro_use] pub mod config;
|
||||
pub mod entry;
|
||||
|
@ -1,5 +1,4 @@
|
||||
use crate::expand::{self, AstFragment, Invocation};
|
||||
use crate::hygiene::ExpnId;
|
||||
|
||||
use syntax::ast::{self, NodeId, Attribute, Name, PatKind};
|
||||
use syntax::attr::{self, HasAttrs, Stability, Deprecation};
|
||||
@ -14,11 +13,12 @@ use syntax::symbol::{kw, sym, Ident, Symbol};
|
||||
use syntax::{ThinVec, MACRO_ARGUMENTS};
|
||||
use syntax::tokenstream::{self, TokenStream};
|
||||
use syntax::visit::Visitor;
|
||||
crate use syntax::expand::SpecialDerives;
|
||||
|
||||
use errors::{DiagnosticBuilder, DiagnosticId};
|
||||
use smallvec::{smallvec, SmallVec};
|
||||
use syntax_pos::{FileName, Span, MultiSpan, DUMMY_SP};
|
||||
use syntax_pos::hygiene::{AstPass, ExpnData, ExpnKind};
|
||||
use syntax_pos::hygiene::{AstPass, ExpnId, ExpnData, ExpnKind};
|
||||
|
||||
use rustc_data_structures::fx::FxHashMap;
|
||||
use rustc_data_structures::sync::{self, Lrc};
|
||||
@ -27,7 +27,7 @@ use std::path::PathBuf;
|
||||
use std::rc::Rc;
|
||||
use std::default::Default;
|
||||
|
||||
pub use syntax_pos::hygiene::MacroKind;
|
||||
crate use syntax_pos::hygiene::MacroKind;
|
||||
|
||||
#[derive(Debug,Clone)]
|
||||
pub enum Annotatable {
|
||||
@ -837,16 +837,6 @@ pub enum InvocationRes {
|
||||
/// Error type that denotes indeterminacy.
|
||||
pub struct Indeterminate;
|
||||
|
||||
bitflags::bitflags! {
|
||||
/// Built-in derives that need some extra tracking beyond the usual macro functionality.
|
||||
#[derive(Default)]
|
||||
pub struct SpecialDerives: u8 {
|
||||
const PARTIAL_EQ = 1 << 0;
|
||||
const EQ = 1 << 1;
|
||||
const COPY = 1 << 2;
|
||||
}
|
||||
}
|
||||
|
||||
pub trait Resolver {
|
||||
fn next_node_id(&mut self) -> NodeId;
|
||||
|
||||
|
@ -28,9 +28,8 @@ macro_rules! panictry {
|
||||
mod placeholders;
|
||||
mod proc_macro_server;
|
||||
|
||||
pub use syntax_pos::hygiene;
|
||||
crate use syntax_pos::hygiene;
|
||||
pub use mbe::macro_rules::compile_declarative_macro;
|
||||
pub mod allocator;
|
||||
pub mod base;
|
||||
pub mod build;
|
||||
pub mod expand;
|
||||
|
@ -178,11 +178,6 @@ impl<'a> Visitor<'a> for MarkAttrs<'a> {
|
||||
fn visit_mac(&mut self, _mac: &Mac) {}
|
||||
}
|
||||
|
||||
pub fn is_proc_macro_attr(attr: &Attribute) -> bool {
|
||||
[sym::proc_macro, sym::proc_macro_attribute, sym::proc_macro_derive]
|
||||
.iter().any(|kind| attr.check_name(*kind))
|
||||
}
|
||||
|
||||
crate fn collect_derives(cx: &mut ExtCtxt<'_>, attrs: &mut Vec<ast::Attribute>) -> Vec<ast::Path> {
|
||||
let mut result = Vec::new();
|
||||
attrs.retain(|attr| {
|
||||
|
@ -3,7 +3,8 @@ use crate::deriving::generic::*;
|
||||
use crate::deriving::generic::ty::*;
|
||||
|
||||
use syntax::ast::{self, Expr, GenericArg, Generics, ItemKind, MetaItem, VariantData};
|
||||
use syntax_expand::base::{Annotatable, ExtCtxt, SpecialDerives};
|
||||
use syntax::expand::SpecialDerives;
|
||||
use syntax_expand::base::{Annotatable, ExtCtxt};
|
||||
use syntax::ptr::P;
|
||||
use syntax::symbol::{kw, sym, Symbol};
|
||||
use syntax_pos::Span;
|
||||
|
@ -3,9 +3,10 @@ use crate::deriving::generic::*;
|
||||
use crate::deriving::generic::ty::*;
|
||||
|
||||
use syntax::ast::{self, Ident, Expr, MetaItem, GenericArg};
|
||||
use syntax_expand::base::{Annotatable, ExtCtxt, SpecialDerives};
|
||||
use syntax::expand::SpecialDerives;
|
||||
use syntax::ptr::P;
|
||||
use syntax::symbol::{sym, Symbol};
|
||||
use syntax_expand::base::{Annotatable, ExtCtxt};
|
||||
use syntax_pos::Span;
|
||||
|
||||
pub fn expand_deriving_eq(cx: &mut ExtCtxt<'_>,
|
||||
|
@ -3,10 +3,11 @@ use crate::deriving::generic::*;
|
||||
use crate::deriving::generic::ty::*;
|
||||
|
||||
use syntax::ast::{BinOpKind, Expr, MetaItem};
|
||||
use syntax_expand::base::{Annotatable, ExtCtxt, SpecialDerives};
|
||||
use syntax::expand::SpecialDerives;
|
||||
use syntax::ptr::P;
|
||||
use syntax::symbol::sym;
|
||||
use syntax_pos::{self, Span};
|
||||
use syntax_expand::base::{Annotatable, ExtCtxt};
|
||||
use syntax_pos::Span;
|
||||
|
||||
pub fn expand_deriving_partial_eq(cx: &mut ExtCtxt<'_>,
|
||||
span: Span,
|
||||
|
@ -186,13 +186,14 @@ use rustc_target::spec::abi::Abi;
|
||||
use syntax::ast::{self, BinOpKind, EnumDef, Expr, Generics, Ident, PatKind};
|
||||
use syntax::ast::{VariantData, GenericParamKind, GenericArg};
|
||||
use syntax::attr;
|
||||
use syntax::expand::SpecialDerives;
|
||||
use syntax::source_map::respan;
|
||||
use syntax::util::map_in_place::MapInPlace;
|
||||
use syntax::ptr::P;
|
||||
use syntax::sess::ParseSess;
|
||||
use syntax::symbol::{Symbol, kw, sym};
|
||||
use syntax_expand::base::{Annotatable, ExtCtxt, SpecialDerives};
|
||||
use syntax_pos::{Span};
|
||||
use syntax_expand::base::{Annotatable, ExtCtxt};
|
||||
use syntax_pos::Span;
|
||||
|
||||
use ty::{LifetimeBounds, Path, Ptr, PtrTy, Self_, Ty};
|
||||
|
||||
|
@ -2,10 +2,10 @@ use crate::util::check_builtin_macro_attribute;
|
||||
|
||||
use syntax::ast::{ItemKind, Mutability, Stmt, Ty, TyKind, Unsafety};
|
||||
use syntax::ast::{self, Param, Attribute, Expr, FnHeader, Generics, Ident};
|
||||
use syntax_expand::allocator::{AllocatorKind, AllocatorMethod, AllocatorTy, ALLOCATOR_METHODS};
|
||||
use syntax_expand::base::{Annotatable, ExtCtxt};
|
||||
use syntax::expand::allocator::{AllocatorKind, AllocatorMethod, AllocatorTy, ALLOCATOR_METHODS};
|
||||
use syntax::ptr::P;
|
||||
use syntax::symbol::{kw, sym, Symbol};
|
||||
use syntax_expand::base::{Annotatable, ExtCtxt};
|
||||
use syntax_pos::Span;
|
||||
|
||||
pub fn expand(
|
||||
|
@ -3,6 +3,7 @@ use std::mem;
|
||||
use smallvec::smallvec;
|
||||
use syntax::ast::{self, Ident};
|
||||
use syntax::attr;
|
||||
use syntax::expand::is_proc_macro_attr;
|
||||
use syntax::print::pprust;
|
||||
use syntax::ptr::P;
|
||||
use syntax::sess::ParseSess;
|
||||
@ -10,7 +11,6 @@ use syntax::symbol::{kw, sym};
|
||||
use syntax::visit::{self, Visitor};
|
||||
use syntax_expand::base::{ExtCtxt, Resolver};
|
||||
use syntax_expand::expand::{AstFragment, ExpansionConfig};
|
||||
use syntax_expand::proc_macro::is_proc_macro_attr;
|
||||
use syntax_pos::{Span, DUMMY_SP};
|
||||
use syntax_pos::hygiene::AstPass;
|
||||
|
||||
|
@ -4,9 +4,9 @@ use syntax::ptr::P;
|
||||
use syntax::sess::ParseSess;
|
||||
use syntax::symbol::{Ident, Symbol, kw, sym};
|
||||
use syntax_expand::expand::ExpansionConfig;
|
||||
use syntax_expand::hygiene::AstPass;
|
||||
use syntax_expand::base::{ExtCtxt, Resolver};
|
||||
use syntax_pos::DUMMY_SP;
|
||||
use syntax_pos::hygiene::AstPass;
|
||||
|
||||
pub fn inject(
|
||||
mut krate: ast::Crate,
|
||||
|
Loading…
Reference in New Issue
Block a user