@@ -38,56 +38,49 @@ type ctx = @rec(parser p,
38
38
mutable uint next_ann ) ;
39
39
40
40
fn mk_env ( ) -> env {
41
- let env e = [ ] ;
42
- ret e;
41
+ ret [ ] ;
43
42
}
44
43
45
44
fn val_is_bool ( val v) -> bool {
46
45
alt ( v) {
47
- case ( val_bool ( _) ) { ret true ; }
48
- case ( _) { }
46
+ case ( val_bool ( _) ) { true }
47
+ case ( _) { false }
49
48
}
50
- ret false;
51
49
}
52
50
53
51
fn val_is_int ( val v) -> bool {
54
52
alt ( v) {
55
- case ( val_int ( _) ) { ret true ; }
56
- case ( _) { }
53
+ case ( val_int ( _) ) { true }
54
+ case ( _) { false }
57
55
}
58
- ret false;
59
56
}
60
57
61
58
fn val_is_str ( val v) -> bool {
62
59
alt ( v) {
63
- case ( val_str ( _) ) { ret true ; }
64
- case ( _) { }
60
+ case ( val_str ( _) ) { true }
61
+ case ( _) { false }
65
62
}
66
- ret false;
67
63
}
68
64
69
65
fn val_as_bool ( val v) -> bool {
70
66
alt ( v) {
71
- case ( val_bool ( ?b) ) { ret b ; }
72
- case ( _) { }
67
+ case ( val_bool ( ?b) ) { b }
68
+ case ( _) { fail }
73
69
}
74
- fail;
75
70
}
76
71
77
72
fn val_as_int ( val v) -> int {
78
73
alt ( v) {
79
- case ( val_int ( ?i) ) { ret i ; }
80
- case ( _) { }
74
+ case ( val_int ( ?i) ) { i }
75
+ case ( _) { fail }
81
76
}
82
- fail;
83
77
}
84
78
85
79
fn val_as_str ( val v) -> str {
86
80
alt ( v) {
87
- case ( val_str ( ?s) ) { ret s ; }
88
- case ( _) { }
81
+ case ( val_str ( ?s) ) { s }
82
+ case ( _) { fail }
89
83
}
90
- fail;
91
84
}
92
85
93
86
fn lookup ( session:: session sess, env e, span sp, ident i) -> val {
@@ -96,20 +89,18 @@ fn lookup(session::session sess, env e, span sp, ident i) -> val {
96
89
ret pair. _1 ;
97
90
}
98
91
}
99
- sess. span_err ( sp, "unknown variable: " + i) ;
100
- fail;
92
+ sess. span_err ( sp, "unknown variable: " + i)
101
93
}
102
94
103
95
fn eval_lit ( ctx cx, span sp, @ast:: lit lit) -> val {
104
96
alt ( lit. node ) {
105
- case ( ast:: lit_bool ( ?b) ) { ret val_bool ( b) ; }
106
- case ( ast:: lit_int ( ?i) ) { ret val_int ( i) ; }
107
- case ( ast:: lit_str ( ?s, _) ) { ret val_str ( s) ; }
97
+ case ( ast:: lit_bool ( ?b) ) { val_bool ( b) }
98
+ case ( ast:: lit_int ( ?i) ) { val_int ( i) }
99
+ case ( ast:: lit_str ( ?s, _) ) { val_str ( s) }
108
100
case ( _) {
109
- cx. sess . span_err ( sp, "evaluating unsupported literal" ) ;
101
+ cx. sess . span_err ( sp, "evaluating unsupported literal" )
110
102
}
111
103
}
112
- fail;
113
104
}
114
105
115
106
fn eval_expr ( ctx cx, env e, @ast:: expr x) -> val {
@@ -219,17 +210,15 @@ fn eval_expr(ctx cx, env e, @ast::expr x) -> val {
219
210
220
211
fn val_eq ( session:: session sess, span sp, val av, val bv) -> bool {
221
212
if ( val_is_bool ( av) && val_is_bool ( bv) ) {
222
- ret val_as_bool ( av) == val_as_bool ( bv) ;
223
- }
224
- if ( val_is_int ( av) && val_is_int ( bv) ) {
225
- ret val_as_int ( av) == val_as_int ( bv) ;
213
+ val_as_bool ( av) == val_as_bool ( bv)
214
+ } else if ( val_is_int ( av) && val_is_int ( bv) ) {
215
+ val_as_int ( av) == val_as_int ( bv)
216
+ } else if ( val_is_str ( av) && val_is_str ( bv) ) {
217
+ str:: eq ( val_as_str ( av) ,
218
+ val_as_str ( bv) )
219
+ } else {
220
+ sess. span_err ( sp, "bad types in comparison" )
226
221
}
227
- if ( val_is_str ( av) && val_is_str ( bv) ) {
228
- ret str:: eq ( val_as_str ( av) ,
229
- val_as_str ( bv) ) ;
230
- }
231
- sess. span_err ( sp, "bad types in comparison" ) ;
232
- fail;
233
222
}
234
223
235
224
fn eval_crate_directives ( ctx cx,
0 commit comments