diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py index 79479363acd..e5c3761edfe 100644 --- a/components/script/dom/bindings/codegen/CodegenRust.py +++ b/components/script/dom/bindings/codegen/CodegenRust.py @@ -6122,7 +6122,8 @@ class CGBindingRoot(CGThing): # Do codegen for all the typdefs for t in typedefs: - if t.innerType.isUnion(): + if t.innerType.isUnion() and not t.innerType.nullable(): + # Allow using the typedef's name for accessing variants. cgthings.extend([CGGeneric("\npub use dom::bindings::codegen::UnionTypes::%s as %s;\n\n" % (t.innerType, t.identifier.name))]) else: diff --git a/components/script/dom/webidls/TestBinding.webidl b/components/script/dom/webidls/TestBinding.webidl index 6920ded6301..59d4fb35466 100644 --- a/components/script/dom/webidls/TestBinding.webidl +++ b/components/script/dom/webidls/TestBinding.webidl @@ -7,6 +7,7 @@ enum TestEnum { "", "foo", "bar" }; typedef (DOMString or URL or Blob) TestTypedef; +typedef (DOMString or URL or Blob)? TestTypedefNullableUnion; dictionary TestDictionary { required boolean requiredValue;