Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
1d49658f
R
Rust
项目概览
int
/
Rust
12 个月 前同步成功
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
Rust
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
1d49658f
编写于
6月 29, 2021
作者:
R
Ryan Levick
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Change or_patterns_back_compat lint to rust_2021_incompatible_or_patterns
上级
df71a99a
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
14 addition
and
10 deletion
+14
-10
compiler/rustc_expand/src/mbe/macro_rules.rs
compiler/rustc_expand/src/mbe/macro_rules.rs
+4
-2
compiler/rustc_lint/src/lib.rs
compiler/rustc_lint/src/lib.rs
+1
-0
compiler/rustc_lint_defs/src/builtin.rs
compiler/rustc_lint_defs/src/builtin.rs
+4
-4
library/core/src/lib.rs
library/core/src/lib.rs
+1
-0
src/test/ui/macros/macro-or-patterns-back-compat.fixed
src/test/ui/macros/macro-or-patterns-back-compat.fixed
+1
-1
src/test/ui/macros/macro-or-patterns-back-compat.rs
src/test/ui/macros/macro-or-patterns-back-compat.rs
+1
-1
src/test/ui/macros/macro-or-patterns-back-compat.stderr
src/test/ui/macros/macro-or-patterns-back-compat.stderr
+2
-2
未找到文件。
compiler/rustc_expand/src/mbe/macro_rules.rs
浏览文件 @
1d49658f
...
...
@@ -18,7 +18,9 @@
use
rustc_data_structures
::
sync
::
Lrc
;
use
rustc_errors
::{
Applicability
,
DiagnosticBuilder
};
use
rustc_feature
::
Features
;
use
rustc_lint_defs
::
builtin
::{
OR_PATTERNS_BACK_COMPAT
,
SEMICOLON_IN_EXPRESSIONS_FROM_MACROS
};
use
rustc_lint_defs
::
builtin
::{
RUST_2021_INCOMPATIBLE_OR_PATTERNS
,
SEMICOLON_IN_EXPRESSIONS_FROM_MACROS
,
};
use
rustc_lint_defs
::
BuiltinLintDiagnostics
;
use
rustc_parse
::
parser
::
Parser
;
use
rustc_session
::
parse
::
ParseSess
;
...
...
@@ -975,7 +977,7 @@ fn check_matcher_core(
Some
(
NonterminalKind
::
PatParam
{
inferred
:
false
}),
));
sess
.buffer_lint_with_diagnostic
(
&
OR_PATTERNS_BACK_COMPAT
,
&
RUST_2021_INCOMPATIBLE_OR_PATTERNS
,
span
,
ast
::
CRATE_NODE_ID
,
"the meaning of the `pat` fragment specifier is changing in Rust 2021, which may affect this macro"
,
...
...
compiler/rustc_lint/src/lib.rs
浏览文件 @
1d49658f
...
...
@@ -326,6 +326,7 @@ fn register_builtins(store: &mut LintStore, no_interleave_lints: bool) {
store
.register_renamed
(
"overlapping_patterns"
,
"overlapping_range_endpoints"
);
store
.register_renamed
(
"safe_packed_borrows"
,
"unaligned_references"
);
store
.register_renamed
(
"disjoint_capture_migration"
,
"rust_2021_incompatible_closure_captures"
);
store
.register_renamed
(
"or_patterns_back_compat"
,
"rust_2021_incompatible_or_patterns"
);
// These were moved to tool lints, but rustc still sees them when compiling normally, before
// tool lints are registered, so `check_tool_name_for_backwards_compat` doesn't work. Use
...
...
compiler/rustc_lint_defs/src/builtin.rs
浏览文件 @
1d49658f
...
...
@@ -2970,7 +2970,7 @@
RUST_2021_INCOMPATIBLE_CLOSURE_CAPTURES
,
LEGACY_DERIVE_HELPERS
,
PROC_MACRO_BACK_COMPAT
,
OR_PATTERNS_BACK_COMPAT
,
RUST_2021_INCOMPATIBLE_OR_PATTERNS
,
LARGE_ASSIGNMENTS
,
FUTURE_PRELUDE_COLLISION
,
RESERVED_PREFIX
,
...
...
@@ -3183,12 +3183,12 @@
}
declare_lint!
{
/// The `
or_patterns_back_compat
` lint detects usage of old versions of or-patterns.
/// The `
rust_2021_incompatible_or_patterns
` lint detects usage of old versions of or-patterns.
///
/// ### Example
///
/// ```rust,compile_fail
/// #![deny(
or_patterns_back_compat
)]
/// #![deny(
rust_2021_incompatible_or_patterns
)]
/// macro_rules! match_any {
/// ( $expr:expr , $( $( $pat:pat )|+ => $expr_arm:expr ),+ ) => {
/// match $expr {
...
...
@@ -3211,7 +3211,7 @@
/// ### Explanation
///
/// In Rust 2021, the pat matcher will match new patterns, which include the | character.
pub
OR_PATTERNS_BACK_COMPAT
,
pub
RUST_2021_INCOMPATIBLE_OR_PATTERNS
,
Allow
,
"detects usage of old versions of or-patterns"
,
@
future_incompatible
=
FutureIncompatibleInfo
{
...
...
library/core/src/lib.rs
浏览文件 @
1d49658f
...
...
@@ -164,6 +164,7 @@
#![feature(no_niche)]
// rust-lang/rust#68303
#![feature(no_coverage)]
// rust-lang/rust#84605
#![deny(unsafe_op_in_unsafe_fn)]
#![allow(renamed_and_removed_lints)]
#![deny(or_patterns_back_compat)]
// allow using `core::` in intra-doc links
...
...
src/test/ui/macros/macro-or-patterns-back-compat.fixed
浏览文件 @
1d49658f
// run-rustfix
// aux-build:or-pattern.rs
#![deny(
or_patterns_back_compat
)]
#![deny(
rust_2021_incompatible_or_patterns
)]
#![allow(unused_macros)]
#[macro_use]
...
...
src/test/ui/macros/macro-or-patterns-back-compat.rs
浏览文件 @
1d49658f
// run-rustfix
// aux-build:or-pattern.rs
#![deny(
or_patterns_back_compat
)]
#![deny(
rust_2021_incompatible_or_patterns
)]
#![allow(unused_macros)]
#[macro_use]
...
...
src/test/ui/macros/macro-or-patterns-back-compat.stderr
浏览文件 @
1d49658f
...
...
@@ -7,8 +7,8 @@ LL | macro_rules! foo { ($x:pat | $y:pat) => {} }
note: the lint level is defined here
--> $DIR/macro-or-patterns-back-compat.rs:4:9
|
LL | #![deny(
or_patterns_back_compat
)]
| ^^^^^^^^^^^^^^^^^^^^^^^
LL | #![deny(
rust_2021_incompatible_or_patterns
)]
| ^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^
= warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
= note: for more information, see issue #84869 <https://github.com/rust-lang/rust/issues/84869>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录