public class Verifier extends Object implements GroovyClassVisitor, org.objectweb.asm.Opcodes
Verifies the AST node and adds any default AST code before bytecode generation occurs.
Checks include:
Modifiers | Name | Description |
---|---|---|
interface |
Verifier.DefaultArgsAction |
Modifiers | Name | Description |
---|---|---|
static String |
DEFAULT_PARAMETER_GENERATED |
|
static String |
INITIAL_EXPRESSION |
|
static Class<NonSealed> |
NON_SEALED_CLASS |
|
static Class<Sealed> |
SEALED_CLASS |
|
static String |
STATIC_METACLASS_BOOL |
|
static String |
SWAP_INIT |
|
static String |
__TIMESTAMP |
|
static String |
__TIMESTAMP__ |
Type Params | Return Type | Name and description |
---|---|---|
|
protected void |
addClosureCode(InnerClassNode node) |
|
protected void |
addConstructor(Parameter[] newParams, ConstructorNode ctor, Statement code, ClassNode type) |
|
protected void |
addCovariantMethods(ClassNode classNode) |
|
protected void |
addDefaultConstructor(ClassNode node) |
|
protected void |
addDefaultParameterConstructors(ClassNode type) Creates a new constructor for each combination of default parameter expressions. |
|
protected void |
addDefaultParameterMethods(ClassNode type) Creates a new method for each combination of default parameter expressions. |
|
protected void |
addDefaultParameters(List<? extends MethodNode> methods, Verifier.DefaultArgsAction action) Creates a new helper method for each combination of default parameter expressions. |
|
protected void |
addDefaultParameters(Verifier.DefaultArgsAction action, MethodNode method) |
|
protected void |
addFieldInitialization(List list, List staticList, FieldNode fieldNode, boolean isEnumClassNode, List initStmtsAfterEnumValuesInit, Set explicitStaticPropsInEnum) |
|
protected void |
addGroovyObjectInterfaceAndMethods(ClassNode node, String classInternalName) |
|
protected void |
addInitialization(ClassNode node) |
|
protected void |
addInitialization(ClassNode node, ConstructorNode constructorNode) |
|
protected MethodNode |
addMethod(ClassNode node, boolean shouldBeSynthetic, String name, int modifiers, ClassNode returnType, Parameter[] parameters, ClassNode[] exceptions, Statement code) Helper method to add a new method to a ClassNode. |
|
protected void |
addMethod$$bridge(ClassNode node, boolean shouldBeSynthetic, String name, int modifiers, ClassNode returnType, Parameter[] parameters, ClassNode[] exceptions, Statement code) |
|
protected void |
addPropertyMethod(MethodNode method) |
|
protected void |
addReturnIfNeeded(MethodNode node) |
|
protected void |
addTimeStamp(ClassNode node) |
|
public static String |
capitalize(String name) Capitalizes the start of the given bean property name. |
|
protected Statement |
createGetterBlock(PropertyNode propertyNode, FieldNode field) |
|
protected Statement |
createSetterBlock(PropertyNode propertyNode, FieldNode field) |
|
public ClassNode |
getClassNode() |
|
protected VariableNotFinalCallback |
getFinalVariablesCallback() |
|
public MethodNode |
getMethodNode() |
|
public static long |
getTimestamp(Class<?> clazz) |
|
public static Long |
getTimestampFromFieldName(String fieldName) |
|
protected void |
setClassNode(ClassNode classNode) |
|
public static ConstantExpression |
transformToPrimitiveConstantIfPossible(ConstantExpression constantExpression) When constant expressions are created, the value is always wrapped to a non primitive type. |
|
public void |
variableNotAlwaysInitialized(VariableExpression var) |
|
public void |
variableNotFinal(Variable var, Expression bexp) |
|
public void |
visit(org.objectweb.asm.MethodVisitor mv) |
|
public void |
visit(org.objectweb.asm.MethodVisitor mv) |
|
public void |
visit(org.objectweb.asm.MethodVisitor mv) |
|
public void |
visit(org.objectweb.asm.MethodVisitor mv) |
|
public void |
visit(org.objectweb.asm.MethodVisitor mv) |
|
public void |
visit(org.objectweb.asm.MethodVisitor mv) |
|
public void |
visit(org.objectweb.asm.MethodVisitor mv) |
|
public void |
visit(org.objectweb.asm.MethodVisitor mv) |
|
public void |
visitClass(ClassNode node) |
|
public void |
visitClosureExpression(ClosureExpression expression) |
|
public void |
visitClosureExpression(ClosureExpression ce) |
|
public void |
visitClosureExpression(ClosureExpression e) |
|
public void |
visitConstructor(ConstructorNode node) |
|
public void |
visitConstructorCallExpression(ConstructorCallExpression cce) |
|
public void |
visitConstructorCallExpression(ConstructorCallExpression call) |
|
public void |
visitConstructorCallExpression(ConstructorCallExpression call) |
|
public void |
visitField(FieldNode node) |
|
public void |
visitGenericType(GenericsType genericsType) |
|
public void |
visitMethod(MethodNode node) |
|
public void |
visitMethodCallExpression(MethodCallExpression mce) |
|
public void |
visitProperty(PropertyNode node) |
|
public void |
visitReturnStatement(ReturnStatement statement) |
|
public void |
visitVariableExpression(VariableExpression ve) |
|
public void |
visitVariableExpression(VariableExpression e) |
|
public void |
visitVariableExpression(VariableExpression e) |
Creates a new constructor for each combination of default parameter expressions.
Creates a new method for each combination of default parameter expressions.
Creates a new helper method for each combination of default parameter expressions.
Helper method to add a new method to a ClassNode. Depending on the shouldBeSynthetic flag the call will either be made to ClassNode.addSyntheticMethod() or ClassNode.addMethod(). If a non-synthetic method is to be added the ACC_SYNTHETIC modifier is removed if it has been accidentally supplied.
When constant expressions are created, the value is always wrapped to a non primitive type. Some constant expressions are optimized to return primitive types, but not all primitives are handled. This method guarantees to return a similar constant expression but with a primitive type instead of a boxed type.
Additionally, single char strings are converted to 'char' types.constantExpression
- a constant expression