IR: put resolution of unbound type parameter symbols behind a language version flag

This commit is contained in:
Georgy Bronnikov
2020-04-15 16:08:35 +03:00
parent a1a2da3c0f
commit 284533f72b
@@ -53,21 +53,23 @@ class ExternalDependenciesGenerator(
} }
} while (unbound.isNotEmpty()) } while (unbound.isNotEmpty())
} }
}
private val SymbolTable.allUnbound: List<IrSymbol> private val SymbolTable.allUnbound: List<IrSymbol>
get() { get() {
val r = mutableListOf<IrSymbol>() val r = mutableListOf<IrSymbol>()
r.addAll(unboundClasses) r.addAll(unboundClasses)
r.addAll(unboundConstructors) r.addAll(unboundConstructors)
r.addAll(unboundEnumEntries) r.addAll(unboundEnumEntries)
r.addAll(unboundFields) r.addAll(unboundFields)
r.addAll(unboundSimpleFunctions) r.addAll(unboundSimpleFunctions)
r.addAll(unboundProperties) r.addAll(unboundProperties)
r.addAll(unboundTypeAliases) r.addAll(unboundTypeAliases)
r.addAll(unboundTypeParameters) if (!languageVersionSettings.supportsFeature(LanguageFeature.NewInference)) {
return r r.addAll(unboundTypeParameters)
} }
return r
}
}
fun List<IrProvider>.getDeclaration(symbol: IrSymbol): IrDeclaration = fun List<IrProvider>.getDeclaration(symbol: IrSymbol): IrDeclaration =
firstNotNullResult { provider -> firstNotNullResult { provider ->