Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
c00f5af4
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,发现更多精彩内容 >>
提交
c00f5af4
编写于
6月 23, 2018
作者:
V
Vadim Petrochenkov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
hygiene: Do not reset expansion info for `quote!`
上级
fffe9fbb
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
9 addition
and
8 deletion
+9
-8
src/libproc_macro/quote.rs
src/libproc_macro/quote.rs
+0
-3
src/librustc_metadata/creader.rs
src/librustc_metadata/creader.rs
+1
-1
src/librustc_metadata/cstore_impl.rs
src/librustc_metadata/cstore_impl.rs
+1
-1
src/libsyntax/ext/base.rs
src/libsyntax/ext/base.rs
+5
-1
src/libsyntax/ext/expand.rs
src/libsyntax/ext/expand.rs
+2
-2
未找到文件。
src/libproc_macro/quote.rs
浏览文件 @
c00f5af4
...
...
@@ -85,9 +85,6 @@ fn expand<'cx>(&self, cx: &'cx mut ExtCtxt,
_
:
::
syntax_pos
::
Span
,
stream
:
tokenstream
::
TokenStream
)
->
tokenstream
::
TokenStream
{
let
mut
info
=
cx
.current_expansion.mark
.expn_info
()
.unwrap
();
info
.callee.allow_internal_unstable
=
true
;
cx
.current_expansion.mark
.set_expn_info
(
info
);
::
__
internal
::
set_sess
(
cx
,
||
TokenStream
(
stream
)
.quote
()
.0
)
}
}
...
...
src/librustc_metadata/creader.rs
浏览文件 @
c00f5af4
...
...
@@ -570,7 +570,7 @@ fn register_bang_proc_macro(&mut self,
name
:
&
str
,
expand
:
fn
(
TokenStream
)
->
TokenStream
)
{
let
expand
=
SyntaxExtension
::
ProcMacro
(
Box
::
new
(
BangProcMacro
{
inner
:
expand
}),
self
.edition
Box
::
new
(
BangProcMacro
{
inner
:
expand
}),
false
,
self
.edition
);
self
.extensions
.push
((
Symbol
::
intern
(
name
),
Lrc
::
new
(
expand
)));
}
...
...
src/librustc_metadata/cstore_impl.rs
浏览文件 @
c00f5af4
...
...
@@ -519,7 +519,7 @@ fn load_macro_untracked(&self, id: DefId, sess: &Session) -> LoadedMacro {
}
else
if
data
.name
==
"proc_macro"
&&
self
.get_crate_data
(
id
.krate
)
.item_name
(
id
.index
)
==
"quote"
{
let
ext
=
SyntaxExtension
::
ProcMacro
(
Box
::
new
(::
proc_macro
::
__
internal
::
Quoter
),
data
.root.edition
);
true
,
data
.root.edition
);
return
LoadedMacro
::
ProcMacro
(
Lrc
::
new
(
ext
));
}
...
...
src/libsyntax/ext/base.rs
浏览文件 @
c00f5af4
...
...
@@ -597,7 +597,11 @@ pub enum SyntaxExtension {
MultiModifier
(
Box
<
MultiItemModifier
+
sync
::
Sync
+
sync
::
Send
>
),
/// A function-like procedural macro. TokenStream -> TokenStream.
ProcMacro
(
Box
<
ProcMacro
+
sync
::
Sync
+
sync
::
Send
>
,
Edition
),
ProcMacro
(
/* expander: */
Box
<
ProcMacro
+
sync
::
Sync
+
sync
::
Send
>
,
/* allow_internal_unstable: */
bool
,
/* edition: */
Edition
,
),
/// An attribute-like procedural macro. TokenStream, TokenStream -> TokenStream.
/// The first TokenSteam is the attribute, the second is the annotated item.
...
...
src/libsyntax/ext/expand.rs
浏览文件 @
c00f5af4
...
...
@@ -804,7 +804,7 @@ fn expand_bang_invoc(&mut self,
kind
.dummy
(
span
)
}
ProcMacro
(
ref
expandfun
,
edition
)
=>
{
ProcMacro
(
ref
expandfun
,
allow_internal_unstable
,
edition
)
=>
{
if
ident
.name
!=
keywords
::
Invalid
.name
()
{
let
msg
=
format!
(
"macro {}! expects no ident argument, given '{}'"
,
path
,
ident
);
...
...
@@ -821,7 +821,7 @@ fn expand_bang_invoc(&mut self,
// yet, when they do, we should use it here.
span
:
None
,
// FIXME probably want to follow macro_rules macros here.
allow_internal_unstable
:
false
,
allow_internal_unstable
,
allow_internal_unsafe
:
false
,
edition
,
},
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录