@Override
void declareVariable(VariableNode var)
{
verifyVariableModifiers(var);
VariableDefinition varDef = (VariableDefinition)var.getDefinition();
boolean is_static = var.hasModifier(ASModifier.STATIC);
boolean is_const = SemanticUtils.isConst(var, classScope.getProject());
final ICompilerProject project = this.classScope.getProject();
ICodeGenerator codeGenerator = classScope.getGenerator();
IExpressionNode assignedValueNode = var.getAssignedValueNode();
IConstantValue constantValue = codeGenerator.generateConstantValue(assignedValueNode, project);
// initializer is null if no constant value
// can be generated, and null is the correct value for "no value."
Object initializer = constantValue != null ? constantValue.getValue() : null;
// Reducing the constant value may have produced problems in the
// LexicalScope used for constant reduction. Transfer them over
// to the LexicalScope for this class.
Collection<ICompilerProblem> problems = constantValue != null ? constantValue.getProblems() : null;
if (problems != null)
classScope.addProblems(problems);
final MethodBodySemanticChecker checker = new MethodBodySemanticChecker(this.classScope);
DefinitionBase varType = (DefinitionBase)varDef.resolveType(project);
Object transformed_initializer = null;
if ((initializer != null) && (varType != null))
{