summaryrefslogtreecommitdiff
path: root/test/files
diff options
context:
space:
mode:
authorJames Iry <jamesiry@gmail.com>2013-08-13 15:12:13 -0700
committerJames Iry <jamesiry@gmail.com>2013-08-13 15:12:13 -0700
commite589a4a9cc98284ec391345d5e27c3d1538917e2 (patch)
tree8dd38118346ec8051fcb7ac897d59b474b8e06e4 /test/files
parentebb0339ff9e52cce7014e6c8e3309bffafa3abf2 (diff)
parente65321cb29758518573902041001d203d924c8bc (diff)
downloadscala-e589a4a9cc98284ec391345d5e27c3d1538917e2.tar.gz
scala-e589a4a9cc98284ec391345d5e27c3d1538917e2.tar.bz2
scala-e589a4a9cc98284ec391345d5e27c3d1538917e2.zip
Merge pull request #2828 from adriaanm/rebase-2771
[Rebase #2771] SI-7694 @uncheckedBounds, an opt-out from type bounds checking
Diffstat (limited to 'test/files')
-rw-r--r--test/files/neg/t7694b.check7
-rw-r--r--test/files/pos/t7694.scala40
2 files changed, 47 insertions, 0 deletions
diff --git a/test/files/neg/t7694b.check b/test/files/neg/t7694b.check
new file mode 100644
index 0000000000..ea3d7736f8
--- /dev/null
+++ b/test/files/neg/t7694b.check
@@ -0,0 +1,7 @@
+t7694b.scala:8: error: type arguments [_3,_4] do not conform to trait L's type parameter bounds [A2,B2 <: A2]
+ def d = if (true) (null: L[A, A]) else (null: L[B, B])
+ ^
+t7694b.scala:9: error: type arguments [_1,_2] do not conform to trait L's type parameter bounds [A2,B2 <: A2]
+ val v = if (true) (null: L[A, A]) else (null: L[B, B])
+ ^
+two errors found
diff --git a/test/files/pos/t7694.scala b/test/files/pos/t7694.scala
new file mode 100644
index 0000000000..9852d5ec79
--- /dev/null
+++ b/test/files/pos/t7694.scala
@@ -0,0 +1,40 @@
+trait A
+trait B
+
+trait L[A2, B2 <: A2] {
+ def bar(a: Any, b: Any) = 0
+}
+
+object Lub {
+ // use named args transforms to include TypeTree(<lub.tpe>) in the AST before refchecks.
+ def foo(a: L[_, _], b: Any) = 0
+
+ foo(b = 0, a = if (true) (null: L[A, A]) else (null: L[B, B]))
+
+ (if (true) (null: L[A, A]) else (null: L[B, B])).bar(b = 0, a = 0)
+}
+
+/*
+The LUB ends up as:
+
+TypeRef(
+ TypeSymbol(
+ abstract trait L#7038[A2#7039, B2#7040 <: A2#7039] extends AnyRef#2197
+
+ )
+ args = List(
+ AbstractTypeRef(
+ AbstractType(
+ type _1#13680 >: A#7036 with B#7037 <: Object#1752
+ )
+ )
+ AbstractTypeRef(
+ AbstractType(
+ type _2#13681 >: A#7036 with B#7037 <: Object#1752
+ )
+ )
+ )
+)
+
+Note that type _2#13681 is *not* bound by _1#13680
+*/