﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
100	symbolic array dimensions are inverted	Stephen Siegel	ywei	"If you ask the symbolic package for the array type with element type int[X1] and length X2, it returns the type int[X1][X2], when it should return the type int[X2][X1].

I think this is because there is a bug in the way the type is converted to a string in {{{SymArray}}}:
{{{
	public String toString()
	{
		String result =  baseType.toString() + ""["";
		
		if (dimension != null) result += dimension.toString();
		result += ""]"";
		return result;
	}
}}}

and then this String is used as a key in a hashtable to retrieve the type in {{{SymUniverse}}}:

{{{
	public SymType arrayType(SymType elementType, SymExpression dimension)
	{
		SymType temp = new SymArray(elementType, dimension);
		if(typeTable.containsKey(temp.toString()))
		{
			return typeTable.get(temp.toString());
		}
		else
		{
			typeTable.put(temp.toString(), temp);
			return temp;
		}
	}
}}}

By the way, I don't think it is a good idea to use the strings as keys in the hashtables.  For one thing, constructing strings is very slow.  It is also easy to make a mistake.  Better to use something with a simple logic, like just give all the types a hashCode and look them up that way.
"	defect	closed	major		symbolic	1.0	fixed	symbolic array type	
