[UtilityClass] [issue #2384] Added a test to confirm no issue.

added some tests to confirm that lombok makes things static if needed.
This commit is contained in:
Reinier Zwitserloot committed 2020-03-15 06:59:31 +01:00
1 parent 3edac64911
commit 94440a8bd7
5 files changed
+27 -4

No files matched your search

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2015 The Project Lombok Authors.
* Copyright (C) 2015-2020 The Project Lombok Authors.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -113,7 +113,7 @@ public class HandleUtilityClass extends EclipseAnnotationHandler<UtilityClass> {
if (typeNode.up().getKind() == Kind.COMPILATION_UNIT) markStatic = false;
if (markStatic && typeNode.up().getKind() == Kind.TYPE) {
TypeDeclaration typeDecl = (TypeDeclaration) typeNode.up().get();
if ((typeDecl.modifiers & ClassFileConstants.AccInterface) != 0) markStatic = false;
if ((typeDecl.modifiers & (ClassFileConstants.AccInterface | ClassFileConstants.AccAnnotation | ClassFileConstants.AccEnum)) != 0) markStatic = false;
}
if (markStatic) classDecl.modifiers |= ClassFileConstants.AccStatic;
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2015 The Project Lombok Authors.
* Copyright (C) 2015-2020 The Project Lombok Authors.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -110,7 +110,7 @@ public class HandleUtilityClass extends JavacAnnotationHandler<UtilityClass> {
if (typeNode.up().getKind() == Kind.COMPILATION_UNIT) markStatic = false;
if (markStatic && typeNode.up().getKind() == Kind.TYPE) {
JCClassDecl typeDecl = (JCClassDecl) typeNode.up().get();
if ((typeDecl.mods.flags & Flags.INTERFACE) != 0) markStatic = false;
if ((typeDecl.mods.flags & (Flags.INTERFACE | Flags.ANNOTATION | Flags.ENUM)) != 0) markStatic = false;
}
if (markStatic) classDecl.mods.flags |= Flags.STATIC;
@@ -0,0 +1,8 @@
class UtilityClassInner {
static final class UtilClass {
@java.lang.SuppressWarnings("all")
private UtilClass() {
throw new java.lang.UnsupportedOperationException("This is a utility class and cannot be instantiated");
}
}
}
@@ -0,0 +1,11 @@
class UtilityClassInner {
static final @lombok.experimental.UtilityClass class UtilClass {
private @java.lang.SuppressWarnings("all") UtilClass() {
super();
throw new java.lang.UnsupportedOperationException("This is a utility class and cannot be instantiated");
}
}
UtilityClassInner() {
super();
}
}
@@ -0,0 +1,4 @@
class UtilityClassInner {
@lombok.experimental.UtilityClass
class UtilClass {}
}