mirror of
https://github.com/tiennm99/lombok.git
synced 2026-10-14 08:18:29 +00:00
Merge branch 'master' into netbeans
This commit is contained in:
commit
64f47685ca
25 files changed
+258
-81
No files matched your search
@@ -75,6 +75,10 @@ the common tasks and can be called on to run the main aspects of all the sub-scr
|
||||
</ant>
|
||||
</target>
|
||||
|
||||
<target name="test" depends="compile">
|
||||
<ant antfile="buildScripts/test.ant.xml" target="test" />
|
||||
</target>
|
||||
|
||||
<target name="findbugs" description="Runs findbugs on the code">
|
||||
<ant antfile="buildScripts/compile.ant.xml" target="findbugs" inheritAll="false" />
|
||||
</target>
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
<!--
|
||||
Copyright © 2009 Reinier Zwitserloot and Roel Spilker.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
-->
|
||||
<project name="lombok-test" basedir=".." default="test">
|
||||
<description>
|
||||
This buildfile is part of projectlombok.org. It responsible for running unit tests.
|
||||
</description>
|
||||
|
||||
<path id="deps.path">
|
||||
<fileset dir="deps/lombok">
|
||||
<include name="**/*.jar" />
|
||||
<exclude name="**/ant.jar" />
|
||||
</fileset>
|
||||
<fileset dir="deps">
|
||||
<include name="*.jar" />
|
||||
</fileset>
|
||||
</path>
|
||||
|
||||
<path id="libs.path">
|
||||
<fileset dir="lib/lombok">
|
||||
<include name="**/*.jar" />
|
||||
</fileset>
|
||||
<fileset dir="lib">
|
||||
<include name="*.jar" />
|
||||
</fileset>
|
||||
</path>
|
||||
|
||||
<target name="-test-compile" unless="skipTests">
|
||||
<mkdir dir="build/tests" />
|
||||
<javac debug="on" destdir="build/tests" target="1.5">
|
||||
<classpath refid="deps.path" />
|
||||
<classpath refid="libs.path" />
|
||||
<classpath path="build/lombok" />
|
||||
<src path="test/core/src" />
|
||||
<src path="test/delombok/src" />
|
||||
</javac>
|
||||
<copy todir="build/tests">
|
||||
<fileset dir="test/lombok/resource" />
|
||||
<fileset dir="test/delombok/resource" />
|
||||
</copy>
|
||||
</target>
|
||||
|
||||
<target name="test" depends="-test-compile" unless="tests.skip">
|
||||
<junit haltonfailure="yes" fork="on">
|
||||
<formatter type="plain" usefile="false" unless="tests.quiet" />
|
||||
<classpath refid="deps.path" />
|
||||
<classpath refid="libs.path" />
|
||||
<classpath path="build/lombok" />
|
||||
<classpath path="build/tests" />
|
||||
<batchtest>
|
||||
<fileset dir="test/core/src">
|
||||
<include name="**/Test*.java" />
|
||||
</fileset>
|
||||
<fileset dir="test/delombok/src">
|
||||
<include name="**/Test*.java" />
|
||||
</fileset>
|
||||
</batchtest>
|
||||
</junit>
|
||||
<echo level="info">All tests successful.</echo>
|
||||
</target>
|
||||
</project>
|
||||
@@ -30,6 +30,7 @@ import java.lang.reflect.ParameterizedType;
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.IdentityHashMap;
|
||||
import java.util.List;
|
||||
@@ -52,12 +53,16 @@ public abstract class AST<A extends AST<A, L, N>, L extends LombokNode<A, L, N>,
|
||||
|
||||
private L top;
|
||||
private final String fileName;
|
||||
private final String packageDeclaration;
|
||||
private final Collection<String> imports;
|
||||
Map<N, Void> identityDetector = new IdentityHashMap<N, Void>();
|
||||
private Map<N, L> nodeMap = new IdentityHashMap<N, L>();
|
||||
private boolean changed = false;
|
||||
|
||||
protected AST(String fileName) {
|
||||
protected AST(String fileName, String packageDeclaration, Collection<String> imports) {
|
||||
this.fileName = fileName == null ? "(unknown).java" : fileName;
|
||||
this.packageDeclaration = packageDeclaration;
|
||||
this.imports = Collections.unmodifiableCollection(new ArrayList<String>(imports));
|
||||
}
|
||||
|
||||
protected void setChanged() {
|
||||
@@ -82,14 +87,18 @@ public abstract class AST<A extends AST<A, L, N>, L extends LombokNode<A, L, N>,
|
||||
*
|
||||
* Example: "java.util".
|
||||
*/
|
||||
public abstract String getPackageDeclaration();
|
||||
public final String getPackageDeclaration() {
|
||||
return packageDeclaration;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the contents of each non-static import statement on this AST's top (Compilation Unit) node.
|
||||
*
|
||||
* Example: "java.util.IOException".
|
||||
*/
|
||||
public abstract Collection<String> getImportStatements();
|
||||
public final Collection<String> getImportStatements() {
|
||||
return imports;
|
||||
}
|
||||
|
||||
/**
|
||||
* Puts the given node in the map so that javac/Eclipse's own internal AST object can be translated to
|
||||
|
||||
@@ -56,30 +56,25 @@ public class EclipseAST extends AST<EclipseAST, EclipseNode, ASTNode> {
|
||||
* @param ast The compilation unit, which serves as the top level node in the tree to be built.
|
||||
*/
|
||||
public EclipseAST(CompilationUnitDeclaration ast) {
|
||||
super(toFileName(ast));
|
||||
super(toFileName(ast), packageDeclaration(ast), imports(ast));
|
||||
this.compilationUnitDeclaration = ast;
|
||||
setTop(buildCompilationUnit(ast));
|
||||
this.completeParse = isComplete(ast);
|
||||
clearChanged();
|
||||
}
|
||||
|
||||
/** {@inheritDoc} */
|
||||
@Override public String getPackageDeclaration() {
|
||||
CompilationUnitDeclaration cud = (CompilationUnitDeclaration) top().get();
|
||||
private static String packageDeclaration(CompilationUnitDeclaration cud) {
|
||||
ImportReference pkg = cud.currentPackage;
|
||||
return pkg == null ? null : Eclipse.toQualifiedName(pkg.getImportName());
|
||||
}
|
||||
|
||||
/** {@inheritDoc} */
|
||||
@Override public Collection<String> getImportStatements() {
|
||||
private static Collection<String> imports(CompilationUnitDeclaration cud) {
|
||||
List<String> imports = new ArrayList<String>();
|
||||
CompilationUnitDeclaration cud = (CompilationUnitDeclaration) top().get();
|
||||
if (cud.imports == null) return imports;
|
||||
for (ImportReference imp : cud.imports) {
|
||||
if (imp == null) continue;
|
||||
imports.add(Eclipse.toQualifiedName(imp.getImportName()));
|
||||
}
|
||||
|
||||
return imports;
|
||||
}
|
||||
|
||||
|
||||
@@ -71,7 +71,7 @@ public class JavacAST extends AST<JavacAST, JavacNode, JCTree> {
|
||||
* @param top The compilation unit, which serves as the top level node in the tree to be built.
|
||||
*/
|
||||
public JavacAST(Messager messager, Context context, JCCompilationUnit top) {
|
||||
super(top.sourcefile == null ? null : top.sourcefile.toString());
|
||||
super(sourceName(top), packageDeclaration(top), imports(top));
|
||||
setTop(buildCompilationUnit(top));
|
||||
this.context = context;
|
||||
this.messager = messager;
|
||||
@@ -81,30 +81,29 @@ public class JavacAST extends AST<JavacAST, JavacNode, JCTree> {
|
||||
this.symtab = Symtab.instance(context);
|
||||
clearChanged();
|
||||
}
|
||||
|
||||
public Context getContext() {
|
||||
return context;
|
||||
|
||||
private static String sourceName(JCCompilationUnit cu) {
|
||||
return cu.sourcefile == null ? null : cu.sourcefile.toString();
|
||||
}
|
||||
|
||||
/** {@inheritDoc} */
|
||||
@Override public String getPackageDeclaration() {
|
||||
JCCompilationUnit unit = (JCCompilationUnit)top().get();
|
||||
return unit.pid instanceof JCFieldAccess ? unit.pid.toString() : null;
|
||||
private static String packageDeclaration(JCCompilationUnit cu) {
|
||||
return cu.pid instanceof JCFieldAccess ? cu.pid.toString() : null;
|
||||
}
|
||||
|
||||
/** {@inheritDoc} */
|
||||
@Override public Collection<String> getImportStatements() {
|
||||
private static Collection<String> imports(JCCompilationUnit cu) {
|
||||
List<String> imports = new ArrayList<String>();
|
||||
JCCompilationUnit unit = (JCCompilationUnit)top().get();
|
||||
for (JCTree def : unit.defs) {
|
||||
for (JCTree def : cu.defs) {
|
||||
if (def instanceof JCImport) {
|
||||
imports.add(((JCImport)def).qualid.toString());
|
||||
}
|
||||
}
|
||||
|
||||
return imports;
|
||||
}
|
||||
|
||||
public Context getContext() {
|
||||
return context;
|
||||
}
|
||||
|
||||
/**
|
||||
* Runs through the entire AST, starting at the compilation unit, calling the provided visitor's visit methods
|
||||
* for each node, depth first.
|
||||
|
||||
@@ -87,7 +87,7 @@ public class HandleSynchronized implements JavacAnnotationHandler<Synchronized>
|
||||
JCNewArray newObjectArray = maker.NewArray(chainDots(maker, methodNode, "java", "lang", "Object"),
|
||||
List.<JCExpression>of(maker.Literal(TypeTags.INT, 0)), null);
|
||||
JCVariableDecl fieldDecl = maker.VarDef(
|
||||
maker.Modifiers(Flags.FINAL | (isStatic ? Flags.STATIC : 0)),
|
||||
maker.Modifiers(Flags.PRIVATE | Flags.FINAL | (isStatic ? Flags.STATIC : 0)),
|
||||
methodNode.toName(lockName), objectType, newObjectArray);
|
||||
injectField(methodNode.up(), fieldDecl);
|
||||
}
|
||||
|
||||
@@ -22,22 +22,28 @@
|
||||
package lombok.delombok;
|
||||
|
||||
public final class Comment {
|
||||
|
||||
public enum StartConnection {
|
||||
START_OF_LINE,
|
||||
ON_NEXT_LINE,
|
||||
DIRECT_AFTER_PREVIOUS,
|
||||
AFTER_PREVIOUS
|
||||
}
|
||||
|
||||
final int pos;
|
||||
final int prevEndPos;
|
||||
final String content;
|
||||
final int endPos;
|
||||
final boolean newLine;
|
||||
final StartConnection start;
|
||||
final boolean newLineAfter;
|
||||
|
||||
public Comment(int prevEndPos, int pos, int endPos, String content, boolean newLine) {
|
||||
public Comment(int prevEndPos, int pos, int endPos, String content, StartConnection start, boolean newLineAfter) {
|
||||
this.pos = pos;
|
||||
this.prevEndPos = prevEndPos;
|
||||
this.endPos = endPos;
|
||||
this.content = content;
|
||||
this.newLine = newLine;
|
||||
}
|
||||
|
||||
public boolean isConnected() {
|
||||
return !newLine && prevEndPos == pos;
|
||||
this.start = start;
|
||||
this.newLineAfter = newLineAfter;
|
||||
}
|
||||
|
||||
public String summary() {
|
||||
|
||||
@@ -23,6 +23,7 @@ package lombok.delombok;
|
||||
|
||||
import java.nio.CharBuffer;
|
||||
|
||||
import lombok.delombok.Comment.StartConnection;
|
||||
import lombok.delombok.CommentPreservingParser.Comments;
|
||||
|
||||
import com.sun.tools.javac.parser.Scanner;
|
||||
@@ -79,17 +80,32 @@ public class CommentCollectingScanner extends Scanner {
|
||||
protected void processComment(CommentStyle style) {
|
||||
int prevEndPos = prevEndPos();
|
||||
int pos = pos();
|
||||
boolean newLine = containsNewLine(prevEndPos, pos);
|
||||
String content = new String(getRawCharacters(pos, endPos()));
|
||||
comments.add(prevEndPos, pos, endPos(), content, newLine);
|
||||
int endPos = endPos();
|
||||
String content = new String(getRawCharacters(pos, endPos));
|
||||
boolean lineBreakAfter = isNewLine(getRawCharacters(endPos, endPos + 1)[0]);
|
||||
StartConnection start = determineStartConnection(prevEndPos, pos);
|
||||
Comment comment = new Comment(prevEndPos, pos, endPos, content, start, lineBreakAfter);
|
||||
|
||||
comments.add(comment);
|
||||
}
|
||||
|
||||
private boolean containsNewLine(int from, int to) {
|
||||
for (char c : getRawCharacters(from, to)) {
|
||||
if (c == '\n' || c == '\r') {
|
||||
return true;
|
||||
private StartConnection determineStartConnection(int from, int to) {
|
||||
if (from == to) {
|
||||
return StartConnection.DIRECT_AFTER_PREVIOUS;
|
||||
}
|
||||
char[] between = getRawCharacters(from, to);
|
||||
if (isNewLine(between[between.length - 1])) {
|
||||
return StartConnection.START_OF_LINE;
|
||||
}
|
||||
for (char c : between) {
|
||||
if (isNewLine(c)) {
|
||||
return StartConnection.ON_NEXT_LINE;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
return StartConnection.AFTER_PREVIOUS;
|
||||
}
|
||||
|
||||
private boolean isNewLine(char c) {
|
||||
return c == '\n' || c == '\r';
|
||||
}
|
||||
}
|
||||
@@ -101,8 +101,8 @@ public class CommentPreservingParser {
|
||||
static class Comments {
|
||||
List<Comment> comments = List.nil();
|
||||
|
||||
void add(int prevEndPos, int pos, int endPos, String content, boolean newLine) {
|
||||
comments = comments.append(new Comment(prevEndPos, pos, endPos, content, newLine));
|
||||
void add(Comment comment) {
|
||||
comments = comments.append(comment);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -38,6 +38,8 @@ import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.Map;
|
||||
|
||||
import lombok.delombok.Comment.StartConnection;
|
||||
|
||||
import com.sun.source.tree.Tree;
|
||||
import com.sun.tools.javac.code.Flags;
|
||||
import com.sun.tools.javac.code.Symbol;
|
||||
@@ -154,6 +156,7 @@ public class PrettyCommentsPrinter extends JCTree.Visitor {
|
||||
private List<Comment> comments;
|
||||
private final JCCompilationUnit cu;
|
||||
private boolean newLine = true;
|
||||
private boolean indent = false;
|
||||
private boolean inParams = false;
|
||||
|
||||
public PrettyCommentsPrinter(Writer out, JCCompilationUnit cu, List<Comment> comments) {
|
||||
@@ -168,13 +171,16 @@ public class PrettyCommentsPrinter extends JCTree.Visitor {
|
||||
|
||||
private void consumeComments(int till) throws IOException {
|
||||
boolean shouldIndent = !newLine;
|
||||
while (comments.nonEmpty() && comments.head.pos < till) {
|
||||
if (newLine) {
|
||||
align();
|
||||
}
|
||||
print(comments.head.content);
|
||||
println();
|
||||
boolean found = false;
|
||||
Comment head = comments.head;
|
||||
while (comments.nonEmpty() && head.pos < till) {
|
||||
found = true;
|
||||
printComment(head);
|
||||
comments = comments.tail;
|
||||
head = comments.head;
|
||||
}
|
||||
if (found && !newLine && !indent) {
|
||||
print(" ");
|
||||
}
|
||||
if (newLine && shouldIndent) {
|
||||
align();
|
||||
@@ -186,18 +192,7 @@ public class PrettyCommentsPrinter extends JCTree.Visitor {
|
||||
Comment head = comments.head;
|
||||
while (comments.nonEmpty() && head.prevEndPos == from) {
|
||||
from = head.endPos;
|
||||
if (!head.isConnected()) {
|
||||
if (head.newLine) {
|
||||
if (!newLine) {
|
||||
println();
|
||||
align();
|
||||
}
|
||||
}
|
||||
else {
|
||||
print(" ");
|
||||
}
|
||||
}
|
||||
print(head.content);
|
||||
printComment(head);
|
||||
comments = comments.tail;
|
||||
head = comments.head;
|
||||
}
|
||||
@@ -206,6 +201,39 @@ public class PrettyCommentsPrinter extends JCTree.Visitor {
|
||||
}
|
||||
}
|
||||
|
||||
private void printComment(Comment comment) throws IOException {
|
||||
prepareComment(comment.start);
|
||||
print(comment.content);
|
||||
if (comment.newLineAfter) {
|
||||
println();
|
||||
}
|
||||
}
|
||||
|
||||
private void prepareComment(StartConnection start) throws IOException {
|
||||
switch (start) {
|
||||
case DIRECT_AFTER_PREVIOUS:
|
||||
break;
|
||||
case AFTER_PREVIOUS:
|
||||
if (!newLine && !indent) {
|
||||
print(" ");
|
||||
}
|
||||
break;
|
||||
case START_OF_LINE:
|
||||
if (!newLine) {
|
||||
println();
|
||||
}
|
||||
break;
|
||||
case ON_NEXT_LINE:
|
||||
if (!newLine && !indent) {
|
||||
println();
|
||||
}
|
||||
if (!indent) {
|
||||
align();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/** The output stream on which trees are printed.
|
||||
*/
|
||||
Writer out;
|
||||
@@ -227,6 +255,7 @@ public class PrettyCommentsPrinter extends JCTree.Visitor {
|
||||
*/
|
||||
void align() throws IOException {
|
||||
newLine = false;
|
||||
indent = true;
|
||||
for (int i = 0; i < lmargin; i++) out.write("\t");
|
||||
}
|
||||
|
||||
@@ -264,6 +293,7 @@ public class PrettyCommentsPrinter extends JCTree.Visitor {
|
||||
*/
|
||||
public void print(Object s) throws IOException {
|
||||
newLine = false;
|
||||
indent = false;
|
||||
out.write(Convert.escapeUnicode(s.toString()));
|
||||
}
|
||||
|
||||
@@ -271,6 +301,7 @@ public class PrettyCommentsPrinter extends JCTree.Visitor {
|
||||
*/
|
||||
public void println() throws IOException {
|
||||
newLine = true;
|
||||
indent = false;
|
||||
out.write(lineSep);
|
||||
}
|
||||
|
||||
@@ -306,7 +337,7 @@ public class PrettyCommentsPrinter extends JCTree.Visitor {
|
||||
tree.accept(this);
|
||||
int endPos = endPos(tree);
|
||||
consumeTrailingComments(endPos);
|
||||
consumeComments(endPos);
|
||||
// consumeComments(endPos);
|
||||
}
|
||||
} catch (UncheckedIOException ex) {
|
||||
IOException e = new IOException(ex.getMessage());
|
||||
|
||||
@@ -82,7 +82,7 @@ public class DirectoryRunner extends Runner {
|
||||
if (mustIgnore(file)) {
|
||||
return false;
|
||||
}
|
||||
TestViaDelombok.compareFile(afterDirectory, file);
|
||||
RunTestsViaDelombok.compareFile(afterDirectory, file);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -33,7 +33,7 @@ import java.util.List;
|
||||
|
||||
import lombok.delombok.Delombok;
|
||||
|
||||
public class TestViaDelombok {
|
||||
public class RunTestsViaDelombok {
|
||||
private static Delombok delombok = new Delombok();
|
||||
private static volatile boolean printErrors = false;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import java.util.*;
|
||||
public class Cast {
|
||||
public void test(List<?> list) {
|
||||
RandomAccess r = (/*before*/
|
||||
RandomAccess /*after*/)list;
|
||||
RandomAccess r = (/*before*/ RandomAccess /*after*/)list;
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
// Cool Comments
|
||||
public class WithComments {
|
||||
// Also inside the body
|
||||
// On start of line
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
// Cool Comments
|
||||
public class WithComments {
|
||||
// Also inside the body
|
||||
// On start of line
|
||||
}
|
||||
@@ -24,7 +24,7 @@ package lombok.delombok;
|
||||
import java.io.File;
|
||||
|
||||
import lombok.DirectoryRunner;
|
||||
import lombok.TestViaDelombok;
|
||||
import lombok.RunTestsViaDelombok;
|
||||
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
@@ -32,7 +32,7 @@ import org.junit.runner.RunWith;
|
||||
public class TestLombokFiles {
|
||||
|
||||
public static File getBeforeDirectory() {
|
||||
TestViaDelombok.printErrors(true);
|
||||
RunTestsViaDelombok.printErrors(true);
|
||||
return new File("test/lombok/resource/before");
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import java.io.*;
|
||||
class Cleanup {
|
||||
class CleanupPlain {
|
||||
void test() throws Exception {
|
||||
InputStream in = new FileInputStream("in");
|
||||
try {
|
||||
|
||||
@@ -1,13 +1,9 @@
|
||||
/* cmt */
|
||||
/* cmt2 */
|
||||
/* cmt3 */
|
||||
/*bla */
|
||||
/* cmt *//* cmt2 */ /* cmt3 */ /*bla */
|
||||
public class CommentsInterspersed {
|
||||
/** javadoc for field */
|
||||
private int x;
|
||||
|
||||
/* bla2 */
|
||||
private String test = "foo"; //$NON-NLS-1$
|
||||
/* bla2 */ private String test = "foo"; //$NON-NLS-1$
|
||||
|
||||
/** Javadoc on method */
|
||||
public native void gwtTest(); /*-{
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
class Getter {
|
||||
class GetterPlain {
|
||||
int i;
|
||||
int foo;
|
||||
public int getI() {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
class Setter {
|
||||
class SetterPlain {
|
||||
int i;
|
||||
int foo;
|
||||
public void setI(final int i) {
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
class SynchronizedPlain1 {
|
||||
void test() {
|
||||
synchronized ($lock) {
|
||||
System.out.println("one");
|
||||
}
|
||||
}
|
||||
void test2() {
|
||||
synchronized ($lock) {
|
||||
System.out.println("two");
|
||||
}
|
||||
}
|
||||
private final java.lang.Object $lock = new java.lang.Object[0];
|
||||
}
|
||||
class SynchronizedPlain2 {
|
||||
static void test() {
|
||||
synchronized ($LOCK) {
|
||||
System.out.println("three");
|
||||
}
|
||||
}
|
||||
static void test2() {
|
||||
synchronized ($LOCK) {
|
||||
System.out.println("four");
|
||||
}
|
||||
}
|
||||
private static final java.lang.Object $LOCK = new java.lang.Object[0];
|
||||
}
|
||||
@@ -1,7 +1,6 @@
|
||||
//ignore
|
||||
import lombok.Cleanup;
|
||||
import java.io.*;
|
||||
class Cleanup {
|
||||
class CleanupPlain {
|
||||
void test() throws Exception {
|
||||
@lombok.Cleanup InputStream in = new FileInputStream("in");
|
||||
@Cleanup OutputStream out = new FileOutputStream("out");
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import lombok.Getter;
|
||||
class Getter {
|
||||
class GetterPlain {
|
||||
@lombok.Getter int i;
|
||||
@Getter int foo;
|
||||
}
|
||||
@@ -1,6 +1,5 @@
|
||||
//ignore
|
||||
import lombok.Setter;
|
||||
class Setter {
|
||||
class SetterPlain {
|
||||
@lombok.Setter int i;
|
||||
@Setter int foo;
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
import lombok.Synchronized;
|
||||
class SynchronizedPlain1 {
|
||||
@lombok.Synchronized void test() {
|
||||
System.out.println("one");
|
||||
}
|
||||
@Synchronized void test2() {
|
||||
System.out.println("two");
|
||||
}
|
||||
}
|
||||
class SynchronizedPlain2 {
|
||||
@lombok.Synchronized static void test() {
|
||||
System.out.println("three");
|
||||
}
|
||||
@Synchronized static void test2() {
|
||||
System.out.println("four");
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user