@Override
  public Result calculateResult(Expression @NotNull [] params, ExpressionContext context) {
    PsiType[] types = getExpectedTypes(params, context);
    if (types == null || types.length == 0) return null;
    return new PsiTypeResult(types[0], context.getProject());
  }
@Override
  public Result calculateResult(Expression @NotNull [] params, ExpressionContext context)