diff options
-rw-r--r-- | src/reflect/scala/reflect/internal/Types.scala | 5 | ||||
-rw-r--r-- | test/files/pos/t6897.scala | 6 |
2 files changed, 10 insertions, 1 deletions
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 diff --git a/test/files/pos/t6897.scala b/test/files/pos/t6897.scala new file mode 100644 index 0000000000..a7a03a1d3a --- /dev/null +++ b/test/files/pos/t6897.scala @@ -0,0 +1,6 @@ +class A { + val html = (null: Any) match { + case 1 => <xml:group></xml:group> + case 2 => <p></p> + } +} |