Skip to content

Commit e8c4807

Browse files
committed
---
yaml --- r: 79326 b: refs/heads/try c: be75daf h: refs/heads/master v: v3
1 parent 7c450c3 commit e8c4807

File tree

4 files changed

+19
-34
lines changed

4 files changed

+19
-34
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
refs/heads/master: 3e6de6b7da8ee88bf84b0e217900051334be08da
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: 60fba4d7d677ec098e6a43014132fe99f7547363
5-
refs/heads/try: 379e02c21db99a1ad9c3c44eeba78f8413b234ef
5+
refs/heads/try: be75daf8725fa615aea6e6c4a6775d2dcd6c6a99
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
88
refs/heads/try2: 147ecfdd8221e4a4d4e090486829a06da1e0ca3c

branches/try/src/libsyntax/ext/base.rs

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@ use std::hashmap::HashMap;
2222

2323
// new-style macro! tt code:
2424
//
25-
// SyntaxExpanderTT, SyntaxExpanderTTItem, MacResult,
26-
// NormalTT, IdentTT
25+
// MacResult, NormalTT, IdentTT
2726
//
2827
// also note that ast::mac used to have a bunch of extraneous cases and
2928
// is now probably a redundant AST node, can be merged with
@@ -40,21 +39,11 @@ pub type ItemDecorator = @fn(@ExtCtxt,
4039
~[@ast::item])
4140
-> ~[@ast::item];
4241

43-
pub struct SyntaxExpanderTT {
44-
expander: SyntaxExpanderTTFun,
45-
span: Option<Span>
46-
}
47-
4842
pub type SyntaxExpanderTTFun = @fn(@ExtCtxt,
4943
Span,
5044
&[ast::token_tree])
5145
-> MacResult;
5246

