@@ -1327,7 +1327,7 @@ abstract class SpecializeTypes extends InfoTransform with TypingTransformers {
1327
1327
}
1328
1328
} else super .transform(tree)
1329
1329
1330
- case TypeApply (Select (qual, name), targs)
1330
+ case TypeApply (sel @ Select (qual, name), targs)
1331
1331
if (! specializedTypeVars(symbol.info).isEmpty && name != nme.CONSTRUCTOR ) =>
1332
1332
debuglog(" checking typeapp for rerouting: " + tree + " with sym.tpe: " + symbol.tpe + " tree.tpe: " + tree.tpe)
1333
1333
val qual1 = transform(qual)
@@ -1341,14 +1341,22 @@ abstract class SpecializeTypes extends InfoTransform with TypingTransformers {
1341
1341
val residualTargs = symbol.info.typeParams zip targs collect {
1342
1342
case (tvar, targ) if ! env.contains(tvar) || ! isPrimitiveValueClass(env(tvar).typeSymbol) => targ
1343
1343
}
1344
+ if (specMember.info.typeParams.isEmpty) {
1345
+ // See SI-5583. Don't know why it happens now if it didn't before.
1346
+ if (residualTargs.nonEmpty)
1347
+ log(" !!! Type args to be applied, but symbol says no parameters: " + ((specMember.defString, residualTargs)))
1344
1348
1345
- ifDebug(assert(residualTargs.length == specMember.info.typeParams.length,
1346
- " residual: %s, tparams: %s, env: %s" .format(residualTargs, symbol.info.typeParams, env))
1347
- )
1349
+ localTyper.typed(sel)
1350
+ }
1351
+ else {
1352
+ ifDebug(assert(residualTargs.length == specMember.info.typeParams.length,
1353
+ " residual: %s, tparams: %s, env: %s" .format(residualTargs, specMember.info.typeParams, env))
1354
+ )
1348
1355
1349
- val tree1 = gen.mkTypeApply(Select (qual1, specMember), residualTargs)
1350
- debuglog(" rewrote " + tree + " to " + tree1)
1351
- localTyper.typedOperator(atPos(tree.pos)(tree1)) // being polymorphic, it must be a method
1356
+ val tree1 = gen.mkTypeApply(Select (qual1, specMember), residualTargs)
1357
+ debuglog(" rewrote " + tree + " to " + tree1)
1358
+ localTyper.typedOperator(atPos(tree.pos)(tree1)) // being polymorphic, it must be a method
1359
+ }
1352
1360
1353
1361
case None => super .transform(tree)
1354
1362
}
0 commit comments