Struct rustc::lint::EarlyContext
[−]
[src]
pub struct EarlyContext<'a> { pub sess: &'a Session, pub krate: &'a Crate, // some fields omitted }
🔬 This is a nightly-only experimental API. (
rustc_private
)Context for lint checking of the AST, after expansion, before lowering to HIR.
Fields
sess: &'a Session
🔬 This is a nightly-only experimental API. (
rustc_private
)Type context we're checking in.
krate: &'a Crate
🔬 This is a nightly-only experimental API. (
rustc_private
)The crate being checked.
Trait Implementations
impl<'a> LintContext<'a> for EarlyContext<'a>
[src]
fn sess(&self) -> &Session
🔬 This is a nightly-only experimental API. (
rustc_private
)Get the overall compiler Session
object.
fn lints(&self) -> &LintStore
🔬 This is a nightly-only experimental API. (
rustc_private
)fn mut_lints(&mut self) -> &mut LintStore
🔬 This is a nightly-only experimental API. (
rustc_private
)fn level_stack(&mut self) -> &mut Vec<(LintId, LevelSource)>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn enter_attrs(&mut self, attrs: &'a [Attribute])
🔬 This is a nightly-only experimental API. (
rustc_private
)fn exit_attrs(&mut self, attrs: &'a [Attribute])
🔬 This is a nightly-only experimental API. (
rustc_private
)fn current_level(&self, lint: &'static Lint) -> Level
🔬 This is a nightly-only experimental API. (
rustc_private
)Get the level of lint
at the current position of the lint traversal. Read more
fn level_src(&self, lint: &'static Lint) -> Option<LevelSource>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn lookup_and_emit<S: Into<MultiSpan>>(&self,
lint: &'static Lint,
span: Option<S>,
msg: &str)
lint: &'static Lint,
span: Option<S>,
msg: &str)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn lookup<S: Into<MultiSpan>>(&self,
lint: &'static Lint,
span: Option<S>,
msg: &str)
-> DiagnosticBuilder
lint: &'static Lint,
span: Option<S>,
msg: &str)
-> DiagnosticBuilder
🔬 This is a nightly-only experimental API. (
rustc_private
)fn span_lint<S: Into<MultiSpan>>(&self, lint: &'static Lint, span: S, msg: &str)
🔬 This is a nightly-only experimental API. (
rustc_private
)Emit a lint at the appropriate level, for a particular span.
fn early_lint(&self, early_lint: &EarlyLint)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn struct_span_lint<S: Into<MultiSpan>>(&self,
lint: &'static Lint,
span: S,
msg: &str)
-> DiagnosticBuilder
lint: &'static Lint,
span: S,
msg: &str)
-> DiagnosticBuilder
🔬 This is a nightly-only experimental API. (
rustc_private
)fn span_lint_note(&self,
lint: &'static Lint,
span: Span,
msg: &str,
note_span: Span,
note: &str)
lint: &'static Lint,
span: Span,
msg: &str,
note_span: Span,
note: &str)
🔬 This is a nightly-only experimental API. (
rustc_private
)Emit a lint and note at the appropriate level, for a particular span.
fn span_lint_help(&self, lint: &'static Lint, span: Span, msg: &str, help: &str)
🔬 This is a nightly-only experimental API. (
rustc_private
)Emit a lint and help at the appropriate level, for a particular span.
fn lint(&self, lint: &'static Lint, msg: &str)
🔬 This is a nightly-only experimental API. (
rustc_private
)Emit a lint at the appropriate level, with no associated span.
fn with_lint_attrs<F>(&mut self, attrs: &'tcx [Attribute], f: F) where F: FnOnce(&mut Self)
🔬 This is a nightly-only experimental API. (
rustc_private
)Merge the lints specified by any lint attributes into the current lint context, call the provided function, then reset the lints in effect to their previous state. Read more
impl<'a> Visitor<'a> for EarlyContext<'a>
[src]
fn visit_item(&mut self, it: &'a Item)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn visit_foreign_item(&mut self, it: &'a ForeignItem)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn visit_pat(&mut self, p: &'a Pat)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn visit_expr(&mut self, e: &'a Expr)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn visit_stmt(&mut self, s: &'a Stmt)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn visit_fn(&mut self, fk: FnKind<'a>, decl: &'a FnDecl, span: Span, id: NodeId)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn visit_variant_data(&mut self,
s: &'a VariantData,
ident: Ident,
g: &'a Generics,
item_id: NodeId,
_: Span)
s: &'a VariantData,
ident: Ident,
g: &'a Generics,
item_id: NodeId,
_: Span)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn visit_struct_field(&mut self, s: &'a StructField)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn visit_variant(&mut self, v: &'a Variant, g: &'a Generics, item_id: NodeId)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn visit_ty(&mut self, t: &'a Ty)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn visit_ident(&mut self, sp: Span, id: Ident)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn visit_mod(&mut self, m: &'a Mod, s: Span, n: NodeId)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn visit_local(&mut self, l: &'a Local)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn visit_block(&mut self, b: &'a Block)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn visit_arm(&mut self, a: &'a Arm)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn visit_expr_post(&mut self, e: &'a Expr)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn visit_generics(&mut self, g: &'a Generics)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn visit_trait_item(&mut self, trait_item: &'a TraitItem)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn visit_impl_item(&mut self, impl_item: &'a ImplItem)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn visit_lifetime(&mut self, lt: &'a Lifetime)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn visit_lifetime_def(&mut self, lt: &'a LifetimeDef)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn visit_path(&mut self, p: &'a Path, id: NodeId)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn visit_path_list_item(&mut self, prefix: &'a Path, item: &'a PathListItem)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn visit_attribute(&mut self, attr: &'a Attribute)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn visit_name(&mut self, _span: Span, _name: Symbol)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn visit_where_predicate(&mut self, p: &'ast WherePredicate)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn visit_trait_ref(&mut self, t: &'ast TraitRef)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn visit_ty_param_bound(&mut self, bounds: &'ast TyParamBound)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn visit_poly_trait_ref(&mut self,
t: &'ast PolyTraitRef,
m: &'ast TraitBoundModifier)
t: &'ast PolyTraitRef,
m: &'ast TraitBoundModifier)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn visit_enum_def(&mut self,
enum_definition: &'ast EnumDef,
generics: &'ast Generics,
item_id: NodeId,
Span)
enum_definition: &'ast EnumDef,
generics: &'ast Generics,
item_id: NodeId,
Span)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn visit_mac(&mut self, _mac: &'ast Spanned<Mac_>)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn visit_path_segment(&mut self,
path_span: Span,
path_segment: &'ast PathSegment)
path_span: Span,
path_segment: &'ast PathSegment)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn visit_path_parameters(&mut self,
path_span: Span,
path_parameters: &'ast PathParameters)
path_span: Span,
path_parameters: &'ast PathParameters)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn visit_assoc_type_binding(&mut self, type_binding: &'ast TypeBinding)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn visit_vis(&mut self, vis: &'ast Visibility)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn visit_fn_ret_ty(&mut self, ret_ty: &'ast FunctionRetTy)
🔬 This is a nightly-only experimental API. (
rustc_private
)