Closed Bug 1116225 Opened 10 years ago Closed 10 years ago

Union type definitions collide in generated binding headers

Categories

(Core :: DOM: Core & HTML, defect)

34 Branch
x86
macOS
defect
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 1103153

People

(Reporter: jib, Unassigned)

Details

This may be a dup of Bug 995352 but the symptoms seem to have changed a bit and the use-case is maybe a bit different (DOMString, not Dictionary) so here are the new details.

STR:

 dictionary RTCIceServer {
-    DOMString  url;
+    (DOMString or sequence<DOMString>) urls;
     DOMString? credential = null;
     DOMString? username = null;
 };

 dictionary RTCConfiguration {
     sequence<RTCIceServer> iceServers;
     DOMString? peerIdentity = null;
 };

Result:

> UnifiedBindings10.o
> In file included from /Users/Jan/moz/mozilla-central/obj-x86_64-apple-darwin12.2.1-opt/dom/bindings/RegisterBindings.cpp:218:
> ../../dist/include/mozilla/dom/IDBObjectStoreBinding.h:37:7: error: redefinition of 'StringOrStringSequence'
> class StringOrStringSequence
>       ^
> ../../dist/include/mozilla/dom/UnionTypes.h:2605:7: note: previous definition is here
> class StringOrStringSequence
>       ^
> In file included from /Users/Jan/moz/mozilla-central/obj-x86_64-apple-darwin12.2.1-opt/dom/bindings/RegisterBindings.cpp:218:
> ../../dist/include/mozilla/dom/IDBObjectStoreBinding.h:194:7: error: redefinition of 'OwningStringOrStringSequence'
> class OwningStringOrStringSequence : public AllOwningUnionBase
>       ^
> ../../dist/include/mozilla/dom/UnionTypes.h:4966:7: note: previous definition is here
> class OwningStringOrStringSequence : public AllOwningUnionBase
>       ^
> 2 errors generated.

It seems to be colliding with another use of (DOMString or sequence<DOMString>) in [1].

Workaround:

Reversing the order of the union types avoids the collision:

    (sequence<DOMString> or DOMString) urls;

e.g. StringSequenceOrString does not collide with StringOrStringSequence.

but this unblocks me just once, and I'm already working on two different patches that need (DOMString or sequence<DOMString>) (Bug 1115998 and Bug 1003274).

[1] http://mxr.mozilla.org/mozilla-central/source/dom/webidl/IDBObjectStore.webidl?rev=9d0ed89e7c58&mark=11-11
Is this only an issue with a dep build that disappears with a clobber build?  Because this looks to me like bug 1103153.
Depends on: 1103153
A clobber does indeed fix it.
Status: NEW → RESOLVED
Closed: 10 years ago
No longer depends on: 1103153
Resolution: --- → DUPLICATE
No longer blocks: 1006707, 1115998
Component: DOM → DOM: Core & HTML
You need to log in before you can comment on or make changes to this bug.