mirror of
https://github.com/tiennm99/lombok.git
synced 2026-08-24 10:27:17 +00:00
[fixes #2990] Treat records and enums as places where static is allowed.
This commit is contained in:
@@ -2770,15 +2770,7 @@ public class EclipseHandlerUtil {
|
||||
* Returns {@code true} if the provided node supports static methods and types (top level or static class)
|
||||
*/
|
||||
public static boolean isStaticAllowed(EclipseNode typeNode) {
|
||||
boolean staticAllowed = true;
|
||||
|
||||
while (typeNode.getKind() != Kind.COMPILATION_UNIT) {
|
||||
if (!staticAllowed) return false;
|
||||
|
||||
staticAllowed = typeNode.isStatic();
|
||||
typeNode = typeNode.up();
|
||||
}
|
||||
return true;
|
||||
return typeNode.isStatic() || typeNode.up() == null || typeNode.up().getKind() == Kind.COMPILATION_UNIT || isRecord(typeNode);
|
||||
}
|
||||
|
||||
public static AbstractVariableDeclaration[] getRecordComponents(TypeDeclaration typeDeclaration) {
|
||||
|
||||
@@ -80,7 +80,7 @@ public class HandleLog {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!typeNode.isEnumType() && useStatic && !isStaticAllowed(typeNode)) {
|
||||
if (useStatic && !isStaticAllowed(typeNode)) {
|
||||
annotationNode.addError(framework.getAnnotationAsString() + " is not supported on non-static nested classes.");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -2096,15 +2096,7 @@ public class JavacHandlerUtil {
|
||||
* Returns {@code true} if the provided node supports static methods and types (top level or static class)
|
||||
*/
|
||||
public static boolean isStaticAllowed(JavacNode typeNode) {
|
||||
boolean staticAllowed = true;
|
||||
|
||||
while (typeNode.getKind() != Kind.COMPILATION_UNIT) {
|
||||
if (!staticAllowed) return false;
|
||||
|
||||
staticAllowed = typeNode.isStatic();
|
||||
typeNode = typeNode.up();
|
||||
}
|
||||
return true;
|
||||
return typeNode.isStatic() || typeNode.up() == null || typeNode.up().getKind() == Kind.COMPILATION_UNIT || isRecord(typeNode);
|
||||
}
|
||||
|
||||
public static JavacNode upToTypeNode(JavacNode node) {
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
class LoggerFloggerRecord {
|
||||
record Inner(String x) {
|
||||
@java.lang.SuppressWarnings("all")
|
||||
private static final com.google.common.flogger.FluentLogger log = com.google.common.flogger.FluentLogger.forEnclosingClass();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
import lombok.extern.flogger.Flogger;
|
||||
class LoggerFloggerRecord {
|
||||
static @Flogger record Inner(String x) {
|
||||
private static final com.google.common.flogger.FluentLogger log = com.google.common.flogger.FluentLogger.forEnclosingClass();
|
||||
/* Implicit */ private final String x;
|
||||
<clinit>() {
|
||||
}
|
||||
public Inner(String x) {
|
||||
super();
|
||||
.x = x;
|
||||
}
|
||||
}
|
||||
LoggerFloggerRecord() {
|
||||
super();
|
||||
}
|
||||
}
|
||||
@@ -25,4 +25,4 @@ class LoggerFloggerWithInnerEnum {
|
||||
enum Inner {
|
||||
CONSTANT;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
// version 14:
|
||||
|
||||
import lombok.extern.flogger.Flogger;
|
||||
|
||||
class LoggerFloggerRecord {
|
||||
@Flogger
|
||||
record Inner(String x) {}
|
||||
}
|
||||
Reference in New Issue
Block a user