[ 
https://issues.apache.org/jira/browse/GROOVY-11159?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Eric Milles updated GROOVY-11159:
---------------------------------
    Description: 
ClassNode is used to represent type definitions as well as type references. 
There are a lot of data members that apply only to type definitions. However, 
every reference pays the cost. ClassNode could have a single reference to 
another class (essentially a struct) that holds all the definition information. 
With this, type references would only have one reference (initialized to null) 
instead of all those fields.

Fields:
 * modifiers
 * syntheticPublic
 * superClass
 * interfaces
 * mixins
 * objectInitializers
 * constructors
 * methods
 * methodsList
 * fields
 * fieldIndex
 * properties
 * module
 * compileUnit
 * staticClass
 * scriptBody
 * script
 * innerClasses
 * lazyInitDone?
 * lazyInitLock?
 * clazz
 * enclosingMethod
 * recordComponents
 * transformInstances?
 * permittedSubclasses

  was:
ClassNode is used to represent type definitions as well as type references.  
There are a lot of data members that apply only to type definitions.  However, 
every reference pays the cost.  ClassNode could have a single reference to 
another class (essentially a struct) that holds all the definition information. 
 With this, type references would only have one reference (initialized to null) 
instead of all those fields.

Fields:
* modifiers
* syntheticPublic
* superClass
* interfaces
* mixins
* objectInitializers
* constructors
* methods
* methodsList
* fields
* fieldIndex
* properties
* module
* compileUnit
* staticClass
* scriptBody
* script
* innerClasses
* lazyInitDone
* lazyInitLock
* clazz
* enclosingMethod
* recordComponents
* transformInstances?
* permittedSubclasses



> ClassNode: separate type definition information
> -----------------------------------------------
>
>                 Key: GROOVY-11159
>                 URL: https://issues.apache.org/jira/browse/GROOVY-11159
>             Project: Groovy
>          Issue Type: Improvement
>            Reporter: Eric Milles
>            Priority: Minor
>
> ClassNode is used to represent type definitions as well as type references. 
> There are a lot of data members that apply only to type definitions. However, 
> every reference pays the cost. ClassNode could have a single reference to 
> another class (essentially a struct) that holds all the definition 
> information. With this, type references would only have one reference 
> (initialized to null) instead of all those fields.
> Fields:
>  * modifiers
>  * syntheticPublic
>  * superClass
>  * interfaces
>  * mixins
>  * objectInitializers
>  * constructors
>  * methods
>  * methodsList
>  * fields
>  * fieldIndex
>  * properties
>  * module
>  * compileUnit
>  * staticClass
>  * scriptBody
>  * script
>  * innerClasses
>  * lazyInitDone?
>  * lazyInitLock?
>  * clazz
>  * enclosingMethod
>  * recordComponents
>  * transformInstances?
>  * permittedSubclasses



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to