summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/reflect/scala/reflect/internal/Definitions.scala3
-rw-r--r--test/files/pos/t8376/BindingsX.java13
-rw-r--r--test/files/pos/t8376/Test.scala10
3 files changed, 25 insertions, 1 deletions
diff --git a/src/reflect/scala/reflect/internal/Definitions.scala b/src/reflect/scala/reflect/internal/Definitions.scala
index 558e1aa611..b2bfceb570 100644
--- a/src/reflect/scala/reflect/internal/Definitions.scala
+++ b/src/reflect/scala/reflect/internal/Definitions.scala
@@ -410,7 +410,8 @@ trait Definitions extends api.StandardDefinitions {
else if (isScalaRepeatedParamType(tp)) elementExtract(RepeatedParamClass, tp) orElse tp
else tp
)
- def repeatedToSingle(tp: Type): Type = elementExtract(RepeatedParamClass, tp) orElse tp
+ def repeatedToSingle(tp: Type): Type = elementExtract(RepeatedParamClass, tp) orElse elementExtract(JavaRepeatedParamClass, tp) orElse tp
+ // We don't need to deal with JavaRepeatedParamClass here, as `repeatedToSeq` is only called in the patmat translation for Scala sources.
def repeatedToSeq(tp: Type): Type = elementTransform(RepeatedParamClass, tp)(seqType) orElse tp
def seqToRepeated(tp: Type): Type = elementTransform(SeqClass, tp)(scalaRepeatedType) orElse tp
def isReferenceArray(tp: Type) = elementTest(ArrayClass, tp)(_ <:< AnyRefTpe)
diff --git a/test/files/pos/t8376/BindingsX.java b/test/files/pos/t8376/BindingsX.java
new file mode 100644
index 0000000000..165fdaf5f6
--- /dev/null
+++ b/test/files/pos/t8376/BindingsX.java
@@ -0,0 +1,13 @@
+/**
+ * A simple Java class implementing methods similar to new JavaFX `Bindings`.
+ */
+public final class BindingsX {
+
+ public static void select(String root, String... steps) {
+ throw new UnsupportedOperationException("Not implemented");
+ }
+
+ public static void select(Object root, String... steps) {
+ throw new UnsupportedOperationException("Not implemented");
+ }
+}
diff --git a/test/files/pos/t8376/Test.scala b/test/files/pos/t8376/Test.scala
new file mode 100644
index 0000000000..ba078a3532
--- /dev/null
+++ b/test/files/pos/t8376/Test.scala
@@ -0,0 +1,10 @@
+class Test {
+ BindingsX.select("", "") // okay in 2.10, fails in 2.11
+
+ BindingsY.select1("", "") // okay in both
+}
+
+object BindingsY {
+ def select1(root: String, steps: String*) = ()
+ def select1(root: Any, steps: String*) = ()
+}