Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
cb90a4f3
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,发现更多精彩内容 >>
提交
cb90a4f3
编写于
6月 22, 2022
作者:
D
David Wood
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
privacy: port "item is private" diag
Signed-off-by:
N
David Wood
<
david.wood@huawei.com
>
上级
be9ebfdb
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
19 addition
and
6 deletion
+19
-6
compiler/rustc_error_messages/locales/en-US/privacy.ftl
compiler/rustc_error_messages/locales/en-US/privacy.ftl
+3
-0
compiler/rustc_privacy/src/errors.rs
compiler/rustc_privacy/src/errors.rs
+10
-0
compiler/rustc_privacy/src/lib.rs
compiler/rustc_privacy/src/lib.rs
+6
-6
未找到文件。
compiler/rustc_error_messages/locales/en-US/privacy.ftl
浏览文件 @
cb90a4f3
privacy-field-is-private = field `{$field_name}` of {$variant_descr} `{$def_path_str}` is private
privacy-field-is-private-is-update-syntax-label = field `{$field_name}` is private
privacy-field-is-private-label = private field
privacy-item-is-private = {$kind} `{$descr}` is private
.label = private {$kind}
compiler/rustc_privacy/src/errors.rs
浏览文件 @
cb90a4f3
...
...
@@ -27,3 +27,13 @@ pub enum FieldIsPrivateLabel {
span
:
Span
,
},
}
#[derive(SessionDiagnostic)]
#[error(privacy::item_is_private)]
pub
struct
ItemIsPrivate
<
'a
>
{
#[primary_span]
#[label]
pub
span
:
Span
,
pub
kind
:
&
'a
str
,
pub
descr
:
String
,
}
compiler/rustc_privacy/src/lib.rs
浏览文件 @
cb90a4f3
...
...
@@ -36,7 +36,7 @@
use
std
::
ops
::
ControlFlow
;
use
std
::{
cmp
,
fmt
,
mem
};
use
errors
::{
FieldIsPrivate
,
FieldIsPrivateLabel
};
use
errors
::{
FieldIsPrivate
,
FieldIsPrivateLabel
,
ItemIsPrivate
};
////////////////////////////////////////////////////////////////////////////////
/// Generic infrastructure used to implement specific visitors below.
...
...
@@ -1073,11 +1073,11 @@ fn check_expr_pat_type(&mut self, id: hir::HirId, span: Span) -> bool {
fn
check_def_id
(
&
mut
self
,
def_id
:
DefId
,
kind
:
&
str
,
descr
:
&
dyn
fmt
::
Display
)
->
bool
{
let
is_error
=
!
self
.item_is_accessible
(
def_id
);
if
is_error
{
self
.tcx
.sess
.struct_span_err
(
self
.span
,
&
format!
(
"{} `{}` is private"
,
kind
,
descr
))
.span_label
(
self
.span
,
&
format!
(
"private {}"
,
kind
))
.emit
(
);
self
.tcx
.sess
.emit_err
(
ItemIsPrivate
{
span
:
self
.span
,
kind
,
descr
:
descr
.to_string
(),
}
);
}
is_error
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录