K2: don't use outer class type parameters during nested class TP resolve
Before this commit, we allowed access to outer class type parameters during resolve of type parameter bounds of a nested class. In fact, outer type parameters are accessible in this situation only if it's an inner class (or a local class). This commit forbids such a usage. In the earlier fix of KT-57209 the same was done for regular type reference resolve. #KT-61459 Fixed #KT-61959 Fixed
This commit is contained in:
committed by
Space Team
parent
cdc197c723
commit
9cf1d36e5e
+4
@@ -125,6 +125,10 @@ open class FirTypeResolveTransformer(
|
||||
|
||||
fun transformClassTypeParameters(regularClass: FirRegularClass, data: Any?) {
|
||||
withScopeCleanup {
|
||||
// Remove type parameter scopes for classes that are neither inner nor local
|
||||
if (removeOuterTypeParameterScope(regularClass)) {
|
||||
this.scopes = staticScopes
|
||||
}
|
||||
addTypeParametersScope(regularClass)
|
||||
regularClass.typeParameters.forEach {
|
||||
it.accept(this, data)
|
||||
|
||||
Reference in New Issue
Block a user