[][src]Module syntax::feature_gate

Feature gating

This module implements the gating necessary for preventing certain compiler features from being used by default. This module will crawl a pre-expanded AST to ensure that there are no features which are used that are not enabled.

Features are enabled in programs via the crate-level attributes of #![feature(...)] with a comma-separated list of features.

For the purpose of future feature-tracking, once code for detection of feature gate usage is added, do not remove it again even once the feature becomes stable.

Structs

AttributeTemplate

A template that the attribute input must match. Only top-level shape (#[attr] vs #[attr(...)] vs #[attr = ...]) is considered now.

BUILTIN_ATTRIBUTE_MAP
Features

A set of features to be used by later passes.

GatedCfg

Enums

AttributeGate
AttributeType
GateIssue
GateStrength
Stability
UnstableFeatures

Constants

BUILTIN_ATTRIBUTES

Attributes that have a special meaning to rustc or rustdoc

EXPLAIN_ALLOW_INTERNAL_UNSAFE
EXPLAIN_ALLOW_INTERNAL_UNSTABLE
EXPLAIN_ASM
EXPLAIN_CONCAT_IDENTS
EXPLAIN_CUSTOM_TEST_FRAMEWORKS
EXPLAIN_FORMAT_ARGS_NL
EXPLAIN_GLOBAL_ASM
EXPLAIN_LOG_SYNTAX
EXPLAIN_STMT_ATTR_SYNTAX
EXPLAIN_TRACE_MACROS
EXPLAIN_UNSIZED_TUPLE_COERCION

Functions

check_attribute
check_crate
deprecated_attributes
emit_feature_err
feature_err
get_features
is_builtin_attr
is_builtin_attr_name

Type Definitions

BuiltinAttribute