Rollup merge of #107508 - WaffleLapkin:uneq'15, r=oli-obk
`Edition` micro refactor r? ``@oli-obk``
This commit is contained in:
commit
fe44f3bdd0
6 changed files with 27 additions and 26 deletions
|
@ -131,7 +131,7 @@ pub fn print_crate<'a>(
|
||||||
|
|
||||||
// Currently, in Rust 2018 we don't have `extern crate std;` at the crate
|
// Currently, in Rust 2018 we don't have `extern crate std;` at the crate
|
||||||
// root, so this is not needed, and actually breaks things.
|
// root, so this is not needed, and actually breaks things.
|
||||||
if edition == Edition::Edition2015 {
|
if edition.rust_2015() {
|
||||||
// `#![no_std]`
|
// `#![no_std]`
|
||||||
let fake_attr = attr::mk_attr_word(g, ast::AttrStyle::Inner, sym::no_std, DUMMY_SP);
|
let fake_attr = attr::mk_attr_word(g, ast::AttrStyle::Inner, sym::no_std, DUMMY_SP);
|
||||||
s.print_attribute(&fake_attr);
|
s.print_attribute(&fake_attr);
|
||||||
|
|
|
@ -1717,7 +1717,7 @@ impl<'a> Resolver<'a> {
|
||||||
Applicability::MaybeIncorrect,
|
Applicability::MaybeIncorrect,
|
||||||
)),
|
)),
|
||||||
)
|
)
|
||||||
} else if self.session.edition() == Edition::Edition2015 {
|
} else if self.session.rust_2015() {
|
||||||
(
|
(
|
||||||
format!("maybe a missing crate `{ident}`?"),
|
format!("maybe a missing crate `{ident}`?"),
|
||||||
Some((
|
Some((
|
||||||
|
|
|
@ -7,7 +7,6 @@ use rustc_middle::ty;
|
||||||
use rustc_session::lint::builtin::PROC_MACRO_DERIVE_RESOLUTION_FALLBACK;
|
use rustc_session::lint::builtin::PROC_MACRO_DERIVE_RESOLUTION_FALLBACK;
|
||||||
use rustc_session::lint::BuiltinLintDiagnostics;
|
use rustc_session::lint::BuiltinLintDiagnostics;
|
||||||
use rustc_span::def_id::LocalDefId;
|
use rustc_span::def_id::LocalDefId;
|
||||||
use rustc_span::edition::Edition;
|
|
||||||
use rustc_span::hygiene::{ExpnId, ExpnKind, LocalExpnId, MacroKind, SyntaxContext};
|
use rustc_span::hygiene::{ExpnId, ExpnKind, LocalExpnId, MacroKind, SyntaxContext};
|
||||||
use rustc_span::symbol::{kw, Ident};
|
use rustc_span::symbol::{kw, Ident};
|
||||||
use rustc_span::{Span, DUMMY_SP};
|
use rustc_span::{Span, DUMMY_SP};
|
||||||
|
@ -86,7 +85,7 @@ impl<'a> Resolver<'a> {
|
||||||
// 4c. Standard library prelude (de-facto closed, controlled).
|
// 4c. Standard library prelude (de-facto closed, controlled).
|
||||||
// 6. Language prelude: builtin attributes (closed, controlled).
|
// 6. Language prelude: builtin attributes (closed, controlled).
|
||||||
|
|
||||||
let rust_2015 = ctxt.edition() == Edition::Edition2015;
|
let rust_2015 = ctxt.edition().rust_2015();
|
||||||
let (ns, macro_kind, is_absolute_path) = match scope_set {
|
let (ns, macro_kind, is_absolute_path) = match scope_set {
|
||||||
ScopeSet::All(ns, _) => (ns, None, false),
|
ScopeSet::All(ns, _) => (ns, None, false),
|
||||||
ScopeSet::AbsolutePath(ns) => (ns, None, true),
|
ScopeSet::AbsolutePath(ns) => (ns, None, true),
|
||||||
|
|
|
@ -918,23 +918,24 @@ impl Session {
|
||||||
ret
|
ret
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Is this edition 2015?
|
||||||
pub fn rust_2015(&self) -> bool {
|
pub fn rust_2015(&self) -> bool {
|
||||||
self.edition() == Edition::Edition2015
|
self.edition().rust_2015()
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Are we allowed to use features from the Rust 2018 edition?
|
/// Are we allowed to use features from the Rust 2018 edition?
|
||||||
pub fn rust_2018(&self) -> bool {
|
pub fn rust_2018(&self) -> bool {
|
||||||
self.edition() >= Edition::Edition2018
|
self.edition().rust_2018()
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Are we allowed to use features from the Rust 2021 edition?
|
/// Are we allowed to use features from the Rust 2021 edition?
|
||||||
pub fn rust_2021(&self) -> bool {
|
pub fn rust_2021(&self) -> bool {
|
||||||
self.edition() >= Edition::Edition2021
|
self.edition().rust_2021()
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Are we allowed to use features from the Rust 2024 edition?
|
/// Are we allowed to use features from the Rust 2024 edition?
|
||||||
pub fn rust_2024(&self) -> bool {
|
pub fn rust_2024(&self) -> bool {
|
||||||
self.edition() >= Edition::Edition2024
|
self.edition().rust_2024()
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns `true` if we cannot skip the PLT for shared library calls.
|
/// Returns `true` if we cannot skip the PLT for shared library calls.
|
||||||
|
|
|
@ -49,8 +49,8 @@ impl fmt::Display for Edition {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Edition {
|
impl Edition {
|
||||||
pub fn lint_name(&self) -> &'static str {
|
pub fn lint_name(self) -> &'static str {
|
||||||
match *self {
|
match self {
|
||||||
Edition::Edition2015 => "rust_2015_compatibility",
|
Edition::Edition2015 => "rust_2015_compatibility",
|
||||||
Edition::Edition2018 => "rust_2018_compatibility",
|
Edition::Edition2018 => "rust_2018_compatibility",
|
||||||
Edition::Edition2021 => "rust_2021_compatibility",
|
Edition::Edition2021 => "rust_2021_compatibility",
|
||||||
|
@ -58,8 +58,8 @@ impl Edition {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn feature_name(&self) -> Symbol {
|
pub fn feature_name(self) -> Symbol {
|
||||||
match *self {
|
match self {
|
||||||
Edition::Edition2015 => sym::rust_2015_preview,
|
Edition::Edition2015 => sym::rust_2015_preview,
|
||||||
Edition::Edition2018 => sym::rust_2018_preview,
|
Edition::Edition2018 => sym::rust_2018_preview,
|
||||||
Edition::Edition2021 => sym::rust_2021_preview,
|
Edition::Edition2021 => sym::rust_2021_preview,
|
||||||
|
@ -67,8 +67,8 @@ impl Edition {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn is_stable(&self) -> bool {
|
pub fn is_stable(self) -> bool {
|
||||||
match *self {
|
match self {
|
||||||
Edition::Edition2015 => true,
|
Edition::Edition2015 => true,
|
||||||
Edition::Edition2018 => true,
|
Edition::Edition2018 => true,
|
||||||
Edition::Edition2021 => true,
|
Edition::Edition2021 => true,
|
||||||
|
@ -76,23 +76,24 @@ impl Edition {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn rust_2015(&self) -> bool {
|
/// Is this edition 2015?
|
||||||
*self == Edition::Edition2015
|
pub fn rust_2015(self) -> bool {
|
||||||
|
self == Edition::Edition2015
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Are we allowed to use features from the Rust 2018 edition?
|
/// Are we allowed to use features from the Rust 2018 edition?
|
||||||
pub fn rust_2018(&self) -> bool {
|
pub fn rust_2018(self) -> bool {
|
||||||
*self >= Edition::Edition2018
|
self >= Edition::Edition2018
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Are we allowed to use features from the Rust 2021 edition?
|
/// Are we allowed to use features from the Rust 2021 edition?
|
||||||
pub fn rust_2021(&self) -> bool {
|
pub fn rust_2021(self) -> bool {
|
||||||
*self >= Edition::Edition2021
|
self >= Edition::Edition2021
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Are we allowed to use features from the Rust 2024 edition?
|
/// Are we allowed to use features from the Rust 2024 edition?
|
||||||
pub fn rust_2024(&self) -> bool {
|
pub fn rust_2024(self) -> bool {
|
||||||
*self >= Edition::Edition2024
|
self >= Edition::Edition2024
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -706,22 +706,22 @@ impl Span {
|
||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn rust_2015(self) -> bool {
|
pub fn rust_2015(self) -> bool {
|
||||||
self.edition() == edition::Edition::Edition2015
|
self.edition().rust_2015()
|
||||||
}
|
}
|
||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn rust_2018(self) -> bool {
|
pub fn rust_2018(self) -> bool {
|
||||||
self.edition() >= edition::Edition::Edition2018
|
self.edition().rust_2018()
|
||||||
}
|
}
|
||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn rust_2021(self) -> bool {
|
pub fn rust_2021(self) -> bool {
|
||||||
self.edition() >= edition::Edition::Edition2021
|
self.edition().rust_2021()
|
||||||
}
|
}
|
||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn rust_2024(self) -> bool {
|
pub fn rust_2024(self) -> bool {
|
||||||
self.edition() >= edition::Edition::Edition2024
|
self.edition().rust_2024()
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns the source callee.
|
/// Returns the source callee.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue