GROOVY-11352: non-indy: `this` in special ctor call
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/InvocationWriter.java b/src/main/java/org/codehaus/groovy/classgen/asm/InvocationWriter.java
index 64b7162..21b69fd 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/InvocationWriter.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/InvocationWriter.java
@@ -532,9 +532,18 @@
}
private boolean isStaticInvocation(final MethodCallExpression call) {
- if (!isThisExpression(call.getObjectExpression())) return false;
- if (controller.isStaticMethod()) return true;
- return controller.isStaticContext() && !call.isImplicitThis();
+ if (isThisExpression(call.getObjectExpression())) {
+ if (controller.getCompileStack().isInSpecialConstructorCall()) {
+ return true;
+ }
+ if (controller.isStaticContext() && !call.isImplicitThis()) {
+ return true;
+ }
+ if (controller.isStaticMethod()) {
+ return true;
+ }
+ }
+ return false;
}
public void writeInvokeStaticMethod(final StaticMethodCallExpression call) {