diff --git a/AUTHORS b/AUTHORS index 810efce94e..10ad3d14fc 100755 --- a/AUTHORS +++ b/AUTHORS @@ -19,6 +19,7 @@ Jacob Middag Jan Matèrne Jan Rieke Jappe van der Hel +Karthik kathari <44122128+varkart@users.noreply.github.com> Kevin Chirls Liu DongMiao Luan Nico diff --git a/src/core/lombok/javac/handlers/HandleLog.java b/src/core/lombok/javac/handlers/HandleLog.java index 957f558179..df3908dc7d 100644 --- a/src/core/lombok/javac/handlers/HandleLog.java +++ b/src/core/lombok/javac/handlers/HandleLog.java @@ -80,7 +80,7 @@ public static void processAnnotation(LoggingFramework framework, AnnotationValue return; } - if (useStatic && !isStaticAllowed(typeNode)) { + if (!typeNode.isEnumType() && useStatic && !isStaticAllowed(typeNode)) { annotationNode.addError(framework.getAnnotationAsString() + " is not supported on non-static nested classes."); return; } diff --git a/test/transform/resource/after-delombok/LoggerFlogger.java b/test/transform/resource/after-delombok/LoggerFlogger.java index 41d49fe463..0fe8083ad9 100644 --- a/test/transform/resource/after-delombok/LoggerFlogger.java +++ b/test/transform/resource/after-delombok/LoggerFlogger.java @@ -12,3 +12,15 @@ static class Inner { private static final com.google.common.flogger.FluentLogger log = com.google.common.flogger.FluentLogger.forEnclosingClass(); } } +enum LoggerFloggerWithEnum { + CONSTANT; + @java.lang.SuppressWarnings("all") + private static final com.google.common.flogger.FluentLogger log = com.google.common.flogger.FluentLogger.forEnclosingClass(); +} +class LoggerFloggerWithInnerEnum { + enum Inner { + CONSTANT; + @java.lang.SuppressWarnings("all") + private static final com.google.common.flogger.FluentLogger log = com.google.common.flogger.FluentLogger.forEnclosingClass(); + } +} diff --git a/test/transform/resource/after-delombok/LoggerJBossLog.java b/test/transform/resource/after-delombok/LoggerJBossLog.java index 5fd98aa6af..1f2a240ff0 100644 --- a/test/transform/resource/after-delombok/LoggerJBossLog.java +++ b/test/transform/resource/after-delombok/LoggerJBossLog.java @@ -12,6 +12,18 @@ static class Inner { private static final org.jboss.logging.Logger log = org.jboss.logging.Logger.getLogger(Inner.class); } } +enum LoggerJBossLogWithEnum { + CONSTANT; + @java.lang.SuppressWarnings("all") + private static final org.jboss.logging.Logger log = org.jboss.logging.Logger.getLogger(LoggerJBossLogWithEnum.class); +} +class LoggerJBossLogWithInnerEnum { + enum Inner { + CONSTANT; + @java.lang.SuppressWarnings("all") + private static final org.jboss.logging.Logger log = org.jboss.logging.Logger.getLogger(Inner.class); + } +} class LoggerJBossLogWithDifferentLoggerName { @java.lang.SuppressWarnings("all") diff --git a/test/transform/resource/after-delombok/LoggerJul.java b/test/transform/resource/after-delombok/LoggerJul.java index cfb44fdeac..471e614c67 100644 --- a/test/transform/resource/after-delombok/LoggerJul.java +++ b/test/transform/resource/after-delombok/LoggerJul.java @@ -14,4 +14,17 @@ class LoggerJulWithStaticField { @java.lang.SuppressWarnings("all") private static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(LoggerJulWithStaticField.TOPIC); static final String TOPIC = "StaticField"; +} +enum LoggerJulWithEnum { + CONSTANT; + @java.lang.SuppressWarnings("all") + private static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(LoggerJulWithEnum.class.getName()); +} +class LoggerJulWithInnerEnum { + + enum Inner { + CONSTANT; + @java.lang.SuppressWarnings("all") + private static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(Inner.class.getName()); + } } \ No newline at end of file diff --git a/test/transform/resource/after-delombok/LoggerLog4j.java b/test/transform/resource/after-delombok/LoggerLog4j.java index cef836217d..c07e14fa2d 100644 --- a/test/transform/resource/after-delombok/LoggerLog4j.java +++ b/test/transform/resource/after-delombok/LoggerLog4j.java @@ -15,3 +15,16 @@ class LoggerLog4jWithStaticField { private static final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(LoggerLog4jWithStaticField.TOPIC); static final String TOPIC = "StaticField"; } +enum LoggerLog4jWithEnum { + CONSTANT; + @java.lang.SuppressWarnings("all") + private static final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(LoggerLog4jWithEnum.class); +} +class LoggerLog4jWithInnerEnum { + + enum Inner { + CONSTANT; + @java.lang.SuppressWarnings("all") + private static final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(Inner.class); + } +} diff --git a/test/transform/resource/after-delombok/LoggerLog4j2.java b/test/transform/resource/after-delombok/LoggerLog4j2.java index cba516f2c5..5db281be94 100644 --- a/test/transform/resource/after-delombok/LoggerLog4j2.java +++ b/test/transform/resource/after-delombok/LoggerLog4j2.java @@ -15,4 +15,17 @@ class LoggerLog4j2WithStaticField { @java.lang.SuppressWarnings("all") private static final org.apache.logging.log4j.Logger log = org.apache.logging.log4j.LogManager.getLogger(LoggerLog4j2WithStaticField.TOPIC); static final String TOPIC = "StaticField"; +} +enum LoggerLog4j2WithEnum { + CONSTANT; + @java.lang.SuppressWarnings("all") + private static final org.apache.logging.log4j.Logger log = org.apache.logging.log4j.LogManager.getLogger(LoggerLog4j2WithEnum.class); +} +class LoggerLog4j2WithInnerEnum { + + enum Inner { + CONSTANT; + @java.lang.SuppressWarnings("all") + private static final org.apache.logging.log4j.Logger log = org.apache.logging.log4j.LogManager.getLogger(Inner.class); + } } \ No newline at end of file diff --git a/test/transform/resource/after-delombok/LoggerSlf4j.java b/test/transform/resource/after-delombok/LoggerSlf4j.java index 152c8708a2..099a65ad1d 100644 --- a/test/transform/resource/after-delombok/LoggerSlf4j.java +++ b/test/transform/resource/after-delombok/LoggerSlf4j.java @@ -6,6 +6,18 @@ class LoggerSlf4jWithImport { @java.lang.SuppressWarnings("all") private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LoggerSlf4jWithImport.class); } +enum LoggerSlf4jWithEnum { + CONSTANT; + @java.lang.SuppressWarnings("all") + private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LoggerSlf4jWithEnum.class); +} +class LoggerSlf4jWithInnerEnum { + enum Inner { + CONSTANT; + @java.lang.SuppressWarnings("all") + private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(Inner.class); + } +} class LoggerSlf4jOuter { static class Inner { @java.lang.SuppressWarnings("all") diff --git a/test/transform/resource/after-ecj/LoggerFlogger.java b/test/transform/resource/after-ecj/LoggerFlogger.java index d0526eee7d..b97082ff54 100644 --- a/test/transform/resource/after-ecj/LoggerFlogger.java +++ b/test/transform/resource/after-ecj/LoggerFlogger.java @@ -28,3 +28,26 @@ class LoggerFloggerOuter { super(); } } +@Flogger enum LoggerFloggerWithEnum { + CONSTANT(), + private static final com.google.common.flogger.FluentLogger log = com.google.common.flogger.FluentLogger.forEnclosingClass(); + () { + } + LoggerFloggerWithEnum() { + super(); + } +} +class LoggerFloggerWithInnerEnum { + @Flogger enum Inner { + CONSTANT(), + private static final com.google.common.flogger.FluentLogger log = com.google.common.flogger.FluentLogger.forEnclosingClass(); + () { + } + Inner() { + super(); + } + } + LoggerFloggerWithInnerEnum() { + super(); + } +} diff --git a/test/transform/resource/after-ecj/LoggerJBossLog.java b/test/transform/resource/after-ecj/LoggerJBossLog.java index c47f6c9e1c..13d332a680 100644 --- a/test/transform/resource/after-ecj/LoggerJBossLog.java +++ b/test/transform/resource/after-ecj/LoggerJBossLog.java @@ -28,6 +28,29 @@ class LoggerJBossLogOuter { super(); } } +@JBossLog enum LoggerJBossLogWithEnum { + CONSTANT(), + private static final org.jboss.logging.Logger log = org.jboss.logging.Logger.getLogger(LoggerJBossLogWithEnum.class); + () { + } + LoggerJBossLogWithEnum() { + super(); + } +} +class LoggerJBossLogWithInnerEnum { + @JBossLog enum Inner { + CONSTANT(), + private static final org.jboss.logging.Logger log = org.jboss.logging.Logger.getLogger(Inner.class); + () { + } + Inner() { + super(); + } + } + LoggerJBossLogWithInnerEnum() { + super(); + } +} @JBossLog(topic = "DifferentLogger") class LoggerJBossLogWithDifferentLoggerName { private static final org.jboss.logging.Logger log = org.jboss.logging.Logger.getLogger("DifferentLogger"); () { diff --git a/test/transform/resource/after-ecj/LoggerJul.java b/test/transform/resource/after-ecj/LoggerJul.java index 20cc5407d7..d1408245df 100644 --- a/test/transform/resource/after-ecj/LoggerJul.java +++ b/test/transform/resource/after-ecj/LoggerJul.java @@ -31,4 +31,27 @@ LoggerJulWithStaticField() { super(); } +} +@Log enum LoggerJulWithEnum { + CONSTANT(), + private static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(LoggerJulWithEnum.class.getName()); + () { + } + LoggerJulWithEnum() { + super(); + } +} +class LoggerJulWithInnerEnum { + @Log enum Inner { + CONSTANT(), + private static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(Inner.class.getName()); + () { + } + Inner() { + super(); + } + } + LoggerJulWithInnerEnum() { + super(); + } } \ No newline at end of file diff --git a/test/transform/resource/after-ecj/LoggerLog4j.java b/test/transform/resource/after-ecj/LoggerLog4j.java index e7d6c8132e..4d67b13359 100644 --- a/test/transform/resource/after-ecj/LoggerLog4j.java +++ b/test/transform/resource/after-ecj/LoggerLog4j.java @@ -31,4 +31,27 @@ LoggerLog4jWithStaticField() { super(); } +} +@Log4j enum LoggerLog4jWithEnum { + CONSTANT(), + private static final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(LoggerLog4jWithEnum.class); + () { + } + LoggerLog4jWithEnum() { + super(); + } +} +class LoggerLog4jWithInnerEnum { + @Log4j enum Inner { + CONSTANT(), + private static final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(Inner.class); + () { + } + Inner() { + super(); + } + } + LoggerLog4jWithInnerEnum() { + super(); + } } \ No newline at end of file diff --git a/test/transform/resource/after-ecj/LoggerLog4j2.java b/test/transform/resource/after-ecj/LoggerLog4j2.java index 88def98d20..72d4ff5fd8 100644 --- a/test/transform/resource/after-ecj/LoggerLog4j2.java +++ b/test/transform/resource/after-ecj/LoggerLog4j2.java @@ -31,4 +31,27 @@ LoggerLog4j2WithStaticField() { super(); } +} +@Log4j2 enum LoggerLog4j2WithEnum { + CONSTANT(), + private static final org.apache.logging.log4j.Logger log = org.apache.logging.log4j.LogManager.getLogger(LoggerLog4j2WithEnum.class); + () { + } + LoggerLog4j2WithEnum() { + super(); + } +} +class LoggerLog4j2WithInnerEnum { + @Log4j2 enum Inner { + CONSTANT(), + private static final org.apache.logging.log4j.Logger log = org.apache.logging.log4j.LogManager.getLogger(Inner.class); + () { + } + Inner() { + super(); + } + } + LoggerLog4j2WithInnerEnum() { + super(); + } } \ No newline at end of file diff --git a/test/transform/resource/after-ecj/LoggerSlf4j.java b/test/transform/resource/after-ecj/LoggerSlf4j.java index 286d023b27..85e491865e 100644 --- a/test/transform/resource/after-ecj/LoggerSlf4j.java +++ b/test/transform/resource/after-ecj/LoggerSlf4j.java @@ -15,6 +15,29 @@ super(); } } +@Slf4j enum LoggerSlf4jWithEnum { + CONSTANT(), + private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LoggerSlf4jWithEnum.class); + () { + } + LoggerSlf4jWithEnum() { + super(); + } +} +class LoggerSlf4jWithInnerEnum { + @Slf4j enum Inner { + CONSTANT(), + private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(Inner.class); + () { + } + Inner() { + super(); + } + } + LoggerSlf4jWithInnerEnum() { + super(); + } +} class LoggerSlf4jOuter { static @lombok.extern.slf4j.Slf4j class Inner { private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(Inner.class); diff --git a/test/transform/resource/before/LoggerFlogger.java b/test/transform/resource/before/LoggerFlogger.java index b143aae91a..ff0249c766 100644 --- a/test/transform/resource/before/LoggerFlogger.java +++ b/test/transform/resource/before/LoggerFlogger.java @@ -14,3 +14,15 @@ static class Inner { } } + +@Flogger +enum LoggerFloggerWithEnum { + CONSTANT; +} + +class LoggerFloggerWithInnerEnum { + @Flogger + enum Inner { + CONSTANT; + } +} \ No newline at end of file diff --git a/test/transform/resource/before/LoggerJBossLog.java b/test/transform/resource/before/LoggerJBossLog.java index f348086741..a26a0f7bfb 100644 --- a/test/transform/resource/before/LoggerJBossLog.java +++ b/test/transform/resource/before/LoggerJBossLog.java @@ -15,6 +15,18 @@ static class Inner { } } +@JBossLog +enum LoggerJBossLogWithEnum { + CONSTANT; +} + +class LoggerJBossLogWithInnerEnum { + @JBossLog + enum Inner { + CONSTANT; + } +} + @JBossLog(topic="DifferentLogger") class LoggerJBossLogWithDifferentLoggerName { } diff --git a/test/transform/resource/before/LoggerJul.java b/test/transform/resource/before/LoggerJul.java index 7b10d01506..24fcdcdeaf 100644 --- a/test/transform/resource/before/LoggerJul.java +++ b/test/transform/resource/before/LoggerJul.java @@ -15,4 +15,16 @@ class LoggerJulWithDifferentName { @Log(topic=LoggerJulWithStaticField.TOPIC) class LoggerJulWithStaticField { static final String TOPIC = "StaticField"; +} + +@Log +enum LoggerJulWithEnum { + CONSTANT; +} + +class LoggerJulWithInnerEnum { + @Log + enum Inner { + CONSTANT; + } } \ No newline at end of file diff --git a/test/transform/resource/before/LoggerLog4j.java b/test/transform/resource/before/LoggerLog4j.java index b7086a05e3..3be24d7426 100644 --- a/test/transform/resource/before/LoggerLog4j.java +++ b/test/transform/resource/before/LoggerLog4j.java @@ -15,4 +15,16 @@ class LoggerLog4jWithDifferentName { @Log4j(topic=LoggerLog4jWithStaticField.TOPIC) class LoggerLog4jWithStaticField { static final String TOPIC = "StaticField"; +} + +@Log4j +enum LoggerLog4jWithEnum { + CONSTANT; +} + +class LoggerLog4jWithInnerEnum { + @Log4j + enum Inner { + CONSTANT; + } } \ No newline at end of file diff --git a/test/transform/resource/before/LoggerLog4j2.java b/test/transform/resource/before/LoggerLog4j2.java index 1dd48d7a87..bf717cb846 100644 --- a/test/transform/resource/before/LoggerLog4j2.java +++ b/test/transform/resource/before/LoggerLog4j2.java @@ -16,4 +16,16 @@ class LoggerLog4j2WithDifferentName { @Log4j2(topic=LoggerLog4j2WithStaticField.TOPIC) class LoggerLog4j2WithStaticField { static final String TOPIC = "StaticField"; +} + +@Log4j2 +enum LoggerLog4j2WithEnum { + CONSTANT; +} + +class LoggerLog4j2WithInnerEnum { + @Log4j2 + enum Inner { + CONSTANT; + } } \ No newline at end of file diff --git a/test/transform/resource/before/LoggerSlf4j.java b/test/transform/resource/before/LoggerSlf4j.java index c59db4ee6f..f6310bf5db 100644 --- a/test/transform/resource/before/LoggerSlf4j.java +++ b/test/transform/resource/before/LoggerSlf4j.java @@ -8,6 +8,18 @@ class LoggerSlf4j { class LoggerSlf4jWithImport { } +@Slf4j +enum LoggerSlf4jWithEnum { + CONSTANT; +} + +class LoggerSlf4jWithInnerEnum { + @Slf4j + enum Inner { + CONSTANT; + } +} + class LoggerSlf4jOuter { @lombok.extern.slf4j.Slf4j static class Inner {