Additional Warnings in Event Bus Proc #8

Merged
kske merged 2 commits from f/additional-warnings into develop 2021-02-20 21:46:08 +01:00

View File

@ -63,6 +63,10 @@ public class EventProcessor extends AbstractProcessor {
else else
pass = true; pass = true;
// Warn the user about unused return values
if (useParameter && eventHandler.getReturnType().getKind() != TypeKind.VOID)
warning(eventHandler, "Unused return value");
// Abort checking if the handler signature is incorrect // Abort checking if the handler signature is incorrect
if (!pass) if (!pass)
continue; continue;
@ -80,14 +84,20 @@ public class EventProcessor extends AbstractProcessor {
} }
} }
// Detect missing or useless @Polymorphic
boolean polymorphic = eventHandler.getAnnotation(Polymorphic.class) != null;
Element eventElement = ((DeclaredType) eventType).asElement();
// Check for handlers for abstract types that aren't polymorphic // Check for handlers for abstract types that aren't polymorphic
Element eventElement = ((DeclaredType) eventType).asElement(); if (!polymorphic && (eventElement.getKind() == ElementKind.INTERFACE
if (eventHandler.getAnnotation(Polymorphic.class) == null || eventElement.getModifiers().contains(Modifier.ABSTRACT)))
&& (eventElement.getKind() == ElementKind.INTERFACE
|| eventElement.getModifiers().contains(Modifier.ABSTRACT))) {
warning(eventHandler, warning(eventHandler,
"Parameter should be instantiable or handler should use @Polymorphic"); "Parameter should be instantiable or handler should use @Polymorphic");
}
// Check for handlers for final types that are polymorphic
else if (polymorphic && eventElement.getModifiers().contains(Modifier.FINAL))
warning(eventHandler,
"@Polymorphic should be removed as parameter cannot be subclassed");
} }
} }