error[E0277]: not all required properties have been provided
  --> tests/html_macro/missing-props-diagnostics-fail.rs:6:10
   |
6  |         <Foo />
   |          ^^^ missing required properties for this component
   |
   = help: the trait `HasProp<bar, _>` is not implemented for `AssertAllProps`, which is required by `AssertAllProps: AllPropsFor<FooPropsBuilder, _>`
note: required for `CheckFooPropsAll<AssertAllProps>` to implement `HasAllProps<FooProps, (_, _)>`
  --> tests/html_macro/missing-props-diagnostics-fail.rs:24:10
   |
24 | #[derive(Properties, PartialEq, Clone)]
   |          ^^^^^^^^^^ unsatisfied trait bound introduced in this `derive` macro
   = note: required for `AssertAllProps` to implement `AllPropsFor<FooPropsBuilder, (_, _)>`
note: required by a bound in `yew::html::component::properties::__macro::PreBuild::<Token, B>::build`
  --> $WORKSPACE/packages/yew/src/html/component/properties.rs
   |
   |         pub fn build<How>(self) -> B::Output
   |                ----- required by a bound in this associated function
   |         where
   |             Token: AllPropsFor<B, How>,
   |                    ^^^^^^^^^^^^^^^^^^^ required by this bound in `PreBuild::<Token, B>::build`
   = note: this error originates in the macro `html` which comes from the expansion of the derive macro `Properties` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0277]: not all required properties have been provided
  --> tests/html_macro/missing-props-diagnostics-fail.rs:6:10
   |
6  |         <Foo />
   |          ^^^ missing required properties for this component
   |
   = help: the trait `HasProp<baz, _>` is not implemented for `AssertAllProps`, which is required by `AssertAllProps: AllPropsFor<FooPropsBuilder, _>`
note: required for `CheckFooPropsAll<AssertAllProps>` to implement `HasAllProps<FooProps, (_, _)>`
  --> tests/html_macro/missing-props-diagnostics-fail.rs:24:10
   |
24 | #[derive(Properties, PartialEq, Clone)]
   |          ^^^^^^^^^^ unsatisfied trait bound introduced in this `derive` macro
   = note: required for `AssertAllProps` to implement `AllPropsFor<FooPropsBuilder, (_, _)>`
note: required by a bound in `yew::html::component::properties::__macro::PreBuild::<Token, B>::build`
  --> $WORKSPACE/packages/yew/src/html/component/properties.rs
   |
   |         pub fn build<How>(self) -> B::Output
   |                ----- required by a bound in this associated function
   |         where
   |             Token: AllPropsFor<B, How>,
   |                    ^^^^^^^^^^^^^^^^^^^ required by this bound in `PreBuild::<Token, B>::build`
   = note: this error originates in the macro `html` which comes from the expansion of the derive macro `Properties` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0277]: property `baz` is required but not provided
  --> tests/html_macro/missing-props-diagnostics-fail.rs:13:10
   |
13 |         <Foo bar={"bar".to_string()} />
   |          ^^^ missing required property `baz`
   |
   = help: the trait `HasProp<baz, _>` is not implemented for `AssertAllProps`, which is required by `HasFooPropsbar<AssertAllProps>: AllPropsFor<FooPropsBuilder, _>`
   = help: the following other types implement trait `HasProp<P, How>`:
             <HasFooPropsbar<B> as HasProp<bar, HasFooPropsbar<B>>>
             <HasFooPropsbar<B> as HasProp<P, &dyn HasProp<P, How>>>
             <HasFooPropsbaz<B> as HasProp<baz, HasFooPropsbaz<B>>>
             <HasFooPropsbaz<B> as HasProp<P, &dyn HasProp<P, How>>>
             <CheckFooPropsAll<B> as HasProp<P, &dyn HasProp<P, How>>>
             <HasContextProviderPropscontext<B> as HasProp<yew::context::_ContextProviderProps::context, HasContextProviderPropscontext<B>>>
             <HasContextProviderPropscontext<B> as HasProp<P, &dyn HasProp<P, How>>>
             <HasContextProviderPropschildren<B> as HasProp<children, HasContextProviderPropschildren<B>>>
           and $N others
note: required for `HasFooPropsbar<AssertAllProps>` to implement `HasProp<baz, &dyn HasProp<baz, _>>`
  --> tests/html_macro/missing-props-diagnostics-fail.rs:24:10
   |
24 | #[derive(Properties, PartialEq, Clone)]
   |          ^^^^^^^^^^ unsatisfied trait bound introduced in this `derive` macro
note: required for `CheckFooPropsAll<HasFooPropsbar<AssertAllProps>>` to implement `HasAllProps<FooProps, (HasFooPropsbar<AssertAllProps>, &dyn HasProp<baz, _>)>`
  --> tests/html_macro/missing-props-diagnostics-fail.rs:24:10
   |
24 | #[derive(Properties, PartialEq, Clone)]
   |          ^^^^^^^^^^ unsatisfied trait bound introduced in this `derive` macro
   = note: required for `HasFooPropsbar<AssertAllProps>` to implement `AllPropsFor<FooPropsBuilder, (HasFooPropsbar<AssertAllProps>, &dyn HasProp<baz, _>)>`
note: required by a bound in `yew::html::component::properties::__macro::PreBuild::<Token, B>::build`
  --> $WORKSPACE/packages/yew/src/html/component/properties.rs
   |
   |         pub fn build<How>(self) -> B::Output
   |                ----- required by a bound in this associated function
   |         where
   |             Token: AllPropsFor<B, How>,
   |                    ^^^^^^^^^^^^^^^^^^^ required by this bound in `PreBuild::<Token, B>::build`
   = note: this error originates in the macro `html` which comes from the expansion of the derive macro `Properties` (in Nightly builds, run with -Z macro-backtrace for more info)
