diff --git a/python/src/com/jetbrains/python/psi/impl/PyReferenceImpl.java b/python/src/com/jetbrains/python/psi/impl/PyReferenceImpl.java index 5db0baeb51cb..2256563bba43 100644 --- a/python/src/com/jetbrains/python/psi/impl/PyReferenceImpl.java +++ b/python/src/com/jetbrains/python/psi/impl/PyReferenceImpl.java @@ -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 } }