Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
c53722da
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,发现更多精彩内容 >>
提交
c53722da
编写于
11月 20, 2015
作者:
F
Florian Hahn
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Remove slice pattern from compiler plugin example
closes #29930
上级
2228bacd
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
20 addition
and
6 deletion
+20
-6
src/doc/book/compiler-plugins.md
src/doc/book/compiler-plugins.md
+11
-4
src/test/auxiliary/roman_numerals.rs
src/test/auxiliary/roman_numerals.rs
+9
-2
未找到文件。
src/doc/book/compiler-plugins.md
浏览文件 @
c53722da
...
...
@@ -54,14 +54,21 @@ use rustc::plugin::Registry;
fn expand_rn(cx: &mut ExtCtxt, sp: Span, args: &[TokenTree])
-> Box<MacResult + 'static> {
static NUMERALS: &'static [(&'static str, u
32
)] = &[
static NUMERALS: &'static [(&'static str, u
size
)] = &[
("M", 1000), ("CM", 900), ("D", 500), ("CD", 400),
("C", 100), ("XC", 90), ("L", 50), ("XL", 40),
("X", 10), ("IX", 9), ("V", 5), ("IV", 4),
("I", 1)];
let text = match args {
[TokenTree::Token(_, token::Ident(s, _))] => s.to_string(),
if args.len() != 1 {
cx.span_err(
sp,
&format!("argument should be a single identifier, but got {} arguments", args.len()));
return DummyResult::any(sp);
}
let text = match args[0] {
TokenTree::Token(_, token::Ident(s, _)) => s.to_string(),
_ => {
cx.span_err(sp, "argument should be a single identifier");
return DummyResult::any(sp);
...
...
@@ -83,7 +90,7 @@ fn expand_rn(cx: &mut ExtCtxt, sp: Span, args: &[TokenTree])
}
}
MacEager::expr(cx.expr_u
32
(sp, total))
MacEager::expr(cx.expr_u
size
(sp, total))
}
#[plugin_registrar]
...
...
src/test/auxiliary/roman_numerals.rs
浏览文件 @
c53722da
...
...
@@ -39,8 +39,15 @@ fn expand_rn(cx: &mut ExtCtxt, sp: Span, args: &[TokenTree])
(
"X"
,
10
),
(
"IX"
,
9
),
(
"V"
,
5
),
(
"IV"
,
4
),
(
"I"
,
1
)];
let
text
=
match
args
{
[
TokenTree
::
Token
(
_
,
token
::
Ident
(
s
,
_
))]
=>
s
.to_string
(),
if
args
.len
()
!=
1
{
cx
.span_err
(
sp
,
&
format!
(
"argument should be a single identifier, but got {} arguments"
,
args
.len
()));
return
DummyResult
::
any
(
sp
);
}
let
text
=
match
args
[
0
]
{
TokenTree
::
Token
(
_
,
token
::
Ident
(
s
,
_
))
=>
s
.to_string
(),
_
=>
{
cx
.span_err
(
sp
,
"argument should be a single identifier"
);
return
DummyResult
::
any
(
sp
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录