Implement --check-cfg option (RFC 3013)
Co-authored-by: Urgau <lolo.branstett@numericable.fr> Co-authored-by: Marcelina Kościelnicka <mwk@0x04.net>
This commit is contained in:
parent
6499c5e7fc
commit
3a73ca587b
27 changed files with 365 additions and 7 deletions
|
@ -1,6 +1,7 @@
|
|||
//! Contains `ParseSess` which holds state living beyond what one `Parser` might.
|
||||
//! It also serves as an input to the parser itself.
|
||||
|
||||
use crate::config::CheckCfg;
|
||||
use crate::lint::{BufferedEarlyLint, BuiltinLintDiagnostics, Lint, LintId};
|
||||
use rustc_ast::node_id::NodeId;
|
||||
use rustc_data_structures::fx::{FxHashMap, FxHashSet};
|
||||
|
@ -18,6 +19,7 @@ use std::str;
|
|||
/// The set of keys (and, optionally, values) that define the compilation
|
||||
/// environment of the crate, used to drive conditional compilation.
|
||||
pub type CrateConfig = FxHashSet<(Symbol, Option<Symbol>)>;
|
||||
pub type CrateCheckConfig = CheckCfg<Symbol>;
|
||||
|
||||
/// Collected spans during parsing for places where a certain feature was
|
||||
/// used and should be feature gated accordingly in `check_crate`.
|
||||
|
@ -117,6 +119,7 @@ pub struct ParseSess {
|
|||
pub span_diagnostic: Handler,
|
||||
pub unstable_features: UnstableFeatures,
|
||||
pub config: CrateConfig,
|
||||
pub check_config: CrateCheckConfig,
|
||||
pub edition: Edition,
|
||||
pub missing_fragment_specifiers: Lock<FxHashMap<Span, NodeId>>,
|
||||
/// Places where raw identifiers were used. This is used to avoid complaining about idents
|
||||
|
@ -162,6 +165,7 @@ impl ParseSess {
|
|||
span_diagnostic: handler,
|
||||
unstable_features: UnstableFeatures::from_environment(None),
|
||||
config: FxHashSet::default(),
|
||||
check_config: CrateCheckConfig::default(),
|
||||
edition: ExpnId::root().expn_data().edition,
|
||||
missing_fragment_specifiers: Default::default(),
|
||||
raw_identifier_spans: Lock::new(Vec::new()),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue