diff options
author | James Iry <jamesiry@gmail.com> | 2013-08-13 15:12:13 -0700 |
---|---|---|
committer | James Iry <jamesiry@gmail.com> | 2013-08-13 15:12:13 -0700 |
commit | e589a4a9cc98284ec391345d5e27c3d1538917e2 (patch) | |
tree | 8dd38118346ec8051fcb7ac897d59b474b8e06e4 /test | |
parent | ebb0339ff9e52cce7014e6c8e3309bffafa3abf2 (diff) | |
parent | e65321cb29758518573902041001d203d924c8bc (diff) | |
download | scala-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')
-rw-r--r-- | test/files/neg/t7694b.check | 7 | ||||
-rw-r--r-- | test/files/pos/t7694.scala | 40 |
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 +*/ |