Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
3344833a
R
Rust
项目概览
int
/
Rust
大约 1 年 前同步成功
通知
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,发现更多精彩内容 >>
提交
3344833a
编写于
10月 27, 2021
作者:
D
Devin Ragotzy
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add unstable struct fields to ui tests
上级
8663ee19
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
62 addition
and
2 deletion
+62
-2
src/test/ui/rfc-2008-non-exhaustive/auxiliary/unstable.rs
src/test/ui/rfc-2008-non-exhaustive/auxiliary/unstable.rs
+31
-0
src/test/ui/rfc-2008-non-exhaustive/omitted-patterns.rs
src/test/ui/rfc-2008-non-exhaustive/omitted-patterns.rs
+18
-1
src/test/ui/rfc-2008-non-exhaustive/stable-omitted-patterns.rs
...est/ui/rfc-2008-non-exhaustive/stable-omitted-patterns.rs
+13
-1
未找到文件。
src/test/ui/rfc-2008-non-exhaustive/auxiliary/unstable.rs
浏览文件 @
3344833a
...
...
@@ -27,3 +27,34 @@ pub fn new() -> Self {
Self
::
Unstable
}
}
#[derive(Default)]
#[stable(feature
=
"stable_test_feature"
,
since
=
"1.0.0"
)]
#[non_exhaustive]
pub
struct
UnstableStruct
{
#[stable(feature
=
"stable_test_feature"
,
since
=
"1.0.0"
)]
pub
stable
:
bool
,
#[stable(feature
=
"stable_test_feature"
,
since
=
"1.0.0"
)]
pub
stable2
:
usize
,
#[unstable(feature
=
"unstable_test_feature"
,
issue
=
"none"
)]
pub
unstable
:
u8
,
}
#[stable(feature
=
"stable_test_feature"
,
since
=
"1.0.0"
)]
#[non_exhaustive]
pub
struct
OnlyUnstableStruct
{
#[unstable(feature
=
"unstable_test_feature"
,
issue
=
"none"
)]
pub
unstable
:
u8
,
#[unstable(feature
=
"unstable_test_feature"
,
issue
=
"none"
)]
pub
unstable2
:
bool
,
}
impl
OnlyUnstableStruct
{
#[stable(feature
=
"stable_test_feature"
,
since
=
"1.0.0"
)]
pub
fn
new
()
->
Self
{
Self
{
unstable
:
0
,
unstable2
:
false
,
}
}
}
src/test/ui/rfc-2008-non-exhaustive/omitted-patterns.rs
浏览文件 @
3344833a
...
...
@@ -13,7 +13,7 @@
EmptyNonExhaustiveEnum
,
NestedNonExhaustive
,
NonExhaustiveEnum
,
NonExhaustiveSingleVariant
,
VariantNonExhaustive
,
};
use
unstable
::{
UnstableEnum
,
OnlyUnstableEnum
};
use
unstable
::{
UnstableEnum
,
OnlyUnstableEnum
,
UnstableStruct
,
OnlyUnstableStruct
};
use
structs
::{
FunctionalRecord
,
MixedVisFields
,
NestedStruct
,
NormalStruct
};
#[non_exhaustive]
...
...
@@ -145,6 +145,7 @@ fn main() {
}
//~^^ some variants are not matched explicitly
// Ok: the feature is on and all variants are matched
#[deny(non_exhaustive_omitted_patterns)]
match
UnstableEnum
::
Stable
{
UnstableEnum
::
Stable
=>
{}
...
...
@@ -167,4 +168,20 @@ fn main() {
_
=>
{}
}
//~^^ some variants are not matched explicitly
#[warn(non_exhaustive_omitted_patterns)]
let
OnlyUnstableStruct
{
unstable
,
..
}
=
OnlyUnstableStruct
::
new
();
//~^ some fields are not explicitly listed
// OK: both unstable fields are matched with feature on
#[warn(non_exhaustive_omitted_patterns)]
let
OnlyUnstableStruct
{
unstable
,
unstable2
,
..
}
=
OnlyUnstableStruct
::
new
();
#[warn(non_exhaustive_omitted_patterns)]
let
UnstableStruct
{
stable
,
stable2
,
..
}
=
UnstableStruct
::
default
();
//~^ some fields are not explicitly listed
// OK: both unstable and stable fields are matched with feature on
#[warn(non_exhaustive_omitted_patterns)]
let
UnstableStruct
{
stable
,
stable2
,
unstable
,
..
}
=
UnstableStruct
::
default
();
}
src/test/ui/rfc-2008-non-exhaustive/stable-omitted-patterns.rs
浏览文件 @
3344833a
...
...
@@ -6,7 +6,7 @@
// aux-build:unstable.rs
extern
crate
unstable
;
use
unstable
::{
UnstableEnum
,
OnlyUnstableEnum
};
use
unstable
::{
UnstableEnum
,
OnlyUnstableEnum
,
UnstableStruct
,
OnlyUnstableStruct
};
fn
main
()
{
// OK: this matches all the stable variants
...
...
@@ -30,4 +30,16 @@ fn main() {
match
OnlyUnstableEnum
::
new
()
{
_
=>
{}
}
// Ok: Same as the above enum (no fields can be matched on)
#[warn(non_exhaustive_omitted_patterns)]
let
OnlyUnstableStruct
{
..
}
=
OnlyUnstableStruct
::
new
();
#[warn(non_exhaustive_omitted_patterns)]
let
UnstableStruct
{
stable
,
..
}
=
UnstableStruct
::
default
();
//~^ some fields are not explicitly listed
// OK: stable field is matched
#[warn(non_exhaustive_omitted_patterns)]
let
UnstableStruct
{
stable
,
stable2
,
..
}
=
UnstableStruct
::
default
();
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录