ElementPattern<PsiElement> (ElementPattern<? extends PsiElement> argumentsPattern) { return psiElement().afterLeaf("(").withParent( or(psiExpression().withParent(argumentsPattern), psiElement().withParent(PsiTypeElement.class) // special case for getConstructor(int.class) because 'int' is a keyword .withSuperParent(2, PsiClassObjectAccessExpression.class) .withSuperParent(3, argumentsPattern))); }