if (!getType().isFuncType()) {
org.python.indexer.Indexer.idx.reportFailedAssertion(
"Bad type on " + this + ": type=" + getType() +
" in file " + getFile() + " at " + start());
}
NTupleType fromType = new NTupleType();
NameBinder param = NameBinder.make(NBinding.Kind.PARAMETER);
resolveList(defaults, s);
Scope funcTable = getTable();
int argnum = 0;
for (NNode a : args) {
NType argtype = NFunctionDef.getArgType(args, defaults, argnum++);
param.bind(funcTable, a, argtype);
fromType.add(argtype);
}
if (varargs != null) {
NType u = new NUnknownType();
param.bind(funcTable, varargs, u);
fromType.add(u);
}
if (kwargs != null) {
NType u = new NUnknownType();
param.bind(funcTable, kwargs, u);
fromType.add(u);
}
// A lambda body is not an NBody, so it doesn't undergo the two
// pre-resolve passes for finding global statements and name-binding
// constructs. However, the lambda expression may itself contain