From 340529410696da2e5110d49a5a8d19572bf272ba Mon Sep 17 00:00:00 2001 From: Paul Phillips Date: Mon, 31 Dec 2012 01:49:32 -0800 Subject: SI-6897, lubs and varargs star. Don't allow lubs to calculate refinement types which contain a varargs star outside of legal varargs star position. --- src/reflect/scala/reflect/internal/Types.scala | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/reflect') diff --git a/src/reflect/scala/reflect/internal/Types.scala b/src/reflect/scala/reflect/internal/Types.scala index 119a57d268..bfd18f6a43 100644 --- a/src/reflect/scala/reflect/internal/Types.scala +++ b/src/reflect/scala/reflect/internal/Types.scala @@ -6801,7 +6801,10 @@ trait Types extends api.Types { self: SymbolTable => else lubBase } } - existentialAbstraction(tparams, lubType) + // dropRepeatedParamType is a localized fix for SI-6897. We should probably + // integrate that transformation at a lower level in master, but lubs are + // the likely and maybe only spot they escape, so fixing here for 2.10.1. + existentialAbstraction(tparams, dropRepeatedParamType(lubType)) } if (printLubs) { println(indent + "lub of " + ts + " at depth "+depth)//debug -- cgit v1.2.3