## org.codehaus.groovy.classgen
Class StateStackElement

Field Summary
`ClassNode` | `clazz`
`boolean` | `closure`
`VariableScope` | `scope`

Constructor Summary
`StateStackElement()`

Method Summary
`def` | `VariableScopeVisitor(SourceUnit source)`
`void` | `checkPropertyOnExplicitThis(PropertyExpression pe)` a property on "this", like this.x is transformed to a direct field access, so we need to check the static context here
`void` | `checkVariableContextAccess(Variable v, Expression expr)`
`Variable` | `checkVariableNameForDeclaration(String name, Expression expression)`
`void` | `declare(def parameters, ASTNode node)`
`void` | `declare(VariableExpression expr)`
`void` | `declare(Variable var, ASTNode expr)`
`Variable` | `findClassMember(ClassNode cn, String name)`
`String` | `getPropertyName(MethodNode m)`
`ClassNode` | `getPropertyType(MethodNode m)`
`SourceUnit` | `getSourceUnit()`
`void` | `popState()`
`void` | `pushState(boolean isStatic)`
`void` | `pushState()`
`void` | `visitBlockStatement(BlockStatement block)`
`void` | `visitCatchStatement(CatchStatement statement)`
`void` | `visitClass(ClassNode node)`
`void` | `visitClosureExpression(ClosureExpression expression)`
`void` | `visitConstructorCallExpression(ConstructorCallExpression call)`
`void` | `visitConstructorOrMethod(MethodNode node, boolean isConstructor)`
`void` | `visitDeclarationExpression(DeclarationExpression expression)`
`void` | `visitField(FieldNode node)`
`void` | `visitFieldExpression(FieldExpression expression)`
`void` | `visitForLoop(ForStatement forLoop)`
`void` | `visitMethodCallExpression(MethodCallExpression call)`
`void` | `visitProperty(PropertyNode node)`
`void` | `visitPropertyExpression(PropertyExpression expression)`
`void` | `visitVariableExpression(VariableExpression expression)`

Constructor Detail

### StateStackElement

    public StateStackElement()

Method Detail

### VariableScopeVisitor

    public def VariableScopeVisitor(SourceUnit source)

### checkPropertyOnExplicitThis

    void checkPropertyOnExplicitThis(PropertyExpression pe)

  a property on "this", like this.x is transformed to a direct field access, so we need to check the static context here

### checkVariableContextAccess

    void checkVariableContextAccess(Variable v, Expression expr)

### checkVariableNameForDeclaration

    Variable checkVariableNameForDeclaration(String name, Expression expression)

### declare

    void declare(def parameters, ASTNode node)

### declare

    void declare(VariableExpression expr)

### declare

    void declare(Variable var, ASTNode expr)

### findClassMember

    Variable findClassMember(ClassNode cn, String name)

### getPropertyName

    String getPropertyName(MethodNode m)

### getPropertyType

    ClassNode getPropertyType(MethodNode m)

### getSourceUnit

    SourceUnit getSourceUnit()

### popState

    void popState()

### pushState

    void pushState(boolean isStatic)

### pushState

    void pushState()

### visitBlockStatement

    public void visitBlockStatement(BlockStatement block)

### visitCatchStatement

    public void visitCatchStatement(CatchStatement statement)

### visitClass

    public void visitClass(ClassNode node)

### visitClosureExpression

    public void visitClosureExpression(ClosureExpression expression)

### visitConstructorCallExpression

    public void visitConstructorCallExpression(ConstructorCallExpression call)

### visitConstructorOrMethod

    void visitConstructorOrMethod(MethodNode node, boolean isConstructor)

### visitDeclarationExpression

    public void visitDeclarationExpression(DeclarationExpression expression)

### visitField

    public void visitField(FieldNode node)

### visitFieldExpression

    public void visitFieldExpression(FieldExpression expression)

### visitForLoop

    public void visitForLoop(ForStatement forLoop)

### visitMethodCallExpression

    public void visitMethodCallExpression(MethodCallExpression call)

### visitProperty

    public void visitProperty(PropertyNode node)

### visitPropertyExpression

    public void visitPropertyExpression(PropertyExpression expression)

### visitVariableExpression

    public void visitVariableExpression(VariableExpression expression)