Now nested-tuple arguments autocomplete without failing an assertion.

This commit is contained in:
Dmitry Cheryasov
2010-10-26 16:13:37 +03:00
parent 9f96ed505c
commit e8d8b953fb
@@ -478,14 +478,22 @@ public class PyReferenceImpl implements PsiReferenceEx, PsiPolyVariantReference
return;
}
PyNamedParameter namedParam = par.getAsNamed();
assert namedParam != null;
if (!namedParam.isKeywordContainer() && !namedParam.isPositionalContainer()) {
final LookupElement item = PyUtil.createNamedParameterLookup(namedParam.getName());
myRet.add(item);
if (namedParam != null) {
if (!namedParam.isKeywordContainer() && !namedParam.isPositionalContainer()) {
final LookupElement item = PyUtil.createNamedParameterLookup(namedParam.getName());
myRet.add(item);
}
else if (namedParam.isKeywordContainer()) {
myHasKwArgs = true;
kwArgsParam = namedParam;
}
}
else if (namedParam.isKeywordContainer()) {
myHasKwArgs = true;
kwArgsParam = namedParam;
else {
PyTupleParameter nestedTupleParam = par.getAsTuple();
if (nestedTupleParam != null) {
nestedTupleParam.acceptChildren(this);
}
// else it's a lone star parameter, it can't contribute to completion
}
}