Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
84f45086
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,发现更多精彩内容 >>
未验证
提交
84f45086
编写于
4月 24, 2018
作者:
F
flip1995
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix tests
上级
121abd05
变更
4
显示空白变更内容
内联
并排
Showing
4 changed file
with
19 addition
and
19 deletion
+19
-19
src/libsyntax/attr.rs
src/libsyntax/attr.rs
+15
-15
src/libsyntax/feature_gate.rs
src/libsyntax/feature_gate.rs
+2
-2
src/test/compile-fail-fulldeps/auxiliary/macro_crate_test.rs
src/test/compile-fail-fulldeps/auxiliary/macro_crate_test.rs
+1
-1
src/test/run-pass-fulldeps/auxiliary/macro_crate_test.rs
src/test/run-pass-fulldeps/auxiliary/macro_crate_test.rs
+1
-1
未找到文件。
src/libsyntax/attr.rs
浏览文件 @
84f45086
...
...
@@ -15,7 +15,7 @@
pub
use
self
::
IntType
::
*
;
use
ast
;
use
ast
::{
AttrId
,
Attribute
,
Name
,
Ident
};
use
ast
::{
AttrId
,
Attribute
,
Name
,
Ident
,
Path
,
PathSegment
};
use
ast
::{
MetaItem
,
MetaItemKind
,
NestedMetaItem
,
NestedMetaItemKind
};
use
ast
::{
Lit
,
LitKind
,
Expr
,
ExprKind
,
Item
,
Local
,
Stmt
,
StmtKind
};
use
codemap
::{
BytePos
,
Spanned
,
respan
,
dummy_spanned
};
...
...
@@ -212,7 +212,7 @@ pub fn is_meta_item_list(&self) -> bool {
}
}
fn
name_from_path
(
path
:
&
ast
::
Path
)
->
Name
{
fn
name_from_path
(
path
:
&
Path
)
->
Name
{
path
.segments
.last
()
.expect
(
"empty path in attribute"
)
.ident.name
}
...
...
@@ -399,15 +399,15 @@ pub fn mk_name_value_item_str(ident: Ident, value: Spanned<Symbol>) -> MetaItem
}
pub
fn
mk_name_value_item
(
span
:
Span
,
ident
:
Ident
,
value
:
ast
::
Lit
)
->
MetaItem
{
MetaItem
{
ident
:
ast
::
Path
::
from_ident
(
ident
),
span
,
node
:
MetaItemKind
::
NameValue
(
value
)
}
MetaItem
{
ident
:
Path
::
from_ident
(
ident
),
span
,
node
:
MetaItemKind
::
NameValue
(
value
)
}
}
pub
fn
mk_list_item
(
span
:
Span
,
ident
:
Ident
,
items
:
Vec
<
NestedMetaItem
>
)
->
MetaItem
{
MetaItem
{
ident
:
ast
::
Path
::
from_ident
(
ident
),
span
,
node
:
MetaItemKind
::
List
(
items
)
}
MetaItem
{
ident
:
Path
::
from_ident
(
ident
),
span
,
node
:
MetaItemKind
::
List
(
items
)
}
}
pub
fn
mk_word_item
(
ident
:
Ident
)
->
MetaItem
{
MetaItem
{
ident
:
ast
::
Path
::
from_ident
(
ident
),
span
:
ident
.span
,
node
:
MetaItemKind
::
Word
}
MetaItem
{
ident
:
Path
::
from_ident
(
ident
),
span
:
ident
.span
,
node
:
MetaItemKind
::
Word
}
}
pub
fn
mk_nested_word_item
(
ident
:
Ident
)
->
NestedMetaItem
{
...
...
@@ -466,7 +466,7 @@ pub fn mk_sugared_doc_attr(id: AttrId, text: Symbol, span: Span) -> Attribute {
Attribute
{
id
,
style
,
path
:
ast
::
Path
::
from_ident
(
Ident
::
from_str
(
"doc"
)
.with_span_pos
(
span
)),
path
:
Path
::
from_ident
(
Ident
::
from_str
(
"doc"
)
.with_span_pos
(
span
)),
tokens
:
MetaItemKind
::
NameValue
(
lit
)
.tokens
(
span
),
is_sugared_doc
:
true
,
span
,
...
...
@@ -1142,7 +1142,6 @@ impl MetaItem {
fn
tokens
(
&
self
)
->
TokenStream
{
let
mut
idents
=
vec!
[];
let
mut
last_pos
=
BytePos
(
0
as
u32
);
// FIXME: Share code with `parse_path`.
for
(
i
,
segment
)
in
self
.ident.segments
.iter
()
.enumerate
()
{
let
is_first
=
i
==
0
;
if
!
is_first
{
...
...
@@ -1162,14 +1161,16 @@ fn tokens(&self) -> TokenStream {
fn
from_tokens
<
I
>
(
tokens
:
&
mut
iter
::
Peekable
<
I
>
)
->
Option
<
MetaItem
>
where
I
:
Iterator
<
Item
=
TokenTree
>
,
{
// FIXME: Share code with `parse_path`.
let
ident
=
match
tokens
.next
()
{
Some
(
TokenTree
::
Token
(
span
,
Token
::
Ident
(
ident
,
_
)))
=>
{
if
let
Some
(
TokenTree
::
Token
(
_
,
Token
::
ModSep
))
=
tokens
.peek
()
{
let
mut
segments
=
vec!
[
PathSegment
::
from_ident
(
ident
.with_span_pos
(
span
))];
tokens
.next
();
let
mut
segments
=
vec!
[];
loop
{
if
let
Some
(
TokenTree
::
Token
(
_
,
Token
::
Ident
(
ident
,
_
)))
=
tokens
.next
()
{
segments
.push
(
ast
::
PathSegment
::
from_ident
(
ident
));
if
let
Some
(
TokenTree
::
Token
(
span
,
Token
::
Ident
(
ident
,
_
)))
=
tokens
.next
()
{
segments
.push
(
PathSegment
::
from_ident
(
ident
.with_span_pos
(
span
)));
}
else
{
return
None
;
}
...
...
@@ -1179,15 +1180,14 @@ fn from_tokens<I>(tokens: &mut iter::Peekable<I>) -> Option<MetaItem>
break
;
}
}
ast
::
Path
{
span
,
segments
}
let
span
=
span
.with_hi
(
segments
.last
()
.unwrap
()
.ident.span
.hi
());
Path
{
span
,
segments
}
}
else
{
ast
::
Path
::
from_ident
(
ident
)
Path
::
from_ident
(
ident
.with_span_pos
(
span
)
)
}
}
Some
(
TokenTree
::
Token
(
_
,
Token
::
Interpolated
(
ref
nt
)))
=>
match
nt
.0
{
token
::
Nonterminal
::
NtIdent
(
ident
,
_
)
=>
{
ast
::
Path
::
from_ident
(
ident
)
}
token
::
Nonterminal
::
NtIdent
(
ident
,
_
)
=>
Path
::
from_ident
(
ident
),
token
::
Nonterminal
::
NtMeta
(
ref
meta
)
=>
return
Some
(
meta
.clone
()),
token
::
Nonterminal
::
NtPath
(
ref
path
)
=>
path
.clone
(),
_
=>
return
None
,
...
...
src/libsyntax/feature_gate.rs
浏览文件 @
84f45086
...
...
@@ -1191,7 +1191,7 @@ fn check_attribute(&self, attr: &ast::Attribute, is_macro: bool) {
}
}
else
{
gate_feature!
(
self
,
custom_attribute
,
attr
.span
,
&
format!
(
"
t
he attribute `{}` is currently
\
&
format!
(
"
T
he attribute `{}` is currently
\
unknown to the compiler and
\
may have meaning
\
added to it in the future"
,
...
...
src/test/compile-fail-fulldeps/auxiliary/macro_crate_test.rs
浏览文件 @
84f45086
...
...
@@ -117,7 +117,7 @@ fn expand_duplicate(cx: &mut ExtCtxt,
let
copy_name
=
match
mi
.node
{
ast
::
MetaItemKind
::
List
(
ref
xs
)
=>
{
if
let
Some
(
word
)
=
xs
[
0
]
.word
()
{
word
.ident
word
.ident
.segments
.last
()
.unwrap
()
.ident
}
else
{
cx
.span_err
(
mi
.span
,
"Expected word"
);
return
;
...
...
src/test/run-pass-fulldeps/auxiliary/macro_crate_test.rs
浏览文件 @
84f45086
...
...
@@ -112,7 +112,7 @@ fn expand_duplicate(cx: &mut ExtCtxt,
let
copy_name
=
match
mi
.node
{
ast
::
MetaItemKind
::
List
(
ref
xs
)
=>
{
if
let
Some
(
word
)
=
xs
[
0
]
.word
()
{
word
.ident
word
.ident
.segments
.last
()
.unwrap
()
.ident
}
else
{
cx
.span_err
(
mi
.span
,
"Expected word"
);
return
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录