diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/Errors.java b/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/Errors.java index a75cf063278..65582adaac5 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/Errors.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/Errors.java @@ -71,14 +71,7 @@ public interface Errors { SimpleDiagnosticFactory TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM = SimpleDiagnosticFactory.create(ERROR); SimpleDiagnosticFactory RETURN_NOT_ALLOWED = SimpleDiagnosticFactory.create(ERROR); SimpleDiagnosticFactory PROJECTION_IN_IMMEDIATE_ARGUMENT_TO_SUPERTYPE = - SimpleDiagnosticFactory.create(ERROR, - new PositioningStrategy() { - @NotNull - @Override - public List mark(@NotNull JetTypeProjection element) { - return markNode(element.getProjectionNode()); - } - }); + SimpleDiagnosticFactory.create(ERROR, PositioningStrategies.PROJECTION_MODIFIER); SimpleDiagnosticFactoryLABEL_NAME_CLASH = SimpleDiagnosticFactory.create(WARNING); SimpleDiagnosticFactory EXPRESSION_EXPECTED_NAMESPACE_FOUND = SimpleDiagnosticFactory.create(ERROR); @@ -143,7 +136,7 @@ public interface Errors { SimpleDiagnosticFactory.create(ERROR, PositioningStrategies.POSITION_NAME_IDENTIFIER); SimpleDiagnosticFactory PROJECTION_ON_NON_CLASS_TYPE_ARGUMENT = - SimpleDiagnosticFactory.create(ERROR); // TODO : better positioning + SimpleDiagnosticFactory.create(ERROR, PositioningStrategies.PROJECTION_MODIFIER); SimpleDiagnosticFactory SUPERTYPE_NOT_INITIALIZED = SimpleDiagnosticFactory.create(ERROR); SimpleDiagnosticFactory SUPERTYPE_NOT_INITIALIZED_DEFAULT = SimpleDiagnosticFactory.create(ERROR); SimpleDiagnosticFactory SECONDARY_CONSTRUCTOR_BUT_NO_PRIMARY = SimpleDiagnosticFactory.create(ERROR); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/PositioningStrategies.java b/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/PositioningStrategies.java index 5cfdb034a23..e25aaa85e88 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/PositioningStrategies.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/PositioningStrategies.java @@ -28,6 +28,7 @@ import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lexer.JetKeywordToken; import org.jetbrains.jet.lexer.JetTokens; +import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -133,4 +134,12 @@ public class PositioningStrategies { return result; } }; + + public static PositioningStrategy PROJECTION_MODIFIER = new PositioningStrategy() { + @NotNull + @Override + public List mark(@NotNull JetTypeProjection element) { + return markNode(element.getProjectionNode()); + } + }; } \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/ProjectionOnFunctionArgumentErrror.jet b/compiler/testData/diagnostics/tests/ProjectionOnFunctionArgumentErrror.jet index e8b80c8f4ca..3248de9941e 100644 --- a/compiler/testData/diagnostics/tests/ProjectionOnFunctionArgumentErrror.jet +++ b/compiler/testData/diagnostics/tests/ProjectionOnFunctionArgumentErrror.jet @@ -1,4 +1,4 @@ fun test() { fun foo(){} - foo<in Int>() + foo<in Int>() }