Allow data classes to inherit from other classes
#KT-10330 Fixed
This commit is contained in:
@@ -25,7 +25,8 @@ enum class LanguageFeature(val sinceVersion: LanguageVersion) {
|
||||
LocalDelegatedProperties(KOTLIN_1_1),
|
||||
TopLevelSealedInheritance(KOTLIN_1_1),
|
||||
Coroutines(KOTLIN_1_1),
|
||||
AdditionalBuiltInsMembers(KOTLIN_1_1)
|
||||
AdditionalBuiltInsMembers(KOTLIN_1_1),
|
||||
DataClassInheritance(KOTLIN_1_1),
|
||||
;
|
||||
|
||||
companion object {
|
||||
|
||||
@@ -26,6 +26,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.kotlin.builtins.FunctionTypesKt;
|
||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns;
|
||||
import org.jetbrains.kotlin.config.LanguageFeature;
|
||||
import org.jetbrains.kotlin.config.LanguageFeatureSettings;
|
||||
import org.jetbrains.kotlin.descriptors.*;
|
||||
import org.jetbrains.kotlin.descriptors.impl.SyntheticFieldDescriptor;
|
||||
@@ -475,7 +476,8 @@ public class BodyResolver {
|
||||
trace.report(INTERFACE_WITH_SUPERCLASS.on(typeReference));
|
||||
addSupertype = false;
|
||||
}
|
||||
else if (ktClassOrObject.hasModifier(KtTokens.DATA_KEYWORD)) {
|
||||
else if (ktClassOrObject.hasModifier(KtTokens.DATA_KEYWORD) &&
|
||||
!languageFeatureSettings.supportsFeature(LanguageFeature.DataClassInheritance)) {
|
||||
trace.report(DATA_CLASS_CANNOT_HAVE_CLASS_SUPERTYPES.on(typeReference));
|
||||
addSupertype = false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user