@@ -321,7 +321,7 @@ object Splicer {
321
321
protected def interpretNew (fn : Symbol , args : => List [Result ])(implicit env : Env ): Result
322
322
protected def unexpectedTree (tree : Tree )(implicit env : Env ): Result
323
323
324
- private final def removeEraisedArguments (args : List [Tree ], fnTpe : Type ): List [Tree ] = {
324
+ private final def removeErasedArguments (args : List [Tree ], fnTpe : Type ): List [Tree ] = {
325
325
var result = args
326
326
var index = 0
327
327
def loop (tp : Type ): Unit = tp match {
@@ -336,11 +336,15 @@ object Splicer {
336
336
case tp : MethodType =>
337
337
index += tp.paramInfos.size
338
338
loop(tp.resType)
339
- case _ => ()
339
+ case tp : ExprType =>
340
+ index += 1
341
+ loop(tp.resType)
342
+ case tp => ()
340
343
}
341
344
loop(fnTpe)
342
- assert(index == args.size)
345
+ assert(index == args.size, s " $index != ${args.size} " )
343
346
result.filterNot(null .eq)
347
+ args
344
348
}
345
349
346
350
protected final def interpretTree (tree : Tree )(implicit env : Env ): Result = tree match {
@@ -373,11 +377,11 @@ object Splicer {
373
377
interpretModuleAccess(fn.symbol)
374
378
} else if (fn.symbol.isStatic) {
375
379
val module = fn.symbol.owner
376
- def interpretedArgs = removeEraisedArguments (args, fn.tpe).map(arg => interpretTree(arg))
380
+ def interpretedArgs = removeErasedArguments (args, fn.tpe).map(arg => interpretTree(arg))
377
381
interpretStaticMethodCall(module, fn.symbol, interpretedArgs)
378
382
} else if (fn.qualifier.symbol.is(Module ) && fn.qualifier.symbol.isStatic) {
379
383
val module = fn.qualifier.symbol.moduleClass
380
- def interpretedArgs = removeEraisedArguments (args, fn.tpe).map(arg => interpretTree(arg))
384
+ def interpretedArgs = removeErasedArguments (args, fn.tpe).map(arg => interpretTree(arg))
381
385
interpretStaticMethodCall(module, fn.symbol, interpretedArgs)
382
386
} else if (env.contains(fn.name)) {
383
387
env(fn.name)
0 commit comments