code: static void checkTypes(ImmutableList<Type> types, Iterable<? extends Expression> exprs) {
      int size = Iterables.size(exprs);
      checkArgument(
          size == types.size(),
          "Supplied the wrong number of parameters. Expected %s, got %s",
          types.size(),
          size);
      // checkIsAssignableTo is an no-op if DEBUG is false
      if (Flags.DEBUG) {
        int i = 0;
        for (Expression expr : exprs) {
          expr.checkAssignableTo(types.get(i), "Parameter %s", i);
          i++;
        }
      }
    }
docs: Checks that the given expressions are compatible with the given types.