summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/files/neg/t8300-overloading.check7
-rw-r--r--test/files/neg/t8300-overloading.scala16
-rw-r--r--test/files/pos/t8300-conversions-a.scala23
-rw-r--r--test/files/pos/t8300-conversions-b.scala23
-rw-r--r--test/files/pos/t8300-overloading.scala16
-rw-r--r--test/files/pos/t8300-patmat-a.scala20
-rw-r--r--test/files/pos/t8300-patmat-b.scala20
7 files changed, 125 insertions, 0 deletions
diff --git a/test/files/neg/t8300-overloading.check b/test/files/neg/t8300-overloading.check
new file mode 100644
index 0000000000..edd34d44bd
--- /dev/null
+++ b/test/files/neg/t8300-overloading.check
@@ -0,0 +1,7 @@
+t8300-overloading.scala:15: error: double definition:
+def foo(name: Test.u.Name): Nothing at line 14 and
+def foo(name: Test.u.TermName): Nothing at line 15
+have same type after erasure: (name: Universe#NameApi)Nothing
+ def foo(name: TermName) = ???
+ ^
+one error found
diff --git a/test/files/neg/t8300-overloading.scala b/test/files/neg/t8300-overloading.scala
new file mode 100644
index 0000000000..eb393155a0
--- /dev/null
+++ b/test/files/neg/t8300-overloading.scala
@@ -0,0 +1,16 @@
+// cf. pos/t8300-overloading.scala
+trait Universe {
+ type Name >: Null <: AnyRef with NameApi
+ trait NameApi
+
+ type TermName >: Null <: Name with TermNameApi
+ trait TermNameApi extends NameApi
+}
+
+object Test extends App {
+ val u: Universe = ???
+ import u._
+
+ def foo(name: Name) = ???
+ def foo(name: TermName) = ???
+} \ No newline at end of file
diff --git a/test/files/pos/t8300-conversions-a.scala b/test/files/pos/t8300-conversions-a.scala
new file mode 100644
index 0000000000..248a8b73b2
--- /dev/null
+++ b/test/files/pos/t8300-conversions-a.scala
@@ -0,0 +1,23 @@
+// cf. pos/t8300-conversions-b.scala
+trait Universe {
+ type Symbol >: Null <: AnyRef with SymbolApi
+ trait SymbolApi
+
+ type TypeSymbol >: Null <: Symbol with TypeSymbolApi
+ trait TypeSymbolApi extends SymbolApi
+
+ type FreeTypeSymbol >: Null <: TypeSymbol with FreeTypeSymbolApi
+ trait FreeTypeSymbolApi extends TypeSymbolApi
+
+ implicit class CompatibleSymbol(sym: Symbol) {
+ def asFreeType: FreeTypeSymbol = ???
+ }
+}
+
+object Test extends App {
+ val u: Universe = ???
+ import u._
+
+ val sym: Symbol = ???
+ sym.asFreeType
+} \ No newline at end of file
diff --git a/test/files/pos/t8300-conversions-b.scala b/test/files/pos/t8300-conversions-b.scala
new file mode 100644
index 0000000000..0524ee3683
--- /dev/null
+++ b/test/files/pos/t8300-conversions-b.scala
@@ -0,0 +1,23 @@
+// cf. pos/t8300-conversions-a.scala
+trait Universe {
+ type Symbol >: Null <: AnyRef with SymbolApi
+ trait SymbolApi
+
+ type TypeSymbol >: Null <: TypeSymbolApi with Symbol
+ trait TypeSymbolApi extends SymbolApi
+
+ type FreeTypeSymbol >: Null <: FreeTypeSymbolApi with TypeSymbol
+ trait FreeTypeSymbolApi extends TypeSymbolApi
+
+ implicit class CompatibleSymbol(sym: Symbol) {
+ def asFreeType: FreeTypeSymbol = ???
+ }
+}
+
+object Test extends App {
+ val u: Universe = ???
+ import u._
+
+ val sym: Symbol = ???
+ sym.asFreeType
+} \ No newline at end of file
diff --git a/test/files/pos/t8300-overloading.scala b/test/files/pos/t8300-overloading.scala
new file mode 100644
index 0000000000..ae9699ab86
--- /dev/null
+++ b/test/files/pos/t8300-overloading.scala
@@ -0,0 +1,16 @@
+// cf. neg/t8300-overloading.scala
+trait Universe {
+ type Name >: Null <: AnyRef with NameApi
+ trait NameApi
+
+ type TermName >: Null <: TermNameApi with Name
+ trait TermNameApi extends NameApi
+}
+
+object Test extends App {
+ val u: Universe = ???
+ import u._
+
+ def foo(name: Name) = ???
+ def foo(name: TermName) = ???
+} \ No newline at end of file
diff --git a/test/files/pos/t8300-patmat-a.scala b/test/files/pos/t8300-patmat-a.scala
new file mode 100644
index 0000000000..4421c0a15e
--- /dev/null
+++ b/test/files/pos/t8300-patmat-a.scala
@@ -0,0 +1,20 @@
+// cf. pos/t8300-patmat-b.scala
+trait Universe {
+ type Name >: Null <: AnyRef with NameApi
+ trait NameApi
+
+ type TermName >: Null <: Name with TermNameApi
+ trait TermNameApi extends NameApi
+}
+
+object Test extends App {
+ val u: Universe = ???
+ import u._
+
+ locally {
+ val ScalaName: TermName = ???
+ ??? match {
+ case ScalaName => ???
+ }
+ }
+} \ No newline at end of file
diff --git a/test/files/pos/t8300-patmat-b.scala b/test/files/pos/t8300-patmat-b.scala
new file mode 100644
index 0000000000..c01aeb912d
--- /dev/null
+++ b/test/files/pos/t8300-patmat-b.scala
@@ -0,0 +1,20 @@
+// cf. pos/t8300-patmat-a.scala
+trait Universe {
+ type Name >: Null <: AnyRef with NameApi
+ trait NameApi
+
+ type TermName >: Null <: TermNameApi with Name
+ trait TermNameApi extends NameApi
+}
+
+object Test extends App {
+ val u: Universe = ???
+ import u._
+
+ locally {
+ val ScalaName: TermName = ???
+ ??? match {
+ case ScalaName => ???
+ }
+ }
+} \ No newline at end of file