diff --git a/crates/webidl-tests/consts.rs b/crates/webidl-tests/consts.rs index d6a05043..e678ea6a 100644 --- a/crates/webidl-tests/consts.rs +++ b/crates/webidl-tests/consts.rs @@ -48,4 +48,5 @@ fn floats() { assert!(ConstDoubles::INF.is_infinite()); assert!(ConstDoubles::INF.is_sign_positive()); assert!(ConstDoubles::NAN.is_nan()); + assert_eq!(ConstDoubles::ONE, 1.0); } diff --git a/crates/webidl-tests/consts.webidl b/crates/webidl-tests/consts.webidl index 96baac33..f03c499a 100644 --- a/crates/webidl-tests/consts.webidl +++ b/crates/webidl-tests/consts.webidl @@ -44,3 +44,9 @@ interface ConstDoubles { const unrestricted double inf = Infinity; const unrestricted double nan = NaN; }; + +interface mixin ConstDoublesMixin { + const double one = 1.0; +}; + +ConstDoubles includes ConstDoublesMixin; diff --git a/crates/webidl/src/lib.rs b/crates/webidl/src/lib.rs index c0c419c7..bb8bab71 100644 --- a/crates/webidl/src/lib.rs +++ b/crates/webidl/src/lib.rs @@ -477,9 +477,11 @@ impl<'a, 'src> WebidlParse<'src, &'a str> for weedle::mixin::MixinMember<'src> { weedle::mixin::MixinMember::Operation(op) => { op.webidl_parse(program, first_pass, self_name) } + weedle::mixin::MixinMember::Const(const_) => { + const_.webidl_parse(program, first_pass, self_name) + } // TODO - weedle::mixin::MixinMember::Stringifier(_) | - weedle::mixin::MixinMember::Const(_) => { + weedle::mixin::MixinMember::Stringifier(_) => { warn!("Unsupported WebIDL mixin member: {:?}", self); Ok(()) }