Added quickfix for CONFLICTING_PROJECTION
This commit is contained in:
committed by
Evgeny Gerashchenko
parent
56774cccd8
commit
50f8948706
@@ -104,7 +104,7 @@ public class QuickFixes {
|
||||
factories.put(ABSTRACT_MODIFIER_IN_TRAIT, RemoveModifierFix.createRemoveModifierFromListOwnerFactory(ABSTRACT_KEYWORD, true));
|
||||
factories.put(OPEN_MODIFIER_IN_TRAIT, RemoveModifierFix.createRemoveModifierFromListOwnerFactory(OPEN_KEYWORD, true));
|
||||
factories.put(TRAIT_CAN_NOT_BE_FINAL, removeFinalModifierFactory);
|
||||
factories.put(REDUNDANT_PROJECTION, RemoveModifierFix.createRemoveProjectionFactory());
|
||||
factories.put(REDUNDANT_PROJECTION, RemoveModifierFix.createRemoveProjectionFactory(true));
|
||||
factories.put(INCOMPATIBLE_MODIFIERS, RemoveModifierFix.createRemoveModifierFactory(false));
|
||||
factories.put(VARIANCE_ON_TYPE_PARAMETER_OF_FUNCTION_OR_PROPERTY, RemoveModifierFix.createRemoveVarianceFactory());
|
||||
|
||||
@@ -202,6 +202,8 @@ public class QuickFixes {
|
||||
|
||||
factories.put(NESTED_CLASS_NOT_ALLOWED, AddModifierFix.createFactory(INNER_KEYWORD));
|
||||
|
||||
factories.put(CONFLICTING_PROJECTION, RemoveModifierFix.createRemoveProjectionFactory(false));
|
||||
|
||||
factories.put(NOT_AN_ANNOTATION_CLASS, MakeClassAnAnnotationClassFix.createFactory());
|
||||
|
||||
factories.put(DANGLING_FUNCTION_LITERAL_ARGUMENT_SUSPECTED, AddSemicolonAfterFunctionCallFix.createFactory());
|
||||
|
||||
@@ -31,7 +31,6 @@ import org.jetbrains.jet.lang.psi.JetModifierList;
|
||||
import org.jetbrains.jet.lang.psi.JetModifierListOwner;
|
||||
import org.jetbrains.jet.lang.psi.JetTypeParameter;
|
||||
import org.jetbrains.jet.lang.psi.JetTypeProjection;
|
||||
import org.jetbrains.jet.lang.psi.stubs.elements.JetTypeParameterElementType;
|
||||
import org.jetbrains.jet.lang.types.Variance;
|
||||
import org.jetbrains.jet.lexer.JetKeywordToken;
|
||||
import org.jetbrains.jet.lexer.JetToken;
|
||||
@@ -140,7 +139,7 @@ public class RemoveModifierFix extends JetIntentionAction<JetModifierListOwner>
|
||||
};
|
||||
}
|
||||
|
||||
public static JetIntentionActionFactory createRemoveProjectionFactory() {
|
||||
public static JetIntentionActionFactory createRemoveProjectionFactory(final boolean isRedundant) {
|
||||
return new JetIntentionActionFactory() {
|
||||
@Nullable
|
||||
@Override
|
||||
@@ -152,7 +151,7 @@ public class RemoveModifierFix extends JetIntentionAction<JetModifierListOwner>
|
||||
IElementType elementType = projectionAstNode.getElementType();
|
||||
if (!(elementType instanceof JetKeywordToken)) return null;
|
||||
JetKeywordToken variance = (JetKeywordToken) elementType;
|
||||
return new RemoveModifierFix(projection, variance, true);
|
||||
return new RemoveModifierFix(projection, variance, isRedundant);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
// "Remove 'in' modifier" "true"
|
||||
class Foo<out T> {}
|
||||
|
||||
fun bar(x : Foo<Any>) {}
|
||||
@@ -0,0 +1,4 @@
|
||||
// "Remove 'in' modifier" "true"
|
||||
class Foo<out T> {}
|
||||
|
||||
fun bar(x : Foo<<caret>in Any>) {}
|
||||
Reference in New Issue
Block a user