Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
c170dcf0
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,发现更多精彩内容 >>
提交
c170dcf0
编写于
9月 06, 2021
作者:
E
Ellen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
tidy
上级
47b16f4a
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
20 addition
and
22 deletion
+20
-22
compiler/rustc_privacy/src/lib.rs
compiler/rustc_privacy/src/lib.rs
+3
-3
compiler/rustc_trait_selection/src/traits/const_evaluatable.rs
...ler/rustc_trait_selection/src/traits/const_evaluatable.rs
+14
-16
compiler/rustc_trait_selection/src/traits/object_safety.rs
compiler/rustc_trait_selection/src/traits/object_safety.rs
+3
-3
未找到文件。
compiler/rustc_privacy/src/lib.rs
浏览文件 @
c170dcf0
...
...
@@ -159,9 +159,9 @@ fn visit_abstract_const_expr(
self
.visit_const
(
leaf
)
}
ACNode
::
Cast
(
_
,
ty
)
=>
self
.visit_ty
(
ty
),
ACNode
::
Binop
(
..
)
|
ACNode
::
UnaryOp
(
..
)
|
ACNode
::
FunctionCall
(
_
,
_
)
=>
ControlFlow
::
CONTINUE
,
ACNode
::
Binop
(
..
)
|
ACNode
::
UnaryOp
(
..
)
|
ACNode
::
FunctionCall
(
_
,
_
)
=>
{
ControlFlow
::
CONTINUE
}
})
}
...
...
compiler/rustc_trait_selection/src/traits/const_evaluatable.rs
浏览文件 @
c170dcf0
...
...
@@ -102,9 +102,9 @@ enum FailureKind {
ControlFlow
::
CONTINUE
}
Node
::
Binop
(
_
,
_
,
_
)
|
Node
::
UnaryOp
(
_
,
_
)
|
Node
::
FunctionCall
(
_
,
_
)
=>
ControlFlow
::
CONTINUE
,
Node
::
Binop
(
_
,
_
,
_
)
|
Node
::
UnaryOp
(
_
,
_
)
|
Node
::
FunctionCall
(
_
,
_
)
=>
{
ControlFlow
::
CONTINUE
}
});
match
failure_kind
{
...
...
@@ -348,8 +348,8 @@ fn recurse_build(&mut self, node: thir::ExprId) -> Result<NodeId, ErrorReported>
&
ExprKind
::
PlaceTypeAscription
{
source
,
..
}
|
&
ExprKind
::
ValueTypeAscription
{
source
,
..
}
=>
self
.recurse_build
(
source
)
?
,
// subtle: associated consts are literals this arm handles
// `<T as Trait>::ASSOC` as well as `12`
// subtle: associated consts are literals this arm handles
// `<T as Trait>::ASSOC` as well as `12`
&
ExprKind
::
Literal
{
literal
,
..
}
|
&
ExprKind
::
StaticRef
{
literal
,
..
}
=>
self
.add_node
(
Node
::
Leaf
(
literal
),
node
.span
),
...
...
@@ -381,10 +381,10 @@ fn recurse_build(&mut self, node: thir::ExprId) -> Result<NodeId, ErrorReported>
// }
// ```
ExprKind
::
Block
{
body
:
thir
::
Block
{
stmts
:
box
[],
expr
:
Some
(
e
),
..
}}
=>
self
.recurse_build
(
*
e
)
?
,
// ExprKind::Use happens when a `hir::ExprKind::Cast` is a
// ExprKind::Use happens when a `hir::ExprKind::Cast` is a
// "coercion cast" i.e. using a coercion or is a no-op.
// this is important so that `N as usize as usize` doesnt unify with `N as usize`
&
ExprKind
::
Use
{
source
}
&
ExprKind
::
Use
{
source
}
|
&
ExprKind
::
Cast
{
source
}
=>
{
let
arg
=
self
.recurse_build
(
source
)
?
;
self
.add_node
(
Node
::
Cast
(
arg
,
node
.ty
),
node
.span
)
...
...
@@ -404,7 +404,7 @@ fn recurse_build(&mut self, node: thir::ExprId) -> Result<NodeId, ErrorReported>
|
ExprKind
::
Field
{
..
}
|
ExprKind
::
ConstBlock
{
..
}
|
ExprKind
::
Adt
(
_
)
=>
return
self
.error
(
Some
(
node
.span
),
Some
(
node
.span
),
"unsupported operation in generic constant, this may be supported in the future"
,
)
.map
(|
never
|
never
),
...
...
@@ -417,7 +417,7 @@ fn recurse_build(&mut self, node: thir::ExprId) -> Result<NodeId, ErrorReported>
|
ExprKind
::
Assign
{
..
}
|
ExprKind
::
LogicalOp
{
..
}
|
ExprKind
::
Unary
{
..
}
//
|
ExprKind
::
Binary
{
..
}
// we handle valid unary/binary ops above
|
ExprKind
::
Binary
{
..
}
// we handle valid unary/binary ops above
|
ExprKind
::
Break
{
..
}
|
ExprKind
::
Continue
{
..
}
|
ExprKind
::
If
{
..
}
...
...
@@ -592,16 +592,14 @@ pub(super) fn try_unify<'tcx>(
&&
iter
::
zip
(
a_args
,
b_args
)
.all
(|(
&
an
,
&
bn
)|
try_unify
(
tcx
,
a
.subtree
(
an
),
b
.subtree
(
bn
)))
}
(
Node
::
Cast
(
a_operand
,
a_ty
),
Node
::
Cast
(
b_operand
,
b_ty
))
if
(
a_ty
==
b_ty
)
=>
{
(
Node
::
Cast
(
a_operand
,
a_ty
),
Node
::
Cast
(
b_operand
,
b_ty
))
if
(
a_ty
==
b_ty
)
=>
{
try_unify
(
tcx
,
a
.subtree
(
a_operand
),
b
.subtree
(
b_operand
))
}
// use this over `_ => false` to make adding variants to `Node` less error prone
(
Node
::
Cast
(
..
),
_
)
|
(
Node
::
FunctionCall
(
..
),
_
)
|
(
Node
::
UnaryOp
(
..
),
_
)
|
(
Node
::
Binop
(
..
),
_
)
(
Node
::
Cast
(
..
),
_
)
|
(
Node
::
FunctionCall
(
..
),
_
)
|
(
Node
::
UnaryOp
(
..
),
_
)
|
(
Node
::
Binop
(
..
),
_
)
|
(
Node
::
Leaf
(
..
),
_
)
=>
false
,
}
}
compiler/rustc_trait_selection/src/traits/object_safety.rs
浏览文件 @
c170dcf0
...
...
@@ -844,9 +844,9 @@ fn visit_unevaluated_const(
self
.visit_const
(
leaf
)
}
Node
::
Cast
(
_
,
ty
)
=>
self
.visit_ty
(
ty
),
Node
::
Binop
(
..
)
|
Node
::
UnaryOp
(
..
)
|
Node
::
FunctionCall
(
_
,
_
)
=>
ControlFlow
::
CONTINUE
,
Node
::
Binop
(
..
)
|
Node
::
UnaryOp
(
..
)
|
Node
::
FunctionCall
(
_
,
_
)
=>
{
ControlFlow
::
CONTINUE
}
})
}
else
{
ControlFlow
::
CONTINUE
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录