Report default object specific diagnostics on 'default' modifier

This commit is contained in:
Pavel V. Talanov
2015-03-06 16:21:58 +03:00
parent 012d25dbca
commit 5540f09751
10 changed files with 31 additions and 22 deletions
@@ -188,8 +188,8 @@ public interface Errors {
// Default objects
DiagnosticFactory0<JetObjectDeclaration> MANY_DEFAULT_OBJECTS = DiagnosticFactory0.create(ERROR);
DiagnosticFactory0<JetObjectDeclaration> DEFAULT_OBJECT_NOT_ALLOWED = DiagnosticFactory0.create(ERROR);
DiagnosticFactory0<JetObjectDeclaration> MANY_DEFAULT_OBJECTS = DiagnosticFactory0.create(ERROR, DEFAULT_OBJECT);
DiagnosticFactory0<JetObjectDeclaration> DEFAULT_OBJECT_NOT_ALLOWED = DiagnosticFactory0.create(ERROR, DEFAULT_OBJECT);
// Objects
@@ -364,4 +364,13 @@ public object PositioningStrategies {
return markRange(element.getOperationReference(), element)
}
}
public val DEFAULT_OBJECT: PositioningStrategy<JetObjectDeclaration> = object : PositioningStrategy<JetObjectDeclaration>() {
override fun mark(element: JetObjectDeclaration): List<TextRange> {
if (element.hasModifier(JetTokens.DEFAULT_KEYWORD)) {
return modifierSetPosition(JetTokens.DEFAULT_KEYWORD).mark(element)
}
return DEFAULT.mark(element)
}
}
}