Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
d7e75100
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,发现更多精彩内容 >>
提交
d7e75100
编写于
8月 15, 2023
作者:
B
bors
浏览文件
操作
浏览文件
下载
差异文件
Auto merge of #113679 - chenyukang:yukang-fix-lint-113459, r=cjgillot
Match scrutinee need necessary parentheses for structs Fixes #113459
上级
ffaa32b7
c44b35e1
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
68 addition
and
0 deletion
+68
-0
compiler/rustc_lint/src/unused.rs
compiler/rustc_lint/src/unused.rs
+18
-0
tests/ui/lint/lint-struct-necessary.rs
tests/ui/lint/lint-struct-necessary.rs
+31
-0
tests/ui/lint/lint-struct-necessary.stderr
tests/ui/lint/lint-struct-necessary.stderr
+19
-0
未找到文件。
compiler/rustc_lint/src/unused.rs
浏览文件 @
d7e75100
...
@@ -666,6 +666,24 @@ fn is_expr_delims_necessary(
...
@@ -666,6 +666,24 @@ fn is_expr_delims_necessary(
if
!
followed_by_block
{
if
!
followed_by_block
{
return
false
;
return
false
;
}
}
// Check if we need parens for `match &( Struct { feild: }) {}`.
{
let
mut
innermost
=
inner
;
loop
{
innermost
=
match
&
innermost
.kind
{
ExprKind
::
AddrOf
(
_
,
_
,
expr
)
=>
expr
,
_
=>
{
if
parser
::
contains_exterior_struct_lit
(
&
innermost
)
{
return
true
;
}
else
{
break
;
}
}
}
}
}
let
mut
innermost
=
inner
;
let
mut
innermost
=
inner
;
loop
{
loop
{
innermost
=
match
&
innermost
.kind
{
innermost
=
match
&
innermost
.kind
{
...
...
tests/ui/lint/lint-struct-necessary.rs
0 → 100644
浏览文件 @
d7e75100
#![allow(dead_code)]
#![deny(unused_parens)]
enum
State
{
Waiting
{
start_at
:
u64
}
}
struct
Foo
{}
fn
main
()
{
let
e
=
&
mut
State
::
Waiting
{
start_at
:
0u64
};
match
(
&
mut
State
::
Waiting
{
start_at
:
0u64
})
{
_
=>
{}
}
match
(
e
)
{
//~^ ERROR unnecessary parentheses around `match` scrutinee expression
_
=>
{}
}
match
&
(
State
::
Waiting
{
start_at
:
0u64
})
{
_
=>
{}
}
match
(
State
::
Waiting
{
start_at
:
0u64
})
{
_
=>
{}
}
match
(
&&
Foo
{})
{
_
=>
{}
}
}
tests/ui/lint/lint-struct-necessary.stderr
0 → 100644
浏览文件 @
d7e75100
error: unnecessary parentheses around `match` scrutinee expression
--> $DIR/lint-struct-necessary.rs:15:11
|
LL | match (e) {
| ^ ^
|
note: the lint level is defined here
--> $DIR/lint-struct-necessary.rs:2:9
|
LL | #![deny(unused_parens)]
| ^^^^^^^^^^^^^
help: remove these parentheses
|
LL - match (e) {
LL + match e {
|
error: aborting due to previous error
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录