public function __construct(PhutilTypeSpec $type, $value, $name = null, $err = null) { if ($name !== null) { $invalid = pht("Parameter '%s' has invalid type.", $name); } else { $invalid = pht("Parameter has invalid type."); } if ($type->getType() == 'regex') { if (is_string($value)) { $message = pht("Expected a regular expression, but '%s' is not valid: %s", $value, $err); } else { $message = pht("Expected a regular expression, but value is not valid: %s", $err); } } else { $message = pht("Expected type '%s', got type '%s'.", $type->toString(), PhutilTypeSpec::getTypeOf($value)); } parent::__construct($invalid . ' ' . $message); }