From 8bf252f98cc422743e768396d8b438634a4f93bc Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Wed, 26 Feb 2014 16:19:08 +0400 Subject: [PATCH] MISSING_VAL_ON_ANNOTATION_PARAMETER reported in DeclarationsChecker --- .../jetbrains/jet/lang/resolve/DeclarationResolver.java | 5 ----- .../jetbrains/jet/lang/resolve/DeclarationsChecker.java | 9 +++++++++ 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DeclarationResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DeclarationResolver.java index dd21f2295c1..13ba4ab7e6e 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DeclarationResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DeclarationResolver.java @@ -239,8 +239,6 @@ public class DeclarationResolver { @NotNull MutableClassDescriptor classDescriptor, @NotNull JetClass klass ) { - boolean isAnnotationClass = DescriptorUtils.isAnnotationClass(classDescriptor); - // TODO : not all the parameters are real properties JetScope memberScope = classDescriptor.getScopeForClassHeaderResolution(); ConstructorDescriptor constructorDescriptor = descriptorResolver.resolvePrimaryConstructorDescriptor(memberScope, classDescriptor, klass, trace); @@ -262,9 +260,6 @@ public class DeclarationResolver { c.getPrimaryConstructorParameterProperties().put(parameter, propertyDescriptor); } else { - if (isAnnotationClass) { - trace.report(MISSING_VAL_ON_ANNOTATION_PARAMETER.on(parameter)); - } notProperties.add(valueParameterDescriptor); } } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DeclarationsChecker.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DeclarationsChecker.java index 32024e5c1f4..39e6a6f09d3 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DeclarationsChecker.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DeclarationsChecker.java @@ -212,6 +212,7 @@ public class DeclarationsChecker { } else if (aClass.isAnnotation()) { checkAnnotationClassWithBody(aClass); + checkValOnAnnotationParameter(aClass); } else if (aClass.isEnum()) { checkEnumModifiers(aClass); @@ -249,6 +250,14 @@ public class DeclarationsChecker { } } + private void checkValOnAnnotationParameter(JetClass aClass) { + for (JetParameter parameter : aClass.getPrimaryConstructorParameters()) { + if (parameter.getValOrVarNode() == null) { + trace.report(MISSING_VAL_ON_ANNOTATION_PARAMETER.on(parameter)); + } + } + } + private void checkOpenMembers(ClassDescriptorWithResolutionScopes classDescriptor) { for (CallableMemberDescriptor memberDescriptor : classDescriptor.getDeclaredCallableMembers()) { if (memberDescriptor.getKind() != CallableMemberDescriptor.Kind.DECLARATION) continue;