LintLevelsBuilder in rustc_lint - Rust (original) (raw)
Struct LintLevelsBuilder
pub struct LintLevelsBuilder<'s, P> {
sess: &'s Session,
features: &'s Features,
provider: P,
lint_added_lints: bool,
store: &'s LintStore,
registered_tools: &'s RegisteredTools,
}
Pushes a list of AST lint attributes onto this context.
This function will return a BuilderPush
object which should be passed to pop
when this scope for the attributes provided is exited.
This function will perform a number of tasks:
- It’ll validate all lint-related attributes in
attrs
- It’ll mark all lint-related attributes as used
- Lint levels will be updated based on the attributes provided
- Lint attributes are validated, e.g., a
#[forbid]
can’t be switched to#[allow]
Don’t forget to call pop
!
Called after push
when the scope of a set of attributes are exited.
Attempts to insert the id
to level_src
map entry. If unsuccessful (e.g. if a forbid was already inserted on the same scope), then emits a diagnostic with no change to specs
.
Checks if the lint is gated on a feature that is not enabled.
Returns true
if the lint’s feature is enabled.
Find the lint level for a lint.
Used to emit a lint-related diagnostic based on the current state of this lint context.
Override this type to control which nested HIR are visited; seeNestedFilter for details. If you override this type, you must also override maybe_tcx. Read more
If type NestedFilter
is set to visit nested items, this method must also be overridden to provide a map to retrieve nested items.
Visits the top-level item and (optionally) nested items / impl items. Seevisit_nested_item
for details.
The result type of the visit_*
methods. Can be either ()
, or ControlFlow<T>
.
Invoked when a nested item is encountered. By default, whenSelf::NestedFilter
is nested_filter::None
, this method does nothing. You probably don’t want to override this method – instead, override Self::NestedFilter or use the “shallow” or “deep” visit patterns described atrustc_hir::intravisit. The only reason to override this method is if you want a nested pattern but cannot supply aTyCtxt
; see maybe_tcx
for advice.
Like visit_nested_item()
, but for trait items. Seevisit_nested_item()
for advice on when to override this method.
Like visit_nested_item()
, but for impl items. Seevisit_nested_item()
for advice on when to override this method.
Like visit_nested_item()
, but for foreign items. Seevisit_nested_item()
for advice on when to override this method.
Invoked to visit the body of a function, method or closure. Likevisit_nested_item
, does nothing by default unless you overrideSelf::NestedFilter
.
All types are treated as ambiguous types for the purposes of hir visiting in order to ensure that visitors can handle infer vars without it being too error-prone. Read more
All consts are treated as ambiguous consts for the purposes of hir visiting in order to ensure that visitors can handle infer vars without it being too error-prone. Read more
Note: Unable to compute type layout, possibly due to this type having generic parameters. Layout can only be computed for concrete, fully-instantiated types.