private @Nullable PsiJavaToken parseMethod(@NotNull PsiJavaToken token) {
      // void foo() @MyAnno {} is accepted
      token = tryCast(parseModifiers(parseParams(token)), PsiJavaToken.class);
      if (token == null) return null;
      token = parseArrayType(token);
      if (token == null) return null;
      token = parseThrowsClause(token);
      if (token == null) return null;
      IElementType tokenType = token.getTokenType();
      if (tokenType == JavaTokenType.SEMICOLON) return token;
      if (tokenType != JavaTokenType.LBRACE) return null;
      return findClosingBracket(token, JavaTokenType.LBRACE, JavaTokenType.RBRACE);
    }
private @Nullable PsiJavaToken parseMethod(@NotNull PsiJavaToken token)