Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
29791ada
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,发现更多精彩内容 >>
提交
29791ada
编写于
11月 27, 2016
作者:
J
Jeffrey Seyfried
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Minor cleanup.
上级
5a024806
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
17 addition
and
11 deletion
+17
-11
src/librustc_resolve/build_reduced_graph.rs
src/librustc_resolve/build_reduced_graph.rs
+3
-5
src/librustc_resolve/lib.rs
src/librustc_resolve/lib.rs
+8
-0
src/librustc_resolve/macros.rs
src/librustc_resolve/macros.rs
+6
-6
未找到文件。
src/librustc_resolve/build_reduced_graph.rs
浏览文件 @
29791ada
...
...
@@ -501,11 +501,9 @@ fn get_extern_crate_root(&mut self, cnum: CrateNum) -> Module<'b> {
})
}
pub
fn
get_macro
(
&
mut
self
,
binding
:
&
'b
NameBinding
<
'b
>
)
->
Rc
<
SyntaxExtension
>
{
let
def_id
=
match
binding
.kind
{
NameBindingKind
::
Def
(
Def
::
Macro
(
def_id
))
=>
def_id
,
NameBindingKind
::
Import
{
binding
,
..
}
=>
return
self
.get_macro
(
binding
),
NameBindingKind
::
Ambiguity
{
b1
,
..
}
=>
return
self
.get_macro
(
b1
),
pub
fn
get_macro
(
&
mut
self
,
def
:
Def
)
->
Rc
<
SyntaxExtension
>
{
let
def_id
=
match
def
{
Def
::
Macro
(
def_id
)
=>
def_id
,
_
=>
panic!
(
"Expected Def::Macro(..)"
),
};
if
let
Some
(
ext
)
=
self
.macro_map
.get
(
&
def_id
)
{
...
...
src/librustc_resolve/lib.rs
浏览文件 @
29791ada
...
...
@@ -925,6 +925,14 @@ fn def(&self) -> Def {
}
}
fn
get_macro
(
&
self
,
resolver
:
&
mut
Resolver
<
'a
>
)
->
Rc
<
SyntaxExtension
>
{
match
self
.kind
{
NameBindingKind
::
Import
{
binding
,
..
}
=>
binding
.get_macro
(
resolver
),
NameBindingKind
::
Ambiguity
{
b1
,
..
}
=>
b1
.get_macro
(
resolver
),
_
=>
resolver
.get_macro
(
self
.def
()),
}
}
// We sometimes need to treat variants as `pub` for backwards compatibility
fn
pseudo_vis
(
&
self
)
->
ty
::
Visibility
{
if
self
.is_variant
()
{
ty
::
Visibility
::
Public
}
else
{
self
.vis
}
...
...
src/librustc_resolve/macros.rs
浏览文件 @
29791ada
...
...
@@ -193,7 +193,7 @@ fn resolve_imports(&mut self) {
fn
find_attr_invoc
(
&
mut
self
,
attrs
:
&
mut
Vec
<
ast
::
Attribute
>
)
->
Option
<
ast
::
Attribute
>
{
for
i
in
0
..
attrs
.len
()
{
match
self
.builtin_macros
.get
(
&
attrs
[
i
]
.name
())
.cloned
()
{
Some
(
binding
)
=>
match
*
self
.get_macro
(
binding
)
{
Some
(
binding
)
=>
match
*
binding
.get_macro
(
self
)
{
MultiModifier
(
..
)
|
MultiDecorator
(
..
)
|
SyntaxExtension
::
AttrProcMacro
(
..
)
=>
{
return
Some
(
attrs
.remove
(
i
))
}
...
...
@@ -215,11 +215,11 @@ fn resolve_macro(&mut self, scope: Mark, path: &ast::Path, force: bool)
let
invocation
=
self
.invocations
[
&
scope
];
self
.current_module
=
invocation
.module
.get
();
let
resul
t
=
match
self
.resolve_legacy_scope
(
&
invocation
.legacy_scope
,
name
,
false
)
{
Some
(
MacroBinding
::
Legacy
(
binding
))
=>
Ok
(
binding
.ext
.clone
()
),
Some
(
MacroBinding
::
Modern
(
binding
))
=>
Ok
(
self
.get_macro
(
binding
)
),
let
ex
t
=
match
self
.resolve_legacy_scope
(
&
invocation
.legacy_scope
,
name
,
false
)
{
Some
(
MacroBinding
::
Legacy
(
binding
))
=>
binding
.ext
.clone
(
),
Some
(
MacroBinding
::
Modern
(
binding
))
=>
binding
.get_macro
(
self
),
None
=>
match
self
.resolve_in_item_lexical_scope
(
name
,
MacroNS
,
None
)
{
Some
(
binding
)
=>
Ok
(
self
.get_macro
(
binding
)
),
Some
(
binding
)
=>
binding
.get_macro
(
self
),
None
=>
return
Err
(
if
force
{
let
msg
=
format!
(
"macro undefined: '{}!'"
,
name
);
let
mut
err
=
self
.session
.struct_span_err
(
path
.span
,
&
msg
);
...
...
@@ -236,7 +236,7 @@ fn resolve_macro(&mut self, scope: Mark, path: &ast::Path, force: bool)
self
.current_module.legacy_macro_resolutions
.borrow_mut
()
.push
((
scope
,
name
,
path
.span
));
}
result
Ok
(
ext
)
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录