private JExpression createThisRef(JReferenceType qualType,
List/* <JExpression> */list) {
LinkedList/* <JExpression> */workList = new LinkedList/* <JExpression> */();
workList.addAll(list);
while (!workList.isEmpty()) {
JExpression expr = (JExpression) workList.removeFirst();
JClassType classType = (JClassType) expr.getType();
for (; classType != null; classType = classType.extnds) {
// prefer myself or myself-as-supertype over any of my this$ fields
// that may have already been added to the work list
if (program.typeOracle.canTriviallyCast(classType, qualType)) {