Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
5f95766a
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,发现更多精彩内容 >>
提交
5f95766a
编写于
6月 04, 2011
作者:
L
Lindsey Kuper
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Remove redundant 'fail' exprs and dead code; use sess.bug or
sess.span_err instead of 'fail'. (issue #444)
上级
53ea2a47
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
27 addition
and
67 deletion
+27
-67
src/comp/middle/resolve.rs
src/comp/middle/resolve.rs
+5
-7
src/comp/middle/trans.rs
src/comp/middle/trans.rs
+21
-48
src/comp/middle/ty.rs
src/comp/middle/ty.rs
+0
-3
src/comp/middle/typeck.rs
src/comp/middle/typeck.rs
+1
-9
未找到文件。
src/comp/middle/resolve.rs
浏览文件 @
5f95766a
...
...
@@ -308,7 +308,6 @@ fn walk_pat(&env e, &list[scope] sc, &@ast::pat pat) {
case
(
_
)
{
e
.sess
.span_err
(
p
.span
,
"not a tag variant: "
+
str
::
connect
(
p
.node.idents
,
"::"
));
fail
;
}
}
for
(
@
ast
::
pat
child
in
children
)
{
...
...
@@ -412,7 +411,6 @@ fn follow_import(&env e, &list[scope] sc, vec[ident] path, &span sp)
case
(
_
)
{
e
.sess
.span_err
(
sp
,
str
::
connect
(
path
,
"::"
)
+
" does not name a module."
);
fail
;
}
}
}
...
...
@@ -508,12 +506,13 @@ fn lookup_in_scope_strict(&env e, list[scope] sc, &span sp, &ident id,
alt
(
lookup_in_scope
(
e
,
sc
,
sp
,
id
,
ns
))
{
case
(
none
)
{
unresolved
(
e
,
sp
,
id
,
ns_name
(
ns
));
fail
;
}
case
(
some
(
?
d
))
{
ret
d
;
}
}
fail
;
// fools the return-checker
}
fn
scope_is_fn
(
&
scope
sc
)
->
bool
{
...
...
@@ -640,7 +639,6 @@ fn in_scope(&env e, &span sp, &ident id, &scope s, namespace ns)
}
}
e
.sess
.bug
(
"reached unreachable code in lookup_in_scope"
);
// sigh
fail
;
}
fn
lookup_in_ty_params
(
&
ident
id
,
&
vec
[
ast
::
ty_param
]
ty_params
)
...
...
@@ -790,12 +788,13 @@ fn lookup_in_mod_strict(&env e, def m, &span sp, &ident id,
alt
(
lookup_in_mod
(
e
,
m
,
sp
,
id
,
ns
,
dr
))
{
case
(
none
)
{
unresolved
(
e
,
sp
,
id
,
ns_name
(
ns
));
fail
;
}
case
(
some
(
?
d
))
{
ret
d
;
}
}
fail
;
// fools the return-checker
}
fn
lookup_in_mod
(
&
env
e
,
def
m
,
&
span
sp
,
&
ident
id
,
namespace
ns
,
dir
dr
)
...
...
@@ -855,7 +854,7 @@ fn lookup_import(&env e, def_id defid, namespace ns) -> option::t[def] {
case
(
ns_module
)
{
md
}
};
}
}
fail
;
fail
;
// fools the return-checker
}
...
...
@@ -915,7 +914,6 @@ fn l_i_m_r(&env e, &def m, &span sp, &ident id,
}
e
.sess
.span_err
(
sp
,
"'"
+
id
+
"' is glob-imported from"
+
" multiple different modules."
);
fail
;
}
}
// since we don't know what names we have in advance,
...
...
src/comp/middle/trans.rs
浏览文件 @
5f95766a
...
...
@@ -715,7 +715,6 @@ fn type_of(&@crate_ctxt cx, &span sp, &ty::t t) -> TypeRef {
cx
.sess
.span_err
(
sp
,
"type_of() called on a type with dynamic size: "
+
ty
::
ty_to_str
(
cx
.tcx
,
t
));
fail
;
}
ret
type_of_inner
(
cx
,
sp
,
t
);
...
...
@@ -937,14 +936,14 @@ fn type_of_inner(&@crate_ctxt cx, &span sp, &ty::t t) -> TypeRef {
llty
=
abs_pair
;
}
case
(
ty
::
ty_var
(
_
))
{
cx
.tcx.sess
.span_err
(
sp
,
"t
y_var in trans::type_of
"
);
cx
.tcx.sess
.span_err
(
sp
,
"t
rans::type_of called on ty_var
"
);
}
case
(
ty
::
ty_param
(
_
))
{
llty
=
T_i8
();
}
case
(
ty
::
ty_bound_param
(
_
))
{
log_err
"ty_bound_param in trans::type_of"
;
fail
;
cx
.tcx.sess
.span_err
(
sp
,
"trans::type_of called on ty_bound_param"
)
;
}
case
(
ty
::
ty_type
)
{
llty
=
T_ptr
(
T_tydesc
(
cx
.tn
));
}
}
...
...
@@ -1212,21 +1211,12 @@ fn find_scope_cx(&@block_ctxt cx) -> @block_ctxt {
be
find_scope_cx
(
b
);
}
case
(
parent_none
)
{
fail
;
cx
.fcx.lcx.ccx.sess
.bug
(
"trans::find_scope_cx() "
+
"called on parentless block_ctxt"
);
}
}
}
fn
find_outer_scope_cx
(
&@
block_ctxt
cx
)
->
@
block_ctxt
{
auto
scope_cx
=
find_scope_cx
(
cx
);
alt
(
cx
.parent
)
{
case
(
parent_some
(
?
b
))
{
be
find_scope_cx
(
b
);
}
case
(
parent_none
)
{
fail
;
}
}
fail
;
// fools the return-checker
}
fn
umax
(
&@
block_ctxt
cx
,
ValueRef
a
,
ValueRef
b
)
->
ValueRef
{
...
...
@@ -1320,8 +1310,8 @@ fn simplifier(@crate_ctxt ccx, ty::t typ) -> ty::t {
// Computes the size of the data part of a non-dynamically-sized tag.
fn
static_size_of_tag
(
&@
crate_ctxt
cx
,
&
span
sp
,
&
ty
::
t
t
)
->
uint
{
if
(
ty
::
type_has_dynamic_size
(
cx
.tcx
,
t
))
{
log_err
"dynamically sized type passed to static_size_of_tag()"
;
fail
;
cx
.tcx.sess
.span_err
(
sp
,
"dynamically sized type passed to "
+
"static_size_of_tag()"
)
;
}
if
(
cx
.tag_sizes
.contains_key
(
t
))
{
...
...
@@ -1336,8 +1326,8 @@ fn static_size_of_tag(&@crate_ctxt cx, &span sp, &ty::t t) -> uint {
subtys
=
subtys_
;
}
case
(
_
)
{
log_err
"non-tag passed to static_size_of_tag()"
;
fail
;
cx
.tcx.sess
.span_err
(
sp
,
"non-tag passed to "
+
"static_size_of_tag()"
)
;
}
}
...
...
@@ -2570,7 +2560,8 @@ fn make_scalar_cmp_glue(&@block_ctxt cx, ValueRef lhs, ValueRef rhs,
}
case
(
_
)
{
// Should never get here, because t is scalar.
fail
;
cx
.fcx.lcx.ccx.sess
.bug
(
"non-scalar type passed to "
+
"make_scalar_cmp_glue"
);
}
}
}
...
...
@@ -2812,7 +2803,6 @@ fn iter_boxpp(@block_ctxt cx,
j
+=
1
;
}
}
case
(
_
)
{
fail
;
}
}
variant_cx
.build
.Br
(
next_cx
.llbb
);
...
...
@@ -2984,7 +2974,6 @@ fn iter_sequence_body(@block_ctxt cx,
cx
.fcx.lcx.ccx.sess
.bug
(
"unexpected type in "
+
"trans::iter_sequence: "
+
ty
::
ty_to_str
(
cx
.fcx.lcx.ccx.tcx
,
t
));
fail
;
}
}
}
...
...
@@ -3329,7 +3318,6 @@ fn copy_val(&@block_ctxt cx,
cx
.fcx.lcx.ccx.sess
.bug
(
"unexpected type in trans::copy_val: "
+
ty
::
ty_to_str
(
cx
.fcx.lcx.ccx.tcx
,
t
));
fail
;
}
// This works like copy_val, except that it deinitializes the source.
...
...
@@ -3367,7 +3355,6 @@ fn move_val(&@block_ctxt cx,
cx
.fcx.lcx.ccx.sess
.bug
(
"unexpected type in trans::move_val: "
+
ty
::
ty_to_str
(
cx
.fcx.lcx.ccx.tcx
,
t
));
fail
;
}
...
...
@@ -3490,12 +3477,11 @@ fn trans_unary(&@block_ctxt cx, ast::unop op,
ret
res
(
sub
.bcx
,
box
);
}
case
(
ast
::
deref
)
{
log_err
"deref expressions should have been translated using "
+
"trans_lval(), not trans_unary()"
;
fail
;
cx
.fcx.lcx.ccx.sess
.bug
(
"deref expressions should have been "
+
"translated using trans_lval(), not "
+
"trans_unary()"
)
;
}
}
fail
;
}
fn
trans_compare
(
&@
block_ctxt
cx0
,
ast
::
binop
op
,
&
ty
::
t
t0
,
...
...
@@ -3659,7 +3645,6 @@ fn trans_eager_binop(&@block_ctxt cx, ast::binop op, &ty::t intype,
ret
trans_compare
(
cx
,
op
,
intype
,
lhs
,
rhs
);
}
}
fail
;
}
fn
autoderef
(
&@
block_ctxt
cx
,
ValueRef
v
,
&
ty
::
t
t
)
->
result
{
...
...
@@ -3783,7 +3768,6 @@ fn trans_binary(&@block_ctxt cx, ast::binop op,
autoderefed_ty
(
cx
.fcx.lcx.ccx
,
lhty
),
lhs
.val
,
rhs
.val
);
}
}
fail
;
}
fn
join_results
(
&@
block_ctxt
parent_cx
,
...
...
@@ -4211,7 +4195,6 @@ fn trans_for_each(&@block_ctxt cx,
ret
res
(
r
.bcx
,
C_nil
());
}
}
fail
;
}
...
...
@@ -4325,8 +4308,6 @@ fn trans_pat_match(&@block_ctxt cx, &@ast::pat pat, ValueRef llval,
ret
res
(
matched_cx
,
llval
);
}
}
fail
;
}
fn
trans_pat_binding
(
&@
block_ctxt
cx
,
&@
ast
::
pat
pat
,
...
...
@@ -4650,7 +4631,6 @@ fn trans_field(&@block_ctxt cx, &span sp, ValueRef v, &ty::t t0,
}
case
(
_
)
{
cx
.fcx.lcx.ccx.sess
.unimpl
(
"field variant in trans_field"
);}
}
fail
;
}
fn
trans_index
(
&@
block_ctxt
cx
,
&
span
sp
,
&@
ast
::
expr
base
,
...
...
@@ -4747,7 +4727,9 @@ fn trans_lval(&@block_ctxt cx, &@ast::expr e) -> lval_result {
}
case
(
_
)
{
// Shouldn't happen.
fail
;
cx
.fcx.lcx.ccx.sess
.bug
(
"trans_lval called on expr_self_method in a context"
+
"without llself"
);
}
}
...
...
@@ -4758,7 +4740,6 @@ fn trans_lval(&@block_ctxt cx, &@ast::expr e) -> lval_result {
+
pretty
::
pprust
::
expr_to_str
(
e
));
}
}
fail
;
}
fn
int_cast
(
&@
block_ctxt
bcx
,
TypeRef
lldsttype
,
TypeRef
llsrctype
,
...
...
@@ -5898,7 +5879,6 @@ fn trans_log(int lvl, &@block_ctxt cx, &@ast::expr e) -> result {
cx
.fcx.lcx.ccx.sess
.span_err
(
e
.span
,
"log called on unsupported type "
+
ty
::
ty_to_str
(
cx
.fcx.lcx.ccx.tcx
,
e_ty
));
fail
;
}
}
}
...
...
@@ -6017,7 +5997,9 @@ fn trans_break_cont(&@block_ctxt cx, bool to_end) -> result {
}
}
}
fail
;
// If we get here without returning, it's a bug
cx
.fcx.lcx.ccx.sess
.bug
(
"in trans::trans_break_cont()"
);
}
fn
trans_break
(
&@
block_ctxt
cx
)
->
result
{
...
...
@@ -6085,7 +6067,6 @@ fn trans_port(&@block_ctxt cx, &ast::ann ann) -> result {
}
case
(
_
)
{
cx
.fcx.lcx.ccx.sess
.bug
(
"non-port type in trans_port"
);
fail
;
}
}
...
...
@@ -6310,7 +6291,6 @@ fn trans_send(&@block_ctxt cx, &@ast::expr lhs, &@ast::expr rhs,
}
case
(
_
)
{
bcx
.fcx.lcx.ccx.sess
.bug
(
"non-chan type in trans_send"
);
fail
;
}
}
...
...
@@ -6432,7 +6412,6 @@ fn trans_anon_obj(&@block_ctxt cx, &span sp,
// TODO: everything else.
cx
.fcx.lcx.ccx.sess
.unimpl
(
"support for anonymous objects"
);
fail
;
}
fn
init_local
(
&@
block_ctxt
cx
,
&@
ast
::
local
local
)
->
result
{
...
...
@@ -6917,7 +6896,6 @@ fn arg_tys_of_fn(&@crate_ctxt ccx, ast::ann ann) -> vec[ty::arg] {
ret
arg_tys
;
}
}
fail
;
}
fn
ret_ty_of_fn_ty
(
&@
crate_ctxt
ccx
,
ty
::
t
t
)
->
ty
::
t
{
...
...
@@ -6926,7 +6904,6 @@ fn ret_ty_of_fn_ty(&@crate_ctxt ccx, ty::t t) -> ty::t {
ret
ret_ty
;
}
}
fail
;
}
...
...
@@ -7515,7 +7492,6 @@ fn decl_fn_and_pair(&@crate_ctxt ccx, &span sp,
}
case
(
_
)
{
ccx
.sess
.bug
(
"decl_fn_and_pair(): fn item doesn't have fn type!"
);
fail
;
}
}
...
...
@@ -7558,7 +7534,6 @@ fn native_fn_ty_param_count(&@crate_ctxt cx, &ast::def_id id) -> uint {
case
(
ast
::
native_item_ty
(
_
,
_
))
{
cx
.sess
.bug
(
"decl_native_fn_and_pair(): native fn isn't "
+
"actually a fn?!"
);
fail
;
}
case
(
ast
::
native_item_fn
(
_
,
_
,
_
,
?
tps
,
_
,
_
))
{
count
=
vec
::
len
[
ast
::
ty_param
](
tps
);
...
...
@@ -7574,7 +7549,6 @@ fn native_fn_wrapper_type(&@crate_ctxt cx, &span sp, uint ty_param_count,
ret
type_of_fn
(
cx
,
sp
,
ast
::
proto_fn
,
args
,
out
,
ty_param_count
);
}
}
fail
;
}
fn
decl_native_fn_and_pair
(
&@
crate_ctxt
ccx
,
...
...
@@ -8013,7 +7987,6 @@ fn find_main_fn(&@crate_ctxt cx) -> ValueRef {
cx
.sess
.err
(
"multiple main fns found"
);
}
}
fail
;
}
fn
trans_main_fn
(
@
local_ctxt
cx
,
ValueRef
crate_map
)
{
...
...
src/comp/middle/ty.rs
浏览文件 @
5f95766a
...
...
@@ -1895,7 +1895,6 @@ fn field_idx(&session::session sess, &span sp,
i
+=
1u
;
}
sess
.span_err
(
sp
,
"unknown field '"
+
id
+
"' of record"
);
fail
;
}
fn
method_idx
(
&
session
::
session
sess
,
&
span
sp
,
...
...
@@ -1908,7 +1907,6 @@ fn method_idx(&session::session sess, &span sp,
i
+=
1u
;
}
sess
.span_err
(
sp
,
"unknown method '"
+
id
+
"' of obj"
);
fail
;
}
fn
sort_methods
(
&
vec
[
method
]
meths
)
->
vec
[
method
]
{
...
...
@@ -2904,7 +2902,6 @@ fn tag_variants(&ctxt cx, &ast::def_id id) -> vec[variant_info] {
}
}
}
fail
;
// not reached
}
// Returns information about the tag variant with the given ID:
...
...
src/comp/middle/typeck.rs
浏览文件 @
5f95766a
...
...
@@ -102,7 +102,6 @@ fn substituter(@crate_ctxt ccx, vec[ty::t] supplied, ty::t typ) -> ty::t {
uint
::
to_str
(
ty_param_count
,
10u
)
+
" type parameter(s) but found "
+
uint
::
to_str
(
supplied_len
,
10u
)
+
" parameter(s)"
);
fail
;
}
if
(
!
ty
::
type_contains_bound_params
(
ccx
.tcx
,
typ
))
{
...
...
@@ -162,13 +161,11 @@ fn ty_param_count_and_ty_for_def(&@fn_ctxt fcx, &span sp, &ast::def defn)
case
(
ast
::
def_ty
(
_
))
{
fcx
.ccx.tcx.sess
.span_err
(
sp
,
"expected value but found type"
);
fail
;
}
case
(
_
)
{
// FIXME: handle other names.
fcx
.ccx.tcx.sess
.unimpl
(
"definition variant"
);
fail
;
}
}
}
...
...
@@ -332,7 +329,7 @@ fn instantiate(&ty::ctxt tcx,
case
(
_
)
{
tcx
.sess
.span_err
(
ast_ty
.span
,
"found type name used as a variable"
);
fail
;
}
}
}
cname
=
some
(
path_to_str
(
path
));
...
...
@@ -1041,7 +1038,6 @@ fn full(&@stmt_ctxt scx, &span sp, &ty::t expected, &ty::t actual,
// TODO: In the future, try returning "expected", reporting
// the error, and continue.
fail
;
}
}
}
...
...
@@ -1437,7 +1433,6 @@ fn pushdown_expr_full(&@stmt_ctxt scx, &ty::t expected, &@ast::expr e,
scx
.fcx.ccx.tcx.sess
.span_unimpl
(
e
.span
,
#
fmt
(
"type unification for expression variant: %s"
,
pretty
::
pprust
::
expr_to_str
(
e
)));
fail
;
}
}
}
...
...
@@ -1468,7 +1463,6 @@ fn wb_local(&@fn_ctxt fcx, &span sp, &@ast::local local) {
case
(
none
)
{
fcx
.ccx.tcx.sess
.span_err
(
sp
,
"unable to determine type of local: "
+
local
.ident
);
fail
;
}
case
(
some
(
?
lt
))
{
local_ty
=
lt
;
...
...
@@ -1774,7 +1768,6 @@ fn check_call_or_bind(&@stmt_ctxt scx, &@ast::expr f,
+
" instead having: "
+
ty_to_str
(
scx
.fcx.ccx.tcx
,
expr_ty
(
scx
.fcx.ccx.tcx
,
f
)));
fail
;
}
}
...
...
@@ -1903,7 +1896,6 @@ fn check_for_or_for_each(&@stmt_ctxt scx, &@ast::decl decl,
if
(
vec
::
len
[
@
ast
::
ty
](
pth
.node.types
)
>
0u
)
{
scx
.fcx.ccx.tcx.sess
.span_err
(
expr
.span
,
"this kind of value does not take type parameters"
);
fail
;
}
write
::
ty_only_fixup
(
scx
,
old_ann
.id
,
tpt
._1
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录