Extract and use ModifiersChecker#reportIllegalModifiers()
This commit is contained in:
@@ -379,9 +379,7 @@ public class BodyResolver {
|
||||
|
||||
annotationResolver.resolveAnnotationsWithArguments(scope, modifierList, trace);
|
||||
|
||||
for (ASTNode node : modifierList.getModifierNodes()) {
|
||||
trace.report(ILLEGAL_MODIFIER.on(node.getPsi(), (JetModifierKeywordToken) node.getElementType()));
|
||||
}
|
||||
ModifiersChecker.reportIllegalModifiers(modifierList, Arrays.asList(JetTokens.MODIFIER_KEYWORDS_ARRAY), trace);
|
||||
}
|
||||
|
||||
private void resolvePrimaryConstructorParameters(@NotNull BodiesResolveContext c) {
|
||||
|
||||
@@ -19,7 +19,6 @@ package org.jetbrains.jet.lang.resolve;
|
||||
import com.google.common.collect.Multimap;
|
||||
import com.google.common.collect.Sets;
|
||||
import com.intellij.lang.ASTNode;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.lang.descriptors.*;
|
||||
@@ -131,11 +130,7 @@ public class DeclarationsChecker {
|
||||
}
|
||||
}
|
||||
|
||||
for (JetModifierKeywordToken token : JetTokens.MODIFIER_KEYWORDS_ARRAY) {
|
||||
if (modifierList.hasModifier(token)) {
|
||||
trace.report(ILLEGAL_MODIFIER.on(modifierList.getModifier(token), token));
|
||||
}
|
||||
}
|
||||
ModifiersChecker.reportIllegalModifiers(modifierList, Arrays.asList(JetTokens.MODIFIER_KEYWORDS_ARRAY), trace);
|
||||
}
|
||||
|
||||
private void checkTypesInClassHeader(@NotNull JetClassOrObject classOrObject) {
|
||||
|
||||
@@ -1449,16 +1449,7 @@ public class DescriptorResolver {
|
||||
@NotNull BindingTrace trace,
|
||||
@NotNull JetParameter parameter
|
||||
) {
|
||||
JetModifierList modifierList = parameter.getModifierList();
|
||||
if (modifierList != null) {
|
||||
for (JetModifierKeywordToken illegalModifierType : MODIFIERS_ILLEGAL_ON_PARAMETERS) {
|
||||
if (modifierList.hasModifier(illegalModifierType)) {
|
||||
PsiElement illegalModifier = modifierList.getModifier(illegalModifierType);
|
||||
assert illegalModifier != null;
|
||||
trace.report(ILLEGAL_MODIFIER.on(illegalModifier, illegalModifierType));
|
||||
}
|
||||
}
|
||||
}
|
||||
ModifiersChecker.reportIllegalModifiers(parameter.getModifierList(), MODIFIERS_ILLEGAL_ON_PARAMETERS, trace);
|
||||
}
|
||||
|
||||
public static void resolvePackageHeader(
|
||||
|
||||
@@ -36,6 +36,7 @@ import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
|
||||
import static org.jetbrains.jet.lang.diagnostics.Errors.ILLEGAL_MODIFIER;
|
||||
import static org.jetbrains.jet.lexer.JetTokens.*;
|
||||
|
||||
public class ModifiersChecker {
|
||||
@@ -45,6 +46,22 @@ public class ModifiersChecker {
|
||||
private static final Collection<JetModifierKeywordToken> VISIBILITY_MODIFIERS =
|
||||
Lists.newArrayList(PRIVATE_KEYWORD, PROTECTED_KEYWORD, PUBLIC_KEYWORD, INTERNAL_KEYWORD);
|
||||
|
||||
public static void reportIllegalModifiers(
|
||||
@Nullable JetModifierList modifierList,
|
||||
@NotNull Collection<JetModifierKeywordToken> illegalModifiers,
|
||||
@NotNull BindingTrace trace
|
||||
) {
|
||||
if (modifierList == null) return;
|
||||
|
||||
for (JetModifierKeywordToken modifierToken : illegalModifiers) {
|
||||
if (modifierList.hasModifier(modifierToken)) {
|
||||
PsiElement modifierPsi = modifierList.getModifier(modifierToken);
|
||||
assert modifierPsi != null;
|
||||
trace.report(ILLEGAL_MODIFIER.on(modifierPsi, modifierToken));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private final BindingTrace trace;
|
||||
|
||||
@@ -163,13 +180,11 @@ public class ModifiersChecker {
|
||||
}
|
||||
}
|
||||
|
||||
public void checkIllegalInThisContextModifiers(@Nullable JetModifierList modifierList, @NotNull Collection<JetModifierKeywordToken> illegalModifiers) {
|
||||
if (modifierList == null) return;
|
||||
for (JetModifierKeywordToken modifier : illegalModifiers) {
|
||||
if (modifierList.hasModifier(modifier)) {
|
||||
trace.report(Errors.ILLEGAL_MODIFIER.on(modifierList.getModifierNode(modifier).getPsi(), modifier));
|
||||
}
|
||||
}
|
||||
public void checkIllegalInThisContextModifiers(
|
||||
@Nullable JetModifierList modifierList,
|
||||
@NotNull Collection<JetModifierKeywordToken> illegalModifiers
|
||||
) {
|
||||
reportIllegalModifiers(modifierList, illegalModifiers, trace);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
Reference in New Issue
Block a user