Common fix for FINAL_SUPERTYPE and FINAL_UPPER_BOUND errors

This commit is contained in:
Wojciech Lopata
2013-02-26 12:59:05 +01:00
committed by Evgeny Gerashchenko
parent 6e1e495397
commit a887175f1a
28 changed files with 142 additions and 108 deletions
@@ -0,0 +1,3 @@
// "Make A open" "true"
open class A {}
class B : A<caret>() {}
@@ -0,0 +1,3 @@
// "Make A open" "true"
open class A {}
class B<T : A<caret>> {}
@@ -0,0 +1,3 @@
// "Make A open" "true"
open class A {}
class B : A<caret>() {}
@@ -0,0 +1,3 @@
// "Make A open" "true"
open class A {}
class B<T : A<caret>> {}
@@ -0,0 +1,6 @@
// "Make A open" "true"
trait X {}
trait Y {}
open class A {}
class B : X, A<caret>(), Y {}
@@ -0,0 +1,5 @@
// "Make E open" "false"
// ERROR: This type is final, so it cannot be inherited from
// ERROR: Cannot access '<init>': it is 'private' in 'E'
enum class E {}
class A : E<caret>() {}
@@ -0,0 +1,3 @@
// "Make E open" "false"
enum class E {}
class A<T : E<caret>> {}
@@ -0,0 +1,3 @@
// "Make A open" "true"
final class A {}
class B : A<caret>() {}
@@ -0,0 +1,3 @@
// "Make A open" "true"
final class A {}
class B<T : A<caret>> {}
@@ -0,0 +1,3 @@
// "Make String open" "false"
// ERROR: This type is final, so it cannot be inherited from
class A : String<caret>() {}
@@ -0,0 +1,2 @@
// "Make String open" "false"
class A<T : String<caret>> {}
@@ -0,0 +1,3 @@
// "Make A open" "true"
class A {}
class B : A<caret>() {}
@@ -0,0 +1,3 @@
// "Make A open" "true"
final class A {}
class B<T : A<caret>> {}
@@ -0,0 +1,6 @@
// "Make A open" "true"
trait X {}
trait Y {}
class A {}
class B : X, A<caret>(), Y {}
@@ -0,0 +1,5 @@
// "Make JavaClass open" "false"
// ERROR: This type is final, so it cannot be inherited from
import testPackage.*
class foo : <caret>JavaClass() {}
@@ -0,0 +1,4 @@
// "Make JavaClass open" "false"
import testPackage.*
class foo<T : JavaClass>() {}
@@ -0,0 +1,3 @@
package testPackage;
public final class JavaClass {}