Buggy code:
public class LombokCompletionContributor extends JavaCompletionContributor { private static final Logger LOG = Logger . getInstance ( "#com.intellij.codeInsight.completion.LombokCompletionContributor" ) ; private static final PsiJavaElementPattern . Capture < PsiElement > UNEXPECTED_REFERENCE_AFTER_DOT = psiElement ( ) . afterLeaf ( "." ) . insideStarting ( psiExpressionStatement ( ) ) ; private static final Map < LanguageLevel , JavaCompletionData > ourCompletionData ; private static final PsiNameValuePairPattern NAME_VALUE_PAIR = psiNameValuePair ( ) . withSuperParent ( 2 , psiElement ( PsiAnnotation . class ) ) ; private static final ElementPattern < PsiElement > ANNOTATION_ATTRIBUTE_NAME = or ( psiElement ( PsiIdentifier . class ) . withParent ( LombokCompletionContributor . NAME_VALUE_PAIR ) , psiElement ( ) . afterLeaf ( "(" ) . withParent ( psiReferenceExpression ( ) . withParent ( LombokCompletionContributor . NAME_VALUE_PAIR ) ) ) ; private static final ElementPattern < PsiElement > AFTER_NUMBER_LITERAL = psiElement ( ) . afterLeaf ( psiElement ( ) . withElementType ( elementType ( ) . oneOf ( DOUBLE_LITERAL , LONG_LITERAL , FLOAT_LITERAL , INTEGER_LITERAL ) ) ) ; private static final ElementPattern < PsiElement > IMPORT_REFERENCE = psiElement ( ) . withParent ( psiElement ( PsiJavaCodeReferenceElement . class ) . withParent ( PsiImportStatementBase . class ) ) ; private static final PsiElementPattern . Capture < PsiElement > IN_TYPE_ARGS = PlatformPatterns . psiElement ( ) . inside ( PlatformPatterns . psiElement ( PsiReferenceParameterList . class ) ) ; private static final ElementPattern SWITCH_LABEL = psiElement ( ) . withSuperParent ( 2 , psiElement ( PsiSwitchLabelStatement . class ) . withSuperParent ( 2 , psiElement ( PsiSwitchStatement . class ) . with ( new com . intellij . patterns . PatternCondition < PsiSwitchStatement > ( "enumExpressionType" ) { @ Override public boolean accepts ( @ NotNull PsiSwitchStatement psiSwitchStatement , ProcessingContext context ) { } } ) ) ) ; static final PsiElementPattern . Capture < PsiElement > LAMBDA = PlatformPatterns . psiElement ( ) . with ( new com . intellij . patterns . PatternCondition < PsiElement > ( "LAMBDA_CONTEXT" ) { @ Override public boolean accepts ( @ NotNull PsiElement element , ProcessingContext context ) { } } ) ; public static final class LombokElementFilter implements ElementFilter { public static final ElementFilter INSTANCE = new LombokCompletionContributor . LombokElementFilter ( ) ; private LombokElementFilter ( ) { } @ Override public boolean isAcceptable ( Object element , @ Nullable PsiElement context ) { } private boolean filterFieldDefault ( @ NotNull PsiField field , @ Nullable PsiElement context ) { } private boolean filterExtensionMethods ( @ NotNull PsiMethod method , @ Nullable PsiElement context ) { } @ Override public String toString ( ) { } @ Override public boolean isClassAcceptable ( Class hintClass ) { } @ Nullable public static PsiType getCallType ( @ NotNull PsiExpression expression , @ NotNull PsiClass currentClass ) { } } @ Override public void beforeCompletion ( @ NotNull CompletionInitializationContext context ) { } @ Override public void fillCompletionVariants ( final CompletionParameters parameters , final CompletionResultSet _result ) { if ( ( parameters . getCompletionType ( ) ) != ( CompletionType . BASIC ) ) { return ; } final PsiElement position = parameters . getPosition ( ) ; if ( ! ( isInJavaContext ( position ) ) ) { return ; } if ( ( LombokCompletionContributor . AFTER_NUMBER_LITERAL . accepts ( position ) ) || ( com . intellij . codeInsight . completion . UNEXPECTED_REFERENCE_AFTER_DOT . accepts ( position ) ) ) { _result . stopHere ( ) ; return ; } final CompletionResultSet result = JavaCompletionSorting . addJavaSorting ( parameters , _result ) ; if ( ( LombokCompletionContributor . ANNOTATION_ATTRIBUTE_NAME . accepts ( position ) ) && ( ! ( LombokCompletionContributor . isAfterPrimitiveOrArrayType ( position ) ) ) ) { LombokCompletionContributor . addExpectedTypeMembers ( parameters , result ) ; LombokCompletionContributor . completeAnnotationAttributeName ( result , position , parameters ) ; result . stopHere ( ) ; return ; } final InheritorsHolder inheritors = new InheritorsHolder ( position , result ) ; if ( com . intellij . codeInsight . completion . IN_TYPE_ARGS . accepts ( position ) ) { <START_BUG> new TypeArgumentCompletionProvider ( false , inheritors ) { <END_BUG> @ Override public void addCompletions ( @ NotNull CompletionParameters parameters , ProcessingContext processingContext , @ NotNull CompletionResultSet resultSet ) { super . addCompletions ( parameters , processingContext , resultSet ) ; } } . addCompletions ( parameters , new ProcessingContext ( ) , result ) ; } PrefixMatcher matcher = result . getPrefixMatcher ( ) ; if ( AFTER_NEW . accepts ( position ) ) { new JavaInheritorsGetter ( ConstructorInsertHandler . BASIC_INSTANCE ) . generateVariants ( parameters , matcher , inheritors ) ; } if ( LombokCompletionContributor . IMPORT_REFERENCE . accepts ( position ) ) { result . addElement ( LookupElementBuilder . create ( "*" ) ) ; } LombokCompletionContributor . addKeywords ( parameters , result ) ; Set < String > usedWords = LombokCompletionContributor . addReferenceVariants ( parameters , result , inheritors ) ; if ( psiElement ( ) . inside ( com . intellij . psi . PsiLiteralExpression . class ) . accepts ( position ) ) { PsiReference reference = position . getContainingFile ( ) . findReferenceAt ( parameters . getOffset ( ) ) ; if ( ( reference == null ) || ( reference . isSoft ( ) ) ) { WordCompletionContributor . addWordCompletionVariants ( result , parameters , usedWords ) ; } } JavaGenerateMemberCompletionContributor . fillCompletionVariants ( parameters , result ) ; if ( com . intellij . codeInsight . completion . LAMBDA . accepts ( parameters . getPosition ( ) ) ) { new LambdaCompletionProvider ( ) { @ Override public void addCompletions ( @ NotNull CompletionParameters parameters , ProcessingContext context , @ NotNull CompletionResultSet result ) { super . addCompletions ( parameters , context , result ) ; } } . addCompletions ( parameters , new ProcessingContext ( ) , result ) ; } addAllClasses ( parameters , result , inheritors ) ; final PsiElement parent = position . getParent ( ) ;

Fix:
new TypeArgumentCompletionProviderEx ( false , inheritors ) {