// case 2: ident1.ident2
// case 3: ident1[expr]
// case 4: ident1.ident2[expr]
if(!_identTupleList.isEmpty())
{
TypeInfo returnType = new TypeInfoImpl(TypeConstants.referenceType,
_classNameOrInstanceVariableName,
isArray);
int i = 0;
Iterator identTupleIt = _identTupleList.iterator();
while(identTupleIt.hasNext())
{
if(returnType.getType() == TypeConstants.referenceType)
{
String referenceTypeName = returnType.getReferenceTypeName();
IdentPrimaryTuple ipt = (IdentPrimaryTuple)identTupleIt.next();
if(i++ == 0) // first element in the list has the same symbol table
{ // as the primary expression
ipt.setSymbolTable(_symTab);
}
returnType = ipt.validate(referenceTypeName);
} else {
identTupleIt.next(); // <--- Added by dawood
}
}
_dataType.copy(returnType);
//_isArray = returnType.getIsArray();
_referenceTypeName = returnType.getReferenceTypeName();
}
else // local constant
{
boolean symbolExists = _symTab.symbolExists(_classNameOrInstanceVariableName, true);
if( symbolExists )