Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
875c9ce3
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,发现更多精彩内容 >>
提交
875c9ce3
编写于
1月 31, 2014
作者:
P
Patrick Walton
提交者:
Huon Wilson
2月 02, 2014
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
libsyntax: Remove many uses of `token::ident_to_str`
上级
e534b565
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
49 addition
and
27 deletion
+49
-27
src/libsyntax/ext/expand.rs
src/libsyntax/ext/expand.rs
+23
-9
src/libsyntax/ext/tt/macro_parser.rs
src/libsyntax/ext/tt/macro_parser.rs
+11
-6
src/libsyntax/ext/tt/transcribe.rs
src/libsyntax/ext/tt/transcribe.rs
+8
-6
src/libsyntax/parse/parser.rs
src/libsyntax/parse/parser.rs
+4
-4
src/libsyntax/print/pprust.rs
src/libsyntax/print/pprust.rs
+3
-2
未找到文件。
src/libsyntax/ext/expand.rs
浏览文件 @
875c9ce3
...
...
@@ -22,8 +22,8 @@
use
ext
::
base
::
*
;
use
fold
::
*
;
use
parse
;
use
parse
::
token
::{
fresh_mark
,
fresh_name
,
intern
};
use
parse
::
token
;
use
parse
::
token
::{
fresh_mark
,
fresh_name
,
ident_to_str
,
intern
};
use
visit
;
use
visit
::
Visitor
;
use
util
::
small_vector
::
SmallVector
;
...
...
@@ -310,11 +310,12 @@ pub fn expand_item_mac(it: @ast::Item, fld: &mut MacroExpander)
Some
(
&
NormalTT
(
ref
expander
,
span
))
=>
{
if
it
.ident.name
!=
parse
::
token
::
special_idents
::
invalid
.name
{
let
string
=
token
::
get_ident
(
it
.ident.name
);
fld
.cx
.span_err
(
pth
.span
,
format!
(
"macro {}! expects no ident argument,
\
given '{}'"
,
extnamestr
.get
(),
ident_to_str
(
&
it
.ident
)));
string
.get
(
)));
return
SmallVector
::
zero
();
}
fld
.cx
.bt_push
(
ExpnInfo
{
...
...
@@ -411,7 +412,10 @@ fn load_extern_macros(crate: &ast::ViewItem, fld: &mut MacroExpander) {
let
MacroCrate
{
lib
,
cnum
}
=
fld
.cx.loader
.load_crate
(
crate
);
let
crate_name
=
match
crate
.node
{
ast
::
ViewItemExternMod
(
ref
name
,
_
,
_
)
=>
token
::
ident_to_str
(
name
),
ast
::
ViewItemExternMod
(
ref
name
,
_
,
_
)
=>
{
let
string
=
token
::
get_ident
(
name
.name
);
string
.get
()
.to_str
()
},
_
=>
unreachable!
(),
};
let
name
=
format!
(
"<{} macros>"
,
crate_name
);
...
...
@@ -957,7 +961,7 @@ mod test {
use
fold
::
*
;
use
ext
::
base
::{
CrateLoader
,
MacroCrate
};
use
parse
;
use
parse
::
token
::{
fresh_mark
,
gensym
,
intern
,
ident_to_str
};
use
parse
::
token
::{
fresh_mark
,
gensym
,
intern
};
use
parse
::
token
;
use
util
::
parser_testing
::{
string_to_crate
,
string_to_crate_and_sess
};
use
util
::
parser_testing
::{
string_to_pat
,
string_to_tts
,
strs_to_idents
};
...
...
@@ -1272,9 +1276,12 @@ fn run_renaming_test(t: &RenamingTest, test_idx: uint) {
println!
(
"uh oh, matches but shouldn't:"
);
println!
(
"varref: {:?}"
,
varref
);
// good lord, you can't make a path with 0 segments, can you?
let
string
=
token
::
get_ident
(
varref
.segments
[
0
]
.identifier
.name
);
println!
(
"varref's first segment's uint: {}, and string:
\"
{}
\"
"
,
varref
.segments
[
0
]
.identifier.name
,
ident_to_str
(
&
varref
.segments
[
0
]
.identifier
));
string
.get
(
));
println!
(
"binding: {:?}"
,
bindings
[
binding_idx
]);
ast_util
::
display_sctable
(
get_sctable
());
}
...
...
@@ -1296,7 +1303,10 @@ fn run_renaming_test(t: &RenamingTest, test_idx: uint) {
let
bindings
=
name_finder
.ident_accumulator
;
let
cxbinds
:
~
[
&
ast
::
Ident
]
=
bindings
.iter
()
.filter
(|
b
|{
@
"xx"
==
(
ident_to_str
(
*
b
))})
.collect
();
bindings
.iter
()
.filter
(|
b
|
{
let
string
=
token
::
get_ident
(
b
);
"xx"
==
string
.get
()
})
.collect
();
let
cxbind
=
match
cxbinds
{
[
b
]
=>
b
,
_
=>
fail
!
(
"expected just one binding for ext_cx"
)
...
...
@@ -1308,9 +1318,13 @@ fn run_renaming_test(t: &RenamingTest, test_idx: uint) {
let
varrefs
=
path_finder
.path_accumulator
;
// the xx binding should bind all of the xx varrefs:
for
(
idx
,
v
)
in
varrefs
.iter
()
.filter
(|
p
|{
p
.segments
.len
()
==
1
&&
(
@
"xx"
==
(
ident_to_str
(
&
p
.segments
[
0
]
.identifier
)))
})
.enumerate
()
{
for
(
idx
,
v
)
in
varrefs
.iter
()
.filter
(|
p
|{
p
.segments
.len
()
==
1
&&
{
let
string
=
token
::
get_ident
(
p
.segments
[
0
]
.identifier.name
);
"xx"
==
string
.get
()
}
})
.enumerate
()
{
if
(
mtwt_resolve
(
v
.segments
[
0
]
.identifier
)
!=
resolved_binding
)
{
println!
(
"uh oh, xx binding didn't match xx varref:"
);
println!
(
"this is xx varref
\\
# {:?}"
,
idx
);
...
...
src/libsyntax/ext/tt/macro_parser.rs
浏览文件 @
875c9ce3
...
...
@@ -18,7 +18,7 @@
use
parse
::
ParseSess
;
use
parse
::
attr
::
ParserAttr
;
use
parse
::
parser
::{
LifetimeAndTypesWithoutColons
,
Parser
};
use
parse
::
token
::{
Token
,
EOF
,
to_str
,
Nonterminal
,
get_ident_interner
,
ident_to_str
};
use
parse
::
token
::{
Token
,
EOF
,
to_str
,
Nonterminal
,
get_ident_interner
};
use
parse
::
token
;
use
std
::
hashmap
::
HashMap
;
...
...
@@ -183,8 +183,9 @@ fn n_rec(p_s: @ParseSess, m: &Matcher, res: &[@NamedMatch],
node
:
MatchNonterminal
(
ref
bind_name
,
_
,
idx
),
span
:
sp
}
=>
{
if
ret_val
.contains_key
(
bind_name
)
{
p_s
.span_diagnostic
.span_fatal
(
sp
,
"Duplicated bind name: "
+
ident_to_str
(
bind_name
))
let
string
=
token
::
get_ident
(
bind_name
.name
);
p_s
.span_diagnostic
.span_fatal
(
sp
,
"Duplicated bind name: "
+
string
.get
())
}
ret_val
.insert
(
*
bind_name
,
res
[
idx
]);
}
...
...
@@ -364,8 +365,11 @@ pub fn parse(sess: @ParseSess,
let
nts
=
bb_eis
.map
(|
ei
|
{
match
ei
.elts
[
ei
.idx
]
.node
{
MatchNonterminal
(
ref
bind
,
ref
name
,
_
)
=>
{
format!
(
"{} ('{}')"
,
ident_to_str
(
name
),
ident_to_str
(
bind
))
let
bind_string
=
token
::
get_ident
(
bind
.name
);
let
name_string
=
token
::
get_ident
(
name
.name
);
format!
(
"{} ('{}')"
,
name_string
.get
(),
bind_string
.get
())
}
_
=>
fail
!
()
}
})
.connect
(
" or "
);
...
...
@@ -388,8 +392,9 @@ pub fn parse(sess: @ParseSess,
let
mut
ei
=
bb_eis
.pop
()
.unwrap
();
match
ei
.elts
[
ei
.idx
]
.node
{
MatchNonterminal
(
_
,
ref
name
,
idx
)
=>
{
let
name_string
=
token
::
get_ident
(
name
.name
);
ei
.matches
[
idx
]
.push
(
@
MatchedNonterminal
(
parse_nt
(
&
mut
rust_parser
,
ident_to_str
(
name
))));
parse_nt
(
&
mut
rust_parser
,
name_string
.get
(
))));
ei
.idx
+=
1u
;
}
_
=>
fail
!
()
...
...
src/libsyntax/ext/tt/transcribe.rs
浏览文件 @
875c9ce3
...
...
@@ -14,7 +14,7 @@
use
diagnostic
::
SpanHandler
;
use
ext
::
tt
::
macro_parser
::{
NamedMatch
,
MatchedSeq
,
MatchedNonterminal
};
use
parse
::
token
::{
EOF
,
INTERPOLATED
,
IDENT
,
Token
,
NtIdent
};
use
parse
::
token
::{
ident_to_str
}
;
use
parse
::
token
;
use
parse
::
lexer
::
TokenAndSpan
;
use
std
::
cell
::{
Cell
,
RefCell
};
...
...
@@ -122,9 +122,10 @@ fn lookup_cur_matched(r: &TtReader, name: Ident) -> @NamedMatch {
match
matched_opt
{
Some
(
s
)
=>
lookup_cur_matched_by_matched
(
r
,
s
),
None
=>
{
let
name_string
=
token
::
get_ident
(
name
.name
);
r
.sp_diag
.span_fatal
(
r
.cur_span
.get
(),
format!
(
"unknown macro variable `{}`"
,
ident_to_str
(
&
name
)));
name_string
.get
(
)));
}
}
}
...
...
@@ -145,11 +146,11 @@ fn lis_merge(lhs: LockstepIterSize, rhs: LockstepIterSize) -> LockstepIterSize {
LisContradiction
(
_
)
=>
rhs
.clone
(),
LisConstraint
(
r_len
,
_
)
if
l_len
==
r_len
=>
lhs
.clone
(),
LisConstraint
(
r_len
,
ref
r_id
)
=>
{
let
l_n
=
ident_to_str
(
l_id
);
let
r_n
=
ident_to_str
(
r_id
);
let
l_n
=
token
::
get_ident
(
l_id
.name
);
let
r_n
=
token
::
get_ident
(
r_id
.name
);
LisContradiction
(
format!
(
"Inconsistent lockstep iteration:
\
'{}' has {} items, but '{}' has {}"
,
l_n
,
l_len
,
r_n
,
r_len
))
l_n
.get
(),
l_len
,
r_n
.get
()
,
r_len
))
}
}
}
...
...
@@ -313,10 +314,11 @@ pub fn tt_next_token(r: &TtReader) -> TokenAndSpan {
return
ret_val
;
}
MatchedSeq
(
..
)
=>
{
let
string
=
token
::
get_ident
(
ident
.name
);
r
.sp_diag
.span_fatal
(
r
.cur_span
.get
(),
/* blame the macro writer */
format!
(
"variable '{}' is still repeating at this depth"
,
ident_to_str
(
&
ident
)));
string
.get
(
)));
}
}
}
...
...
src/libsyntax/parse/parser.rs
浏览文件 @
875c9ce3
...
...
@@ -72,9 +72,8 @@
use
parse
::
lexer
::
TokenAndSpan
;
use
parse
::
obsolete
::
*
;
use
parse
::
token
::{
INTERPOLATED
,
InternedString
,
can_begin_expr
,
get_ident
};
use
parse
::
token
::{
get_ident_interner
,
ident_to_str
,
is_ident
};
use
parse
::
token
::{
is_ident_or_path
,
is_plain_ident
,
keywords
};
use
parse
::
token
::{
special_idents
,
token_to_binop
};
use
parse
::
token
::{
get_ident_interner
,
is_ident
,
is_ident_or_path
};
use
parse
::
token
::{
is_plain_ident
,
keywords
,
special_idents
,
token_to_binop
};
use
parse
::
token
;
use
parse
::{
new_sub_parser_from_file
,
ParseSess
};
use
opt_vec
;
...
...
@@ -4534,7 +4533,8 @@ fn parse_opt_abis(&mut self) -> Option<AbiSet> {
token
::
LIT_STR
(
s
)
|
token
::
LIT_STR_RAW
(
s
,
_
)
=>
{
self
.bump
();
let
the_string
=
ident_to_str
(
&
s
);
let
identifier_string
=
token
::
get_ident
(
s
.name
);
let
the_string
=
identifier_string
.get
();
let
mut
abis
=
AbiSet
::
empty
();
for
word
in
the_string
.words
()
{
match
abi
::
lookup
(
word
)
{
...
...
src/libsyntax/print/pprust.rs
浏览文件 @
875c9ce3
...
...
@@ -19,7 +19,7 @@
use
codemap
;
use
diagnostic
;
use
parse
::
classify
::
expr_is_simple_block
;
use
parse
::
token
::{
IdentInterner
,
i
dent_to_str
,
i
nterner_get
};
use
parse
::
token
::{
IdentInterner
,
interner_get
};
use
parse
::{
comments
,
token
};
use
parse
;
use
print
::
pp
::{
break_offset
,
word
,
space
,
zerobreak
,
hardbreak
};
...
...
@@ -1539,7 +1539,8 @@ fn print_local(s: &mut State, loc: &ast::Local) {
}
pub
fn
print_ident
(
s
:
&
mut
State
,
ident
:
ast
::
Ident
)
{
word
(
&
mut
s
.s
,
ident_to_str
(
&
ident
));
let
string
=
token
::
get_ident
(
ident
.name
);
word
(
&
mut
s
.s
,
string
.get
());
}
pub
fn
print_name
(
s
:
&
mut
State
,
name
:
ast
::
Name
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录