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:
assert(tag == IDLType.Tags.bool)
defaultStr = toStringBool(defaultValue.value)
if type.nullable():
defaultStr = "Some(%s)" % defaultStr
template = CGWrapper(CGIndenter(CGGeneric(template)),
pre="if ${haveValue} {\n",
post=("\n"

View file

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

View file

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