// enclosing types
if (superBinding.enclosingInstances != null) {
JExpression qualifier = dispProcessExpression(x.qualification);
for (int j = 0; j < superBinding.enclosingInstances.length; ++j) {
SyntheticArgumentBinding arg = superBinding.enclosingInstances[j];
JClassType classType = (JClassType) typeMap.get(arg.type);
if (qualifier == null) {
/*
* Got to be one of my params; it would be illegal to use a this
* ref at this moment-- we would most likely be passing in a
* supertype field that HASN'T BEEN INITIALIZED YET.
*
* Unfortunately, my params might not work as-is, so we have to
* check each one to see if any will make a suitable this ref.
*/
List/* <JExpression> */workList = new ArrayList/* <JExpression> */();
Iterator/* <JParameter> */paramIt = getSyntheticsIterator(currentMethod);
for (int i = 0; i < myBinding.enclosingInstances.length; ++i) {
workList.add(createVariableRef(info,
(JParameter) paramIt.next()));
}
call.getArgs().add(createThisRef(classType, workList));
} else {
call.getArgs().add(createThisRef(classType, qualifier));
}
}
}
// outer locals
if (superBinding.outerLocalVariables != null) {
for (int j = 0; j < superBinding.outerLocalVariables.length; ++j) {
SyntheticArgumentBinding arg = superBinding.outerLocalVariables[j];
// Got to be one of my params
JType varType = (JType) typeMap.get(arg.type);
String varName = String.valueOf(arg.name);
JParameter param = null;
for (int i = 0; i < currentMethod.params.size(); ++i) {