4040import java .util .List ;
4141import java .util .Map ;
4242
43+ import static org .codehaus .groovy .classgen .asm .sc .StaticTypesFunctionalInterfaceMetadataKey .LAMBDA_ACCESSES_INSTANCE_MEMBERS ;
4344import static org .apache .groovy .util .BeanUtils .capitalize ;
4445import static org .codehaus .groovy .ast .tools .GeneralUtils .classX ;
4546import static org .codehaus .groovy .transform .stc .StaticTypesMarker .DIRECT_METHOD_CALL_TARGET ;
@@ -68,14 +69,14 @@ boolean isNonCapturing(final MethodNode lambdaMethod, final Parameter[] sharedVa
6869 }
6970
7071 boolean accessesInstanceMembers (final MethodNode lambdaMethod ) {
71- Boolean accessingInstanceMembers = lambdaMethod .getNodeMetaData (MetaDataKey . ACCESSES_INSTANCE_MEMBERS );
72+ Boolean accessingInstanceMembers = lambdaMethod .getNodeMetaData (LAMBDA_ACCESSES_INSTANCE_MEMBERS );
7273 if (accessingInstanceMembers != null ) return accessingInstanceMembers ;
7374
7475 InstanceMemberAccessFinder finder = new InstanceMemberAccessFinder (getOrCreateResolver (lambdaMethod ));
7576 lambdaMethod .getCode ().visit (finder );
7677
7778 accessingInstanceMembers = finder .isAccessingInstanceMembers ();
78- lambdaMethod .putNodeMetaData (MetaDataKey . ACCESSES_INSTANCE_MEMBERS , accessingInstanceMembers );
79+ lambdaMethod .putNodeMetaData (LAMBDA_ACCESSES_INSTANCE_MEMBERS , accessingInstanceMembers );
7980 return accessingInstanceMembers ;
8081 }
8182
@@ -161,9 +162,7 @@ private Expression qualify(final VariableExpression expression) {
161162
162163 PropertyExpression qualifiedReference = new PropertyExpression (classX (owner ), expression .getName ());
163164 qualifiedReference .setImplicitThis (false );
164- qualifiedReference .copyNodeMetaData (expression );
165- setSourcePosition (qualifiedReference , expression );
166- return qualifiedReference ;
165+ return finishQualifiedReference (qualifiedReference , expression );
167166 }
168167
169168 private Expression qualify (final AttributeExpression expression ) {
@@ -177,9 +176,7 @@ private Expression qualify(final AttributeExpression expression) {
177176 );
178177 qualifiedReference .setImplicitThis (false );
179178 qualifiedReference .setSpreadSafe (expression .isSpreadSafe ());
180- qualifiedReference .copyNodeMetaData (expression );
181- setSourcePosition (qualifiedReference , expression );
182- return qualifiedReference ;
179+ return finishQualifiedReference (qualifiedReference , expression );
183180 }
184181
185182 private Expression qualify (final PropertyExpression expression ) {
@@ -193,9 +190,7 @@ private Expression qualify(final PropertyExpression expression) {
193190 );
194191 qualifiedReference .setImplicitThis (false );
195192 qualifiedReference .setSpreadSafe (expression .isSpreadSafe ());
196- qualifiedReference .copyNodeMetaData (expression );
197- setSourcePosition (qualifiedReference , expression );
198- return qualifiedReference ;
193+ return finishQualifiedReference (qualifiedReference , expression );
199194 }
200195
201196 private Expression qualify (final MethodCallExpression expression ) {
@@ -212,6 +207,10 @@ private Expression qualify(final MethodCallExpression expression) {
212207 qualifiedReference .setSpreadSafe (expression .isSpreadSafe ());
213208 qualifiedReference .setGenericsTypes (expression .getGenericsTypes ());
214209 qualifiedReference .setMethodTarget (expression .getMethodTarget ());
210+ return finishQualifiedReference (qualifiedReference , expression );
211+ }
212+
213+ private <T extends Expression > T finishQualifiedReference (final T qualifiedReference , final Expression expression ) {
215214 qualifiedReference .copyNodeMetaData (expression );
216215 setSourcePosition (qualifiedReference , expression );
217216 return qualifiedReference ;
@@ -394,10 +393,6 @@ private boolean isAccessingInstanceMembers() {
394393 }
395394 }
396395
397- private enum MetaDataKey {
398- ACCESSES_INSTANCE_MEMBERS
399- }
400-
401396 private final SourceUnit sourceUnit ;
402397 private final Map <MethodNode , OuterStaticMemberResolver > resolverCache = new HashMap <>();
403398}
0 commit comments