Avoid a type error with a non-null default value for an optional nullable primitive argument.

This commit is contained in:
Ms2ger 2014-03-06 22:26:12 +01:00
parent 8b5778993a
commit 716e1ce144
3 changed files with 22 additions and 18 deletions

View file

@ -1274,6 +1274,10 @@ for (uint32_t i = 0; i < length; ++i) {
else: else:
assert(tag == IDLType.Tags.bool) assert(tag == IDLType.Tags.bool)
defaultStr = toStringBool(defaultValue.value) defaultStr = toStringBool(defaultValue.value)
if type.nullable():
defaultStr = "Some(%s)" % defaultStr
template = CGWrapper(CGIndenter(CGGeneric(template)), template = CGWrapper(CGIndenter(CGGeneric(template)),
pre="if ${haveValue} {\n", pre="if ${haveValue} {\n",
post=("\n" post=("\n"

View file

@ -123,15 +123,15 @@ impl TestBinding {
// pub fn PassOptionalNullableStringWithDefault(&self, _: Option<DOMString>) {} // pub fn PassOptionalNullableStringWithDefault(&self, _: Option<DOMString>) {}
pub fn PassOptionalNullableInterfaceWithDefault(&self, _: Option<JS<Blob>>) {} pub fn PassOptionalNullableInterfaceWithDefault(&self, _: Option<JS<Blob>>) {}
// pub fn PassOptionalNullableBooleanWithNonNullDefault(&self, _: Option<bool>) {} pub fn PassOptionalNullableBooleanWithNonNullDefault(&self, _: Option<bool>) {}
// pub fn PassOptionalNullableByteWithNonNullDefault(&self, _: Option<i8>) {} pub fn PassOptionalNullableByteWithNonNullDefault(&self, _: Option<i8>) {}
// pub fn PassOptionalNullableOctetWithNonNullDefault(&self, _: Option<u8>) {} pub fn PassOptionalNullableOctetWithNonNullDefault(&self, _: Option<u8>) {}
// pub fn PassOptionalNullableShortWithNonNullDefault(&self, _: Option<i16>) {} pub fn PassOptionalNullableShortWithNonNullDefault(&self, _: Option<i16>) {}
// pub fn PassOptionalNullableUnsignedShortWithNonNullDefault(&self, _: Option<u16>) {} pub fn PassOptionalNullableUnsignedShortWithNonNullDefault(&self, _: Option<u16>) {}
// pub fn PassOptionalNullableLongWithNonNullDefault(&self, _: Option<i32>) {} pub fn PassOptionalNullableLongWithNonNullDefault(&self, _: Option<i32>) {}
// pub fn PassOptionalNullableUnsignedLongWithNonNullDefault(&self, _: Option<u32>) {} pub fn PassOptionalNullableUnsignedLongWithNonNullDefault(&self, _: Option<u32>) {}
// pub fn PassOptionalNullableLongLongWithNonNullDefault(&self, _: Option<i64>) {} pub fn PassOptionalNullableLongLongWithNonNullDefault(&self, _: Option<i64>) {}
// pub fn PassOptionalNullableUnsignedLongLongWithNonNullDefault(&self, _: Option<u64>) {} pub fn PassOptionalNullableUnsignedLongLongWithNonNullDefault(&self, _: Option<u64>) {}
// pub fn PassOptionalNullableFloatWithNonNullDefault(&self, _: Option<f32>) {} // pub fn PassOptionalNullableFloatWithNonNullDefault(&self, _: Option<f32>) {}
// pub fn PassOptionalNullableDoubleWithNonNullDefault(&self, _: Option<f64>) {} // pub fn PassOptionalNullableDoubleWithNonNullDefault(&self, _: Option<f64>) {}
// pub fn PassOptionalNullableStringWithNonNullDefault(&self, _: Option<DOMString>) {} // pub fn PassOptionalNullableStringWithNonNullDefault(&self, _: Option<DOMString>) {}

View file

@ -83,15 +83,15 @@ interface TestBinding {
// void passOptionalNullableStringWithDefault(optional DOMString? arg = null); // void passOptionalNullableStringWithDefault(optional DOMString? arg = null);
void passOptionalNullableInterfaceWithDefault(optional Blob? arg = null); void passOptionalNullableInterfaceWithDefault(optional Blob? arg = null);
// void passOptionalNullableBooleanWithNonNullDefault(optional boolean? arg = false); void passOptionalNullableBooleanWithNonNullDefault(optional boolean? arg = false);
// void passOptionalNullableByteWithNonNullDefault(optional byte? arg = 7); void passOptionalNullableByteWithNonNullDefault(optional byte? arg = 7);
// void passOptionalNullableOctetWithNonNullDefault(optional octet? arg = 7); void passOptionalNullableOctetWithNonNullDefault(optional octet? arg = 7);
// void passOptionalNullableShortWithNonNullDefault(optional short? arg = 7); void passOptionalNullableShortWithNonNullDefault(optional short? arg = 7);
// void passOptionalNullableUnsignedShortWithNonNullDefault(optional unsigned short? arg = 7); void passOptionalNullableUnsignedShortWithNonNullDefault(optional unsigned short? arg = 7);
// void passOptionalNullableLongWithNonNullDefault(optional long? arg = 7); void passOptionalNullableLongWithNonNullDefault(optional long? arg = 7);
// void passOptionalNullableUnsignedLongWithNonNullDefault(optional unsigned long? arg = 7); void passOptionalNullableUnsignedLongWithNonNullDefault(optional unsigned long? arg = 7);
// void passOptionalNullableLongLongWithNonNullDefault(optional long long? arg = 7); void passOptionalNullableLongLongWithNonNullDefault(optional long long? arg = 7);
// void passOptionalNullableUnsignedLongLongWithNonNullDefault(optional unsigned long long? arg = 7); void passOptionalNullableUnsignedLongLongWithNonNullDefault(optional unsigned long long? arg = 7);
// void passOptionalNullableFloatWithNonNullDefault(optional float? arg = 0.0); // void passOptionalNullableFloatWithNonNullDefault(optional float? arg = 0.0);
// void passOptionalNullableDoubleWithNonNullDefault(optional double? arg = 0.0); // void passOptionalNullableDoubleWithNonNullDefault(optional double? arg = 0.0);
// void passOptionalNullableStringWithNonNullDefault(optional DOMString? arg = ""); // void passOptionalNullableStringWithNonNullDefault(optional DOMString? arg = "");