10
10
11
11
namespace Sass {
12
12
13
- void bind (std::string type, std::string name, Parameters_Obj ps, Arguments_Obj as, Env* env, Eval* eval)
13
+ void bind (std::string type, std::string name, Parameters_Obj ps, Arguments_Obj as, Env* env, Eval* eval, Backtraces& traces )
14
14
{
15
15
std::string callee (type + " " + name);
16
16
@@ -54,7 +54,7 @@ namespace Sass {
54
54
std::stringstream msg;
55
55
msg << " wrong number of arguments (" << LA << " for " << LP << " )" ;
56
56
msg << " for `" << name << " '" ;
57
- return error (msg.str (), as->pstate (), eval-> exp . traces );
57
+ return error (msg.str (), as->pstate (), traces);
58
58
}
59
59
Parameter_Obj p = ps->at (ip);
60
60
@@ -107,8 +107,8 @@ namespace Sass {
107
107
false ,
108
108
false ));
109
109
} else {
110
- eval-> exp . traces .push_back (Backtrace (key->pstate ()));
111
- throw Exception::InvalidVarKwdType (key->pstate (), eval-> exp . traces , key->inspect (), a);
110
+ traces.push_back (Backtrace (key->pstate ()));
111
+ throw Exception::InvalidVarKwdType (key->pstate (), traces, key->inspect (), a);
112
112
}
113
113
}
114
114
@@ -222,15 +222,15 @@ namespace Sass {
222
222
for (auto key : argmap->keys ()) {
223
223
String_Constant_Ptr val = Cast<String_Constant>(key);
224
224
if (val == NULL ) {
225
- eval-> exp . traces .push_back (Backtrace (key->pstate ()));
226
- throw Exception::InvalidVarKwdType (key->pstate (), eval-> exp . traces , key->inspect (), a);
225
+ traces.push_back (Backtrace (key->pstate ()));
226
+ throw Exception::InvalidVarKwdType (key->pstate (), traces, key->inspect (), a);
227
227
}
228
228
std::string param = " $" + unquote (val->value ());
229
229
230
230
if (!param_map.count (param)) {
231
231
std::stringstream msg;
232
232
msg << callee << " has no parameter named " << param;
233
- error (msg.str (), a->pstate (), eval-> exp . traces );
233
+ error (msg.str (), a->pstate (), traces);
234
234
}
235
235
env->local_frame ()[param] = argmap->at (key);
236
236
}
@@ -245,7 +245,7 @@ namespace Sass {
245
245
std::stringstream msg;
246
246
msg << " parameter " << p->name ()
247
247
<< " provided more than once in call to " << callee;
248
- error (msg.str (), a->pstate (), eval-> exp . traces );
248
+ error (msg.str (), a->pstate (), traces);
249
249
}
250
250
// ordinal arg -- bind it to the next param
251
251
env->local_frame ()[p->name ()] = a->value ();
@@ -259,22 +259,22 @@ namespace Sass {
259
259
} else {
260
260
std::stringstream msg;
261
261
msg << callee << " has no parameter named " << a->name ();
262
- error (msg.str (), a->pstate (), eval-> exp . traces );
262
+ error (msg.str (), a->pstate (), traces);
263
263
}
264
264
}
265
265
if (param_map[a->name ()]) {
266
266
if (param_map[a->name ()]->is_rest_parameter ()) {
267
267
std::stringstream msg;
268
268
msg << " argument " << a->name () << " of " << callee
269
269
<< " cannot be used as named argument" ;
270
- error (msg.str (), a->pstate (), eval-> exp . traces );
270
+ error (msg.str (), a->pstate (), traces);
271
271
}
272
272
}
273
273
if (env->has_local (a->name ())) {
274
274
std::stringstream msg;
275
275
msg << " parameter " << p->name ()
276
276
<< " provided more than once in call to " << callee;
277
- error (msg.str (), a->pstate (), eval-> exp . traces );
277
+ error (msg.str (), a->pstate (), traces);
278
278
}
279
279
env->local_frame ()[a->name ()] = a->value ();
280
280
}
@@ -299,7 +299,7 @@ namespace Sass {
299
299
}
300
300
else {
301
301
// param is unbound and has no default value -- error
302
- throw Exception::MissingArgument (as->pstate (), eval-> exp . traces , name, leftover->name (), type);
302
+ throw Exception::MissingArgument (as->pstate (), traces, name, leftover->name (), type);
303
303
}
304
304
}
305
305
}
0 commit comments