53-
pub struct SyntaxExpanderTTItem {
54-
expander: SyntaxExpanderTTItemFun,
55-
span: Option<Span>
56-
}
57-
5847
pub type SyntaxExpanderTTItemFun = @fn(@ExtCtxt,
5948
Span,
6049
ast::Ident,
@@ -76,7 +65,7 @@ pub enum SyntaxExtension {
7665
ItemDecorator(ItemDecorator),
7766

7867
// Token-tree expanders
79-
NormalTT(SyntaxExpanderTT),
68+
NormalTT(SyntaxExpanderTTFun, Option<Span>),
8069

8170
// An IdentTT is a macro that has an
8271
// identifier in between the name of the
@@ -86,7 +75,7 @@ pub enum SyntaxExtension {
8675

8776
// perhaps macro_rules! will lose its odd special identifier argument,
8877
// and this can go away also
89-
IdentTT(SyntaxExpanderTTItem),
78+
IdentTT(SyntaxExpanderTTItemFun, Option<Span>),
9079
}
9180

9281
// The SyntaxEnv is the environment that's threaded through the expansion
@@ -121,11 +110,11 @@ type RenameList = ~[(ast::Ident,Name)];
121110
pub fn syntax_expander_table() -> SyntaxEnv {
122111
// utility function to simplify creating NormalTT syntax extensions
123112
fn builtin_normal_tt(f: SyntaxExpanderTTFun) -> @Transformer {
124-
@SE(NormalTT(SyntaxExpanderTT{expander: f, span: None}))
113+
@SE(NormalTT(f, None))
125114
}
126115
// utility function to simplify creating IdentTT syntax extensions
127116
fn builtin_item_tt(f: SyntaxExpanderTTItemFun) -> @Transformer {
128-
@SE(IdentTT(SyntaxExpanderTTItem{expander: f, span: None}))
117+
@SE(IdentTT(f, None))
129118
}
130119
let mut syntax_expanders = HashMap::new();
131120
// NB identifier starts with space, and can't conflict with legal idents

branches/try/src/libsyntax/ext/expand.rs

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -58,19 +58,16 @@ pub fn expand_expr(extsbox: @mut SyntaxEnv,
5858
pth.span,
5959
fmt!("macro undefined: '%s'", extnamestr))
6060
}
61-
Some(@SE(NormalTT(SyntaxExpanderTT{
62-
expander: exp,
63-
span: exp_sp
64-
}))) => {
61+
Some(@SE(NormalTT(expandfun, exp_span))) => {
6562
cx.bt_push(ExpnInfo {
6663
call_site: s,
6764
callee: NameAndSpan {
6865
name: extnamestr,
69-
span: exp_sp,
66+
span: exp_span,
7067
},
7168
});
7269

73-
let expanded = match exp(cx, mac.span, *tts) {
70+
let expanded = match expandfun(cx, mac.span, *tts) {
7471
MRExpr(e) => e,
7572
MRAny(expr_maker,_,_) => expr_maker(),
7673
_ => {
@@ -379,7 +376,7 @@ pub fn expand_item_mac(extsbox: @mut SyntaxEnv,
379376
None => cx.span_fatal(pth.span,
380377
fmt!("macro undefined: '%s!'", extnamestr)),
381378

382-
Some(@SE(NormalTT(ref expand))) => {
379+
Some(@SE(NormalTT(expander, span))) => {
383380
if it.ident != parse::token::special_idents::invalid {
384381
cx.span_fatal(pth.span,
385382
fmt!("macro %s! expects no ident argument, \
@@ -390,12 +387,12 @@ pub fn expand_item_mac(extsbox: @mut SyntaxEnv,
390387
call_site: it.span,
391388
callee: NameAndSpan {
392389
name: extnamestr,
393-
span: expand.span
390+
span: span
394391
}
395392
});
396-
((*expand).expander)(cx, it.span, tts)
393+
expander(cx, it.span, tts)
397394
}
398-
Some(@SE(IdentTT(ref expand))) => {
395+
Some(@SE(IdentTT(expander, span))) => {
399396
if it.ident == parse::token::special_idents::invalid {
400397
cx.span_fatal(pth.span,
401398
fmt!("macro %s! expects an ident argument",
@@ -405,10 +402,10 @@ pub fn expand_item_mac(extsbox: @mut SyntaxEnv,
405402
call_site: it.span,
406403
callee: NameAndSpan {
407404
name: extnamestr,
408-
span: expand.span
405+
span: span
409406
}
410407
});
411-
((*expand).expander)(cx, it.span, it.ident, tts)
408+
expander(cx, it.span, it.ident, tts)
412409
}
413410
_ => cx.span_fatal(
414411
it.span, fmt!("%s! is not legal in item position", extnamestr))
@@ -476,13 +473,12 @@ pub fn expand_stmt(extsbox: @mut SyntaxEnv,
476473
None =>
477474
cx.span_fatal(pth.span, fmt!("macro undefined: '%s'", extnamestr)),
478475

479-
Some(@SE(NormalTT(
480-
SyntaxExpanderTT{expander: exp, span: exp_sp}))) => {
476+
Some(@SE(NormalTT(expandfun, exp_span))) => {
481477
cx.bt_push(ExpnInfo {
482478
call_site: sp,
483-
callee: NameAndSpan { name: extnamestr, span: exp_sp }
479+
callee: NameAndSpan { name: extnamestr, span: exp_span }
484480
});
485-
let expanded = match exp(cx, mac.span, tts) {
481+
let expanded = match expandfun(cx, mac.span, tts) {
486482
MRExpr(e) =>
487483
@codemap::Spanned { node: StmtExpr(e, cx.next_id()),
488484
span: e.span},

branches/try/src/libsyntax/ext/tt/macro_rules.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,6 @@ pub fn add_new_extension(cx: @ExtCtxt,
149149

150150
return MRDef(MacroDef{
151151
name: ident_to_str(&name),
152-
ext: NormalTT(base::SyntaxExpanderTT{expander: exp, span: Some(sp)})
152+
ext: NormalTT(exp, Some(sp))
153153
});
154154
}

0 commit comments

Comments
 (0)