20
20
// EXPECTED:
21
21
// Subject:
22
22
// Companion.companionMethod() -> null
23
+ // Subject.notOverridingProp -> null
24
+ // Subject.overriddenBaseProp -> Base.overriddenBaseProp
25
+ // Subject.overriddenAbstractBaseProp -> Base.overriddenAbstractBaseProp
26
+ // Subject.openGrandBaseProp -> GrandBase.openGrandBaseProp
27
+ // Subject.abstractGrandBaseProp -> GrandBase.abstractGrandBaseProp
28
+ // Subject.overriddenGrandBaseProp -> Base.overriddenGrandBaseProp
29
+ // Subject.overriddenAbstractGrandBaseProp -> Base.overriddenAbstractGrandBaseProp
23
30
// Subject.openFun() -> Base.openFun()
24
31
// Subject.abstractFun() -> Base.abstractFun()
25
32
// Subject.openFunWithGenericArg(t:String) -> Base.openFunWithGenericArg(t:T)
42
49
// Subject.staticMethod() -> null
43
50
// lib.Subject:
44
51
// Companion.companionMethod() -> null
52
+ // Subject.abstractGrandBaseProp -> GrandBase.abstractGrandBaseProp
53
+ // Subject.notOverridingProp -> null
54
+ // Subject.openGrandBaseProp -> GrandBase.openGrandBaseProp
55
+ // Subject.overriddenAbstractBaseProp -> Base.overriddenAbstractBaseProp
56
+ // Subject.overriddenAbstractGrandBaseProp -> Base.overriddenAbstractGrandBaseProp
57
+ // Subject.overriddenBaseProp -> Base.overriddenBaseProp
58
+ // Subject.overriddenGrandBaseProp -> Base.overriddenGrandBaseProp
45
59
// Subject.abstractFun() -> Base.abstractFun()
46
60
// Subject.abstractFunWithGenericArg(t:String) -> Base.abstractFunWithGenericArg(t:T)
47
61
// Subject.abstractGrandBaseFun() -> GrandBase.abstractGrandBaseFun()
68
82
// FILE: lib.kt
69
83
package lib ;
70
84
abstract class GrandBase {
85
+ open var openGrandBaseProp: Int = 0
86
+ abstract var abstractGrandBaseProp: Int
87
+ open var overriddenGrandBaseProp: Int = 0
88
+ abstract var overriddenAbstractGrandBaseProp: Int
71
89
open fun openGrandBaseFun () {}
72
90
abstract fun abstractGrandBaseFun ()
73
91
open fun overriddenGrandBaseFun () {}
74
92
abstract fun overriddenAbstractGrandBaseFun ()
75
93
}
76
94
abstract class Base <T > : GrandBase () {
95
+ open var overriddenBaseProp: Int = 0
96
+ abstract var overriddenAbstractBaseProp: Int
97
+ override var overriddenGrandBaseProp: Int = 0
98
+ override var overriddenAbstractGrandBaseProp: Int = 0
77
99
open fun openFun () {}
78
100
abstract fun abstractFun ():Unit
79
101
open fun openFunWithGenericArg (t : T ):T = TODO ()
@@ -83,6 +105,13 @@ abstract class Base<T> : GrandBase() {
83
105
}
84
106
85
107
abstract class Subject : Base <String >() {
108
+ var notOverridingProp: Int = 0
109
+ override open var overriddenBaseProp: Int = 0
110
+ override var overriddenAbstractBaseProp: Int = 0
111
+ override open var openGrandBaseProp: Int = 0
112
+ override var abstractGrandBaseProp: Int = 0
113
+ override var overriddenGrandBaseProp: Int = 0
114
+ override var overriddenAbstractGrandBaseProp: Int = 0
86
115
override fun openFun () {}
87
116
override fun abstractFun () {}
88
117
override fun openFunWithGenericArg (t : String ):String = TODO ()
@@ -99,12 +128,20 @@ abstract class Subject: Base<String>() {
99
128
// MODULE: main(lib)
100
129
// FILE: a.kt
101
130
abstract class GrandBase {
131
+ open var openGrandBaseProp: Int = 0
132
+ abstract var abstractGrandBaseProp: Int = 0
133
+ open var overriddenGrandBaseProp: Int = 0
134
+ abstract var overriddenAbstractGrandBaseProp: Int = 0
102
135
open fun openGrandBaseFun () {}
103
136
abstract fun abstractGrandBaseFun ()
104
137
open fun overriddenGrandBaseFun () {}
105
138
abstract fun overriddenAbstractGrandBaseFun ()
106
139
}
107
140
abstract class Base <T > : GrandBase () {
141
+ open var overriddenBaseProp: Int = 0
142
+ var overriddenAbstractBaseProp: Int = 0
143
+ override var overriddenGrandBaseProp: Int = 0
144
+ override var overriddenAbstractGrandBaseProp: Int = 0
108
145
open fun openFun () {}
109
146
abstract fun abstractFun ():Unit
110
147
open fun openFunWithGenericArg (t : T ):T = TODO ()
@@ -114,6 +151,13 @@ abstract class Base<T> : GrandBase() {
114
151
}
115
152
116
153
abstract class Subject : Base <String >() {
154
+ var notOverridingProp: Int = 0
155
+ override open var overriddenBaseProp: Int = 0
156
+ override var overriddenAbstractBaseProp: Int = 0
157
+ override open var openGrandBaseProp: Int = 0
158
+ override var abstractGrandBaseProp: Int = 0
159
+ override var overriddenGrandBaseProp: Int = 0
160
+ override var overriddenAbstractGrandBaseProp: Int = 0
117
161
override fun openFun () {}
118
162
override fun abstractFun () {}
119
163
override fun openFunWithGenericArg (t : String ):String = TODO ()
0 commit comments