aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/bindings/codegen/CodegenRust.py
diff options
context:
space:
mode:
authorEmilio Cobos Álvarez <me@emiliocobos.me>2016-05-13 10:36:41 +0200
committerEmilio Cobos Álvarez <me@emiliocobos.me>2016-05-13 11:44:39 +0200
commit91101f6226033a663ea8e4bb215f72ab8d206da7 (patch)
treeb02ddbe49a31fcc9bc8c63cd33d0221f836a8e34 /components/script/dom/bindings/codegen/CodegenRust.py
parente50d4b762441aacb2327e9f81888f2d08f5bf624 (diff)
downloadservo-91101f6226033a663ea8e4bb215f72ab8d206da7.tar.gz
servo-91101f6226033a663ea8e4bb215f72ab8d206da7.zip
codegen: Throw a more descriptive invalid enum message
Diffstat (limited to 'components/script/dom/bindings/codegen/CodegenRust.py')
-rw-r--r--components/script/dom/bindings/codegen/CodegenRust.py12
1 files changed, 6 insertions, 6 deletions
diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py
index 883aeb7c8d6..076b7bd642f 100644
--- a/components/script/dom/bindings/codegen/CodegenRust.py
+++ b/components/script/dom/bindings/codegen/CodegenRust.py
@@ -662,11 +662,11 @@ def getJSToNativeConversionInfo(type, descriptorProvider, failureCode=None,
'%s' % (firstCap(sourceDescription), exceptionCode))),
post="\n")
- def onFailureInvalidEnumValue(failureCode):
+ def onFailureInvalidEnumValue(failureCode, passedVarName):
return CGGeneric(
failureCode or
- ('throw_type_error(cx, "%s is not a valid enum value."); %s'
- % (firstCap(sourceDescription), exceptionCode)))
+ ('throw_type_error(cx, &format!("\'{}\' is not a valid enum value for enumeration \'%s\'.", %s)); %s'
+ % (type.name, passedVarName, exceptionCode)))
def onFailureNotCallable(failureCode):
return CGGeneric(
@@ -873,15 +873,15 @@ def getJSToNativeConversionInfo(type, descriptorProvider, failureCode=None,
"yet")
enum = type.inner.identifier.name
if invalidEnumValueFatal:
- handleInvalidEnumValueCode = onFailureInvalidEnumValue(failureCode).define()
+ handleInvalidEnumValueCode = onFailureInvalidEnumValue(failureCode, 'search').define()
else:
handleInvalidEnumValueCode = "return true;"
template = (
"match find_enum_string_index(cx, ${val}, %(values)s) {\n"
" Err(_) => { %(exceptionCode)s },\n"
- " Ok(None) => { %(handleInvalidEnumValueCode)s },\n"
- " Ok(Some(index)) => {\n"
+ " Ok((None, search)) => { %(handleInvalidEnumValueCode)s },\n"
+ " Ok((Some(index), _)) => {\n"
" //XXXjdm need some range checks up in here.\n"
" mem::transmute(index)\n"
" },\n"