Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.5.22, 3.0.17, 4.0.11
Description
Consider the following:
@groovy.transform.CompileStatic class FileTreeBuilder { def methodMissing(String name, Object args) { if (args instanceof Object[] && args.length == 1) { def arg = args[0] if (arg instanceof Closure) { dir(name, arg) } else if (arg instanceof CharSequence) { file(name, arg.toString()) } else if (arg instanceof byte[]) { file(name, arg) } else if (arg instanceof File) { file(name, arg) } } } }
STC gives no errors for this, but there are 2 class format issues. "args.length" is reporting bad type on operand stack and "if (arg instanceof CharSequence)" and subsequent guards are reporting improper class name "Ljava/lang/Object;" on the operand stack.
Attachments
Issue Links
- is related to
-
GROOVY-5683 Accessing length of an array of arrays occurs VerifyError
- Closed