made a few modifications to the type assigner, avoiding ClassCastExceptions;

as Damien Octeau writes:

"I found a couple more places in Soot where there were some issues:

In soot/FastHierarchy.java, in method canStoreType(), around line 245:
  - the last case is currently: else { ArrayType aChild = (ArrayType) child;
I saw a case where the cast threw an exception. I replaced the else with else if (child instanceof ArrayType). I added a new else which just returns false.

In soot/jimple/toolkits/typing/integer/ConstraintChecker.java, in method caseAssignStmt(), around line 228:
  - the case if (!(baset instanceof NullType)) is followed by a cast of baset to ArrayType. I found a case where this cast caused a problem. I changed the condition to if (baset instanceof ArrayType).

In soot/jimple/toolkits/typing/integer/ConstraintCollector.java, in method caseAssignStmt(), around line 169, there is the same problem as above: a cast to ArrayType follows a condition different from if (baset instanceof ArrayType). Changing the condition as above solves the problem."