@Nullable("when not pattern")
  PsiBuilder.Marker preParsePattern(final PsiBuilder builder) {
    PsiBuilder.Marker patternStart = builder.mark();
    Boolean hasNoModifier = myParser.getDeclarationParser().parseModifierList(builder, PATTERN_MODIFIERS).second;
    PsiBuilder.Marker type =
      myParser.getReferenceParser().parseType(builder, BasicReferenceParser.EAT_LAST_DOT | BasicReferenceParser.WILDCARD);
    boolean isPattern = type != null && (builder.getTokenType() == JavaTokenType.IDENTIFIER ||
                                         (builder.getTokenType() == JavaTokenType.LPARENTH && hasNoModifier));
    if (!isPattern) {
      patternStart.rollbackTo();
      return null;
    }
    return patternStart;
  }
@Nullable("when not pattern")
  PsiBuilder.Marker preParsePattern(final PsiBuilder builder)