Remove @data from stdlib and compiler
This commit is contained in:
@@ -218,7 +218,7 @@ public interface JetTokens {
|
||||
|
||||
// Please synchronize this array with org.jetbrains.kotlin.descriptors.annotations.ANNOTATION_MODIFIERS_FQ_NAMES
|
||||
JetModifierKeywordToken[] ANNOTATION_MODIFIERS_KEYWORDS_ARRAY = new JetModifierKeywordToken[] {
|
||||
DATA_KEYWORD, INLINE_KEYWORD, NOINLINE_KEYWORD, TAILREC_KEYWORD, EXTERNAL_KEYWORD, ANNOTATION_KEYWORD, CROSSINLINE_KEYWORD
|
||||
INLINE_KEYWORD, NOINLINE_KEYWORD, TAILREC_KEYWORD, EXTERNAL_KEYWORD, ANNOTATION_KEYWORD, CROSSINLINE_KEYWORD
|
||||
};
|
||||
|
||||
TokenSet MODIFIER_KEYWORDS = TokenSet.create(MODIFIER_KEYWORDS_ARRAY);
|
||||
|
||||
@@ -16,10 +16,12 @@
|
||||
|
||||
package org.jetbrains.kotlin.resolve
|
||||
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.descriptors.*
|
||||
import org.jetbrains.kotlin.diagnostics.*
|
||||
import org.jetbrains.kotlin.builtins.*
|
||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
||||
import org.jetbrains.kotlin.diagnostics.DiagnosticSink
|
||||
import org.jetbrains.kotlin.diagnostics.Errors
|
||||
import org.jetbrains.kotlin.psi.JetClassOrObject
|
||||
import org.jetbrains.kotlin.psi.JetDeclaration
|
||||
|
||||
|
||||
public class DataClassAnnotationChecker : DeclarationChecker {
|
||||
@@ -32,7 +34,7 @@ public class DataClassAnnotationChecker : DeclarationChecker {
|
||||
if (descriptor !is ClassDescriptor) return
|
||||
if (declaration !is JetClassOrObject) return
|
||||
|
||||
if (KotlinBuiltIns.isData(descriptor)) {
|
||||
if (descriptor.isData) {
|
||||
if (descriptor.unsubstitutedPrimaryConstructor == null && descriptor.constructors.isNotEmpty()) {
|
||||
declaration.nameIdentifier?.let { diagnosticHolder.report(Errors.PRIMARY_CONSTRUCTOR_REQUIRED_FOR_DATA_CLASS.on(it)) }
|
||||
}
|
||||
|
||||
@@ -31,9 +31,7 @@ import kotlin.jvm.functions.Function1;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.annotations.ReadOnly;
|
||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns;
|
||||
import org.jetbrains.kotlin.descriptors.*;
|
||||
import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptor;
|
||||
import org.jetbrains.kotlin.incremental.components.NoLookupLocation;
|
||||
import org.jetbrains.kotlin.lexer.JetTokens;
|
||||
import org.jetbrains.kotlin.name.Name;
|
||||
@@ -733,7 +731,7 @@ public class OverrideResolver {
|
||||
}
|
||||
|
||||
private void checkOverrideForComponentFunction(@NotNull final CallableMemberDescriptor componentFunction) {
|
||||
final PsiElement dataAnnotation = findDataAnnotationForDataClass(componentFunction.getContainingDeclaration());
|
||||
final PsiElement dataModifier = findDataModifierForDataClass(componentFunction.getContainingDeclaration());
|
||||
|
||||
checkOverridesForMemberMarkedOverride(componentFunction, false, new CheckOverrideReportStrategy() {
|
||||
private boolean overrideConflict = false;
|
||||
@@ -742,7 +740,7 @@ public class OverrideResolver {
|
||||
public void overridingFinalMember(@NotNull CallableMemberDescriptor overridden) {
|
||||
if (!overrideConflict) {
|
||||
overrideConflict = true;
|
||||
trace.report(DATA_CLASS_OVERRIDE_CONFLICT.on(dataAnnotation, componentFunction, overridden.getContainingDeclaration()));
|
||||
trace.report(DATA_CLASS_OVERRIDE_CONFLICT.on(dataModifier, componentFunction, overridden.getContainingDeclaration()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -750,7 +748,7 @@ public class OverrideResolver {
|
||||
public void returnTypeMismatchOnOverride(@NotNull CallableMemberDescriptor overridden) {
|
||||
if (!overrideConflict) {
|
||||
overrideConflict = true;
|
||||
trace.report(DATA_CLASS_OVERRIDE_CONFLICT.on(dataAnnotation, componentFunction, overridden.getContainingDeclaration()));
|
||||
trace.report(DATA_CLASS_OVERRIDE_CONFLICT.on(dataModifier, componentFunction, overridden.getContainingDeclaration()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -777,16 +775,7 @@ public class OverrideResolver {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private static PsiElement findDataAnnotationForDataClass(@NotNull DeclarationDescriptor dataClass) {
|
||||
AnnotationDescriptor annotation = dataClass.getAnnotations().findAnnotation(KotlinBuiltIns.FQ_NAMES.data);
|
||||
if (annotation != null) {
|
||||
JetAnnotationEntry entry = DescriptorToSourceUtils.getSourceFromAnnotation(annotation);
|
||||
if (entry != null) {
|
||||
return entry;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private static PsiElement findDataModifierForDataClass(@NotNull DeclarationDescriptor dataClass) {
|
||||
JetClass classDeclaration = (JetClass) DescriptorToSourceUtils.getSourceFromDescriptor(dataClass);
|
||||
if (classDeclaration != null && classDeclaration.getModifierList() != null) {
|
||||
PsiElement modifier = classDeclaration.getModifierList().getModifier(JetTokens.DATA_KEYWORD);
|
||||
@@ -795,7 +784,7 @@ public class OverrideResolver {
|
||||
}
|
||||
}
|
||||
|
||||
throw new IllegalStateException("No data annotation is found for data class " + dataClass);
|
||||
throw new IllegalStateException("No data modifier is found for data class " + dataClass);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
||||
+2
-3
@@ -17,7 +17,6 @@
|
||||
package org.jetbrains.kotlin.resolve.lazy.descriptors
|
||||
|
||||
import com.google.common.collect.Lists
|
||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||
import org.jetbrains.kotlin.descriptors.*
|
||||
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor.Kind.DELEGATION
|
||||
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor.Kind.FAKE_OVERRIDE
|
||||
@@ -136,7 +135,7 @@ public open class LazyClassMemberScope(
|
||||
}
|
||||
|
||||
private fun generateDataClassMethods(result: MutableCollection<FunctionDescriptor>, name: Name, location: LookupLocation) {
|
||||
if (!KotlinBuiltIns.isData(thisDescriptor)) return
|
||||
if (!thisDescriptor.isData) return
|
||||
|
||||
val constructor = getPrimaryConstructor() ?: return
|
||||
|
||||
@@ -243,7 +242,7 @@ public open class LazyClassMemberScope(
|
||||
}
|
||||
|
||||
private fun addDataClassMethods(result: MutableCollection<DeclarationDescriptor>, location: LookupLocation) {
|
||||
if (!KotlinBuiltIns.isData(thisDescriptor)) return
|
||||
if (!thisDescriptor.isData) return
|
||||
|
||||
if (getPrimaryConstructor() == null) return
|
||||
|
||||
|
||||
Reference in New Issue
Block a user