private static <T> T cast( String paramName, ClassObject struct, Class<T> expectedType, Location loc) throws EvalException { Object value = struct.getValue(paramName); return SkylarkType.cast( value, expectedType, loc, "expected %s for '%s' but got %s instead: %s", SkylarkType.of(expectedType), paramName, EvalUtils.getDataTypeName(value, false), value); }