aboutsummaryrefslogtreecommitdiff
path: root/tests/untried/pos/overloaded_extractor_and_regular_def.scala
diff options
context:
space:
mode:
Diffstat (limited to 'tests/untried/pos/overloaded_extractor_and_regular_def.scala')
-rw-r--r--tests/untried/pos/overloaded_extractor_and_regular_def.scala32
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/untried/pos/overloaded_extractor_and_regular_def.scala b/tests/untried/pos/overloaded_extractor_and_regular_def.scala
new file mode 100644
index 000000000..c34dee8fa
--- /dev/null
+++ b/tests/untried/pos/overloaded_extractor_and_regular_def.scala
@@ -0,0 +1,32 @@
+trait TreesBase {
+ type Tree
+
+ type Apply <: Tree
+
+ val Apply: ApplyExtractor
+
+ abstract class ApplyExtractor {
+ def apply(x: Int): Apply
+ def unapply(apply: Apply): Option[Int]
+ }
+}
+
+trait TreesApi extends TreesBase {
+ def Apply(x: String)
+}
+
+class Universe extends TreesApi {
+ abstract class Tree
+ case class Apply(x: Int) extends Tree
+ object Apply extends ApplyExtractor
+ def Apply(x: String) = Apply(x.toInt)
+}
+
+object Test extends App {
+ def foo(tapi: TreesApi): Unit = {
+ import tapi._
+ def bar(tree: Tree): Unit = {
+ val Apply(x) = tree
+ }
+ }
+}