Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
4773ded1
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,发现更多精彩内容 >>
提交
4773ded1
编写于
10月 28, 2019
作者:
A
Adam Perry
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Generate &core::panic::Location type in a single place.
上级
f1d942b3
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
12 addition
and
16 deletion
+12
-16
src/librustc/ty/context.rs
src/librustc/ty/context.rs
+10
-0
src/librustc_mir/const_eval.rs
src/librustc_mir/const_eval.rs
+1
-6
src/librustc_typeck/check/intrinsic.rs
src/librustc_typeck/check/intrinsic.rs
+1
-10
未找到文件。
src/librustc/ty/context.rs
浏览文件 @
4773ded1
...
...
@@ -8,6 +8,7 @@
use
crate
::
session
::
config
::{
BorrowckMode
,
OutputFilenames
};
use
crate
::
session
::
config
::
CrateType
;
use
crate
::
middle
;
use
crate
::
middle
::
lang_items
::
PanicLocationLangItem
;
use
crate
::
hir
::{
self
,
TraitCandidate
,
HirId
,
ItemKind
,
ItemLocalId
,
Node
};
use
crate
::
hir
::
def
::{
Res
,
DefKind
,
Export
};
use
crate
::
hir
::
def_id
::{
CrateNum
,
DefId
,
DefIndex
,
LOCAL_CRATE
};
...
...
@@ -1588,6 +1589,15 @@ pub fn is_bound_region_in_impl_item(
pub
fn
has_strict_asm_symbol_naming
(
&
self
)
->
bool
{
self
.sess.target.target.arch
.contains
(
"nvptx"
)
}
/// Returns `&'static core::panic::Location<'static>`.
pub
fn
caller_location_ty
(
&
self
)
->
Ty
<
'tcx
>
{
self
.mk_imm_ref
(
self
.lifetimes.re_static
,
self
.type_of
(
self
.require_lang_item
(
PanicLocationLangItem
,
None
))
.subst
(
*
self
,
self
.mk_substs
([
self
.lifetimes.re_static
.into
()]
.iter
())),
)
}
}
impl
<
'tcx
>
GlobalCtxt
<
'tcx
>
{
...
...
src/librustc_mir/const_eval.rs
浏览文件 @
4773ded1
...
...
@@ -9,7 +9,6 @@
use
rustc
::
hir
::
def
::
DefKind
;
use
rustc
::
hir
::
def_id
::
DefId
;
use
rustc
::
middle
::
lang_items
::
PanicLocationLangItem
;
use
rustc
::
mir
::
interpret
::{
ConstEvalErr
,
ErrorHandled
,
ScalarMaybeUndef
};
use
rustc
::
mir
;
use
rustc
::
ty
::{
self
,
Ty
,
TyCtxt
,
subst
::
Subst
};
...
...
@@ -559,11 +558,7 @@ pub fn const_caller_location<'tcx>(
trace!
(
"const_caller_location: {}:{}:{}"
,
file
,
line
,
col
);
let
mut
ecx
=
mk_eval_cx
(
tcx
,
DUMMY_SP
,
ty
::
ParamEnv
::
reveal_all
());
let
loc_ty
=
tcx
.mk_imm_ref
(
tcx
.lifetimes.re_static
,
tcx
.type_of
(
tcx
.require_lang_item
(
PanicLocationLangItem
,
None
))
.subst
(
tcx
,
tcx
.mk_substs
([
tcx
.lifetimes.re_static
.into
()]
.iter
())),
);
let
loc_ty
=
tcx
.caller_location_ty
();
let
loc_place
=
ecx
.alloc_caller_location
(
file
,
line
,
col
);
intern_const_alloc_recursive
(
&
mut
ecx
,
None
,
loc_place
)
.unwrap
();
let
loc_const
=
ty
::
Const
{
...
...
src/librustc_typeck/check/intrinsic.rs
浏览文件 @
4773ded1
//! Type-checking for the rust-intrinsic and platform-intrinsic
//! intrinsics that the compiler exposes.
use
rustc
::
middle
::
lang_items
::
PanicLocationLangItem
;
use
rustc
::
traits
::{
ObligationCause
,
ObligationCauseCode
};
use
rustc
::
ty
::{
self
,
TyCtxt
,
Ty
};
use
rustc
::
ty
::
subst
::
Subst
;
...
...
@@ -148,15 +147,7 @@ pub fn check_intrinsic_type(tcx: TyCtxt<'_>, it: &hir::ForeignItem) {
],
tcx
.types.usize
)
}
"rustc_peek"
=>
(
1
,
vec!
[
param
(
0
)],
param
(
0
)),
"caller_location"
=>
(
0
,
vec!
[],
tcx
.mk_imm_ref
(
tcx
.lifetimes.re_static
,
tcx
.type_of
(
tcx
.require_lang_item
(
PanicLocationLangItem
,
None
))
.subst
(
tcx
,
tcx
.mk_substs
([
tcx
.lifetimes.re_static
.into
()]
.iter
())),
),
),
"caller_location"
=>
(
0
,
vec!
[],
tcx
.caller_location_ty
()),
"panic_if_uninhabited"
=>
(
1
,
Vec
::
new
(),
tcx
.mk_unit
()),
"init"
=>
(
1
,
Vec
::
new
(),
param
(
0
)),
"uninit"
=>
(
1
,
Vec
::
new
(),
param
(
0
)),
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录