Spun off https://bugs.chromium.org/p/chromium/issues/detail?id=700225#c8.
Suppose we write the following IDL statements:
typedef boolean Foo;
void func((Foo or long) arg);
This will generate two files, FooOrLong.cpp and FooOrLong.h. While we could accept the names still using the Foo typedef, the actual code is broken. FooOrLong.h has the following declarations, for example:
Foo* getAsFoo() const;
void setFoo(Foo*);
static FooOrLong fromFoo(Foo*);
// ...
Member<Foo> m_foo;
what's more, the IDL compiler considers "Foo" and "long" two different types, so it even allows one to do something like this:
typedef boolean Foo;
void func((Foo or boolean) arg);
Comment 1 by raphael....@intel.com
, Mar 15 2017