Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
91fe4ae0
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,发现更多精彩内容 >>
提交
91fe4ae0
编写于
4月 28, 2011
作者:
P
Patrick Walton
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
rustc: Joseph and the Amazing Technicolor Error Messages
上级
616ae95f
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
20 addition
and
21 deletion
+20
-21
src/comp/driver/session.rs
src/comp/driver/session.rs
+20
-21
未找到文件。
src/comp/driver/session.rs
浏览文件 @
91fe4ae0
...
...
@@ -3,6 +3,8 @@
import
util
.common.span
;
import
util
.common.ty_mach
;
import
std
._uint
;
import
std
.Term
;
import
std
.io
;
import
std
.map
;
tag
os
{
...
...
@@ -26,6 +28,17 @@
type
crate_metadata
=
rec
(
str
name
,
vec
[
u8
]
data
);
fn
emit_diagnostic
(
span
sp
,
str
msg
,
str
kind
,
u8
color
,
codemap
.codemap
cm
)
{
auto
lo
=
codemap
.lookup_pos
(
cm
,
sp
.lo
);
auto
hi
=
codemap
.lookup_pos
(
cm
,
sp
.hi
);
io
.stdout
()
.write_str
(
#
fmt
(
"%s:%u:%u:%u:%u: "
,
lo
.filename
,
lo
.line
,
lo
.col
,
hi
.line
,
hi
.col
));
Term
.fg
(
io
.stdout
()
.get_buf_writer
(),
color
);
io
.stdout
()
.write_str
(
#
fmt
(
"%s:"
,
kind
));
Term
.reset
(
io
.stdout
()
.get_buf_writer
());
io
.stdout
()
.write_str
(
#
fmt
(
" %s
\n
"
,
msg
));
}
state
obj
session
(
ast
.crate_num
cnum
,
cfg
targ
,
map
.hashmap
[
int
,
crate_metadata
]
crates
,
mutable
vec
[
@
ast
.meta_item
]
metadata
,
...
...
@@ -40,13 +53,8 @@ fn get_targ_crate_num() -> ast.crate_num {
}
fn
span_err
(
span
sp
,
str
msg
)
{
auto
lo
=
codemap
.lookup_pos
(
cm
,
sp
.lo
);
auto
hi
=
codemap
.lookup_pos
(
cm
,
sp
.hi
);
log_err
#
fmt
(
"%s:%u:%u:%u:%u: error: %s"
,
lo
.filename
,
lo
.line
,
lo
.col
,
hi
.line
,
hi
.col
,
msg
);
// FIXME: Use constants, but rustboot doesn't know how to export them.
emit_diagnostic
(
sp
,
msg
,
"error"
,
9u8
,
cm
);
fail
;
}
...
...
@@ -63,13 +71,8 @@ fn get_metadata() -> vec[@ast.meta_item] {
}
fn
span_warn
(
span
sp
,
str
msg
)
{
auto
lo
=
codemap
.lookup_pos
(
cm
,
sp
.lo
);
auto
hi
=
codemap
.lookup_pos
(
cm
,
sp
.hi
);
log_err
#
fmt
(
"%s:%u:%u:%u:%u: warning: %s"
,
lo
.filename
,
lo
.line
,
lo
.col
,
hi
.line
,
hi
.col
,
msg
);
// FIXME: Use constants, but rustboot doesn't know how to export them.
emit_diagnostic
(
sp
,
msg
,
"warning"
,
11u8
,
cm
);
}
fn
bug
(
str
msg
)
{
...
...
@@ -78,13 +81,9 @@ fn bug(str msg) {
}
fn
span_unimpl
(
span
sp
,
str
msg
)
{
auto
lo
=
codemap
.lookup_pos
(
cm
,
sp
.lo
);
auto
hi
=
codemap
.lookup_pos
(
cm
,
sp
.hi
);
log_err
#
fmt
(
"%s:%u:%u:%u:%u: error: unimplemented %s"
,
lo
.filename
,
lo
.line
,
lo
.col
,
hi
.line
,
hi
.col
,
msg
);
// FIXME: Use constants, but rustboot doesn't know how to export them.
emit_diagnostic
(
sp
,
"internal compiler error: unimplemented "
+
msg
,
"error"
,
9u8
,
cm
);
fail
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录