From d049af3a0314fc1d8452af89ae9a597bce4fd619 Mon Sep 17 00:00:00 2001 From: Rawi01 Date: Wed, 21 Oct 2020 09:56:23 +0200 Subject: [PATCH 1/3] [#2612] VarSymbol.adr is required for flow analysis in Netbeans --- src/core/lombok/javac/handlers/JavacHandlerUtil.java | 1 + src/stubs/com/sun/tools/javac/code/Symbol.java | 1 + 2 files changed, 2 insertions(+) diff --git a/src/core/lombok/javac/handlers/JavacHandlerUtil.java b/src/core/lombok/javac/handlers/JavacHandlerUtil.java index 5ff297581c..48942ea940 100644 --- a/src/core/lombok/javac/handlers/JavacHandlerUtil.java +++ b/src/core/lombok/javac/handlers/JavacHandlerUtil.java @@ -1241,6 +1241,7 @@ public static void injectMethod(JavacNode typeNode, JCMethodDecl method, List annotations = param.getModifiers().getAnnotations(); if (annotations != null && !annotations.isEmpty()) { ListBuffer newAnnotations = new ListBuffer(); diff --git a/src/stubs/com/sun/tools/javac/code/Symbol.java b/src/stubs/com/sun/tools/javac/code/Symbol.java index 15b04148ce..fa15ceb158 100644 --- a/src/stubs/com/sun/tools/javac/code/Symbol.java +++ b/src/stubs/com/sun/tools/javac/code/Symbol.java @@ -62,6 +62,7 @@ public MethodSymbol(long flags, Name name, Type type, Symbol owner) {} public static class VarSymbol extends Symbol implements VariableElement { public Type type; + public int adr; public VarSymbol(long flags, Name name, Type type, Symbol owner) { } @Override public ElementKind getKind() { return null; } From e2a22beac1c2af955e49c6baca835368ff46ecea Mon Sep 17 00:00:00 2001 From: Rawi01 Date: Fri, 23 Oct 2020 18:56:27 +0200 Subject: [PATCH 2/3] [#2612] VarSymbol.adr is a bit field --- src/core/lombok/javac/handlers/JavacHandlerUtil.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/lombok/javac/handlers/JavacHandlerUtil.java b/src/core/lombok/javac/handlers/JavacHandlerUtil.java index 48942ea940..5e64d8ef99 100644 --- a/src/core/lombok/javac/handlers/JavacHandlerUtil.java +++ b/src/core/lombok/javac/handlers/JavacHandlerUtil.java @@ -1241,7 +1241,7 @@ public static void injectMethod(JavacNode typeNode, JCMethodDecl method, List annotations = param.getModifiers().getAnnotations(); if (annotations != null && !annotations.isEmpty()) { ListBuffer newAnnotations = new ListBuffer(); From 7a1007c51700f2ecb5318e3478029bb4e5c7b64a Mon Sep 17 00:00:00 2001 From: Rawi01 Date: Sun, 25 Oct 2020 17:08:16 +0100 Subject: [PATCH 3/3] [#2612] Set VarSymbol.owner --- src/core/lombok/javac/handlers/JavacHandlerUtil.java | 3 +++ src/stubs/com/sun/tools/javac/code/Symbol.java | 1 + 2 files changed, 4 insertions(+) diff --git a/src/core/lombok/javac/handlers/JavacHandlerUtil.java b/src/core/lombok/javac/handlers/JavacHandlerUtil.java index 5e64d8ef99..8d21f90335 100644 --- a/src/core/lombok/javac/handlers/JavacHandlerUtil.java +++ b/src/core/lombok/javac/handlers/JavacHandlerUtil.java @@ -1275,6 +1275,9 @@ private static void fixMethodMirror(Context context, Element typeMirror, long ac MethodSymbol methodSymbol = new MethodSymbol(access, methodName, new MethodType(paramTypes, returnType, List.nil(), Symtab.instance(context).methodClass), cs); if (params != null && !params.isEmpty()) { methodSymbol.params = params; + for (VarSymbol varSymbol : params) { + varSymbol.owner = methodSymbol; + } } ClassSymbolMembersField.enter(cs, methodSymbol); } diff --git a/src/stubs/com/sun/tools/javac/code/Symbol.java b/src/stubs/com/sun/tools/javac/code/Symbol.java index fa15ceb158..f389f1a85e 100644 --- a/src/stubs/com/sun/tools/javac/code/Symbol.java +++ b/src/stubs/com/sun/tools/javac/code/Symbol.java @@ -24,6 +24,7 @@ public abstract class Symbol implements Element { public Type type; public Name name; + public Symbol owner; public long flags() { return 0; } public boolean isStatic() { return false; }