error: this opening tag has no corresponding closing tag
 --> tests/html_macro/element-fail.rs:7:13
  |
7 |     html! { <div> };
  |             ^^^^^

error: this opening tag has no corresponding closing tag
 --> tests/html_macro/element-fail.rs:8:18
  |
8 |     html! { <div><div> };
  |                  ^^^^^

error: this opening tag has no corresponding closing tag
 --> tests/html_macro/element-fail.rs:9:13
  |
9 |     html! { <div><div></div> };
  |             ^^^^^

error: this closing tag has no corresponding opening tag
  --> tests/html_macro/element-fail.rs:12:13
   |
12 |     html! { </div> };
   |             ^^^^^^

error: this closing tag has no corresponding opening tag
  --> tests/html_macro/element-fail.rs:13:18
   |
13 |     html! { <div></span></div> };
   |                  ^^^^^^^

error: only one root html element is allowed (hint: you can wrap multiple html elements in a fragment `<></>`)
  --> tests/html_macro/element-fail.rs:14:20
   |
14 |     html! { <img /></img> };
   |                    ^^^^^^

error: this closing tag has no corresponding opening tag
  --> tests/html_macro/element-fail.rs:17:18
   |
17 |     html! { <div></span> };
   |                  ^^^^^^^

error: this closing tag has no corresponding opening tag
  --> tests/html_macro/element-fail.rs:18:20
   |
18 |     html! { <tag-a></tag-b> };
   |                    ^^^^^^^^

error: only one root html element is allowed (hint: you can wrap multiple html elements in a fragment `<></>`)
  --> tests/html_macro/element-fail.rs:21:24
   |
21 |     html! { <div></div><div></div> };
   |                        ^^^^^^^^^^^

error: expected a valid html element
  --> tests/html_macro/element-fail.rs:23:18
   |
23 |     html! { <div>Invalid</div> };
   |                  ^^^^^^^

error: `attr` can only be specified once but is given here again
  --> tests/html_macro/element-fail.rs:26:27
   |
26 |     html! { <input attr=1 attr=2 /> };
   |                           ^^^^

error: `value` can only be specified once but is given here again
  --> tests/html_macro/element-fail.rs:27:32
   |
27 |     html! { <input value="123" value="456" /> };
   |                                ^^^^^

error: `kind` can only be specified once but is given here again
  --> tests/html_macro/element-fail.rs:28:36
   |
28 |     html! { <input kind="checkbox" kind="submit" /> };
   |                                    ^^^^

error: `checked` can only be specified once but is given here again
  --> tests/html_macro/element-fail.rs:29:33
   |
29 |     html! { <input checked=true checked=false /> };
   |                                 ^^^^^^^

error: `disabled` can only be specified once but is given here again
  --> tests/html_macro/element-fail.rs:30:34
   |
30 |     html! { <input disabled=true disabled=false /> };
   |                                  ^^^^^^^^

error: `selected` can only be specified once but is given here again
  --> tests/html_macro/element-fail.rs:31:35
   |
31 |     html! { <option selected=true selected=false /> };
   |                                   ^^^^^^^^

error: `class` can only be specified once but is given here again
  --> tests/html_macro/element-fail.rs:32:32
   |
32 |     html! { <div class="first" class="second" /> };
   |                                ^^^^^

error: `ref` can only be specified once
  --> tests/html_macro/element-fail.rs:33:29
   |
33 |     html! { <input ref={()} ref={()} /> };
   |                             ^^^

error: `ref` can only be specified once
  --> tests/html_macro/element-fail.rs:63:29
   |
63 |     html! { <input ref={()} ref={()} /> };
   |                             ^^^

error: the tag `<input>` is a void element and cannot have children (hint: rewrite this as `<input />`)
  --> tests/html_macro/element-fail.rs:66:13
   |
66 |     html! { <input type="text"></input> };
   |             ^^^^^^^^^^^^^^^^^^^

error: the tag `<iNpUt>` is a void element and cannot have children (hint: rewrite this as `<iNpUt />`)
  --> tests/html_macro/element-fail.rs:68:13
   |
68 |     html! { <iNpUt type="text"></iNpUt> };
   |             ^^^^^^^^^^^^^^^^^^^

error: this dynamic tag is missing an expression block defining its value
  --> tests/html_macro/element-fail.rs:71:14
   |
71 |     html! { <@></@> };
   |              ^

error: this dynamic tag is missing an expression block defining its value
  --> tests/html_macro/element-fail.rs:72:14
   |
72 |     html! { <@/> };
   |              ^

error: dynamic closing tags must not have a body (hint: replace it with just `</@>`)
  --> tests/html_macro/element-fail.rs:75:27
   |
75 |     html! { <@{"test"}></@{"test"}> };
   |                           ^^^^^^^^

error: the property value must be either a literal or enclosed in braces. Consider adding braces around your expression.: Expr::Tuple {
           attrs: [],
           paren_token: Paren,
           elems: [
               Expr::Lit {
                   attrs: [],
                   lit: Lit::Str {
                       token: "deprecated",
                   },
               },
               Comma,
               Expr::Lit {
                   attrs: [],
                   lit: Lit::Str {
                       token: "warning",
                   },
               },
           ],
       }
  --> tests/html_macro/element-fail.rs:83:24
   |
83 |     html! { <div class=("deprecated", "warning") /> };
   |                        ^^^^^^^^^^^^^^^^^^^^^^^^^

error: the property value must be either a literal or enclosed in braces. Consider adding braces around your expression.: Expr::Tuple {
           attrs: [],
           paren_token: Paren,
           elems: [],
       }
  --> tests/html_macro/element-fail.rs:84:24
   |
84 |     html! { <input ref=() /> };
   |                        ^^

error: the property value must be either a literal or enclosed in braces. Consider adding braces around your expression.: Expr::Tuple {
           attrs: [],
           paren_token: Paren,
           elems: [],
       }
  --> tests/html_macro/element-fail.rs:85:24
   |
85 |     html! { <input ref=() ref=() /> };
   |                        ^^

error: the property value must be either a literal or enclosed in braces. Consider adding braces around your expression.: Expr::Call {
           attrs: [],
           func: Expr::Path {
               attrs: [],
               qself: None,
               path: Path {
                   leading_colon: None,
                   segments: [
                       PathSegment {
                           ident: Ident {
                               ident: "Some",
                               span: #0 bytes(2632..2636),
                           },
                           arguments: PathArguments::None,
                       },
                   ],
               },
           },
           paren_token: Paren,
           args: [
               Expr::Lit {
                   attrs: [],
                   lit: Lit::Int {
                       token: 5,
                   },
               },
           ],
       }
  --> tests/html_macro/element-fail.rs:86:28
   |
86 |     html! { <input onfocus=Some(5) /> };
   |                            ^^^^^^^

error: the property value must be either a literal or enclosed in braces. Consider adding braces around your expression.: Expr::Path {
           attrs: [],
           qself: None,
           path: Path {
               leading_colon: None,
               segments: [
                   PathSegment {
                       ident: Ident {
                           ident: "NotToString",
                           span: #0 bytes(2672..2683),
                       },
                       arguments: PathArguments::None,
                   },
               ],
           },
       }
  --> tests/html_macro/element-fail.rs:87:27
   |
87 |     html! { <input string=NotToString /> };
   |                           ^^^^^^^^^^^

error: the property value must be either a literal or enclosed in braces. Consider adding braces around your expression.: Expr::Call {
           attrs: [],
           func: Expr::Path {
               attrs: [],
               qself: None,
               path: Path {
                   leading_colon: None,
                   segments: [
                       PathSegment {
                           ident: Ident {
                               ident: "Some",
                               span: #0 bytes(2711..2715),
                           },
                           arguments: PathArguments::None,
                       },
                   ],
               },
           },
           paren_token: Paren,
           args: [
               Expr::Path {
                   attrs: [],
                   qself: None,
                   path: Path {
                       leading_colon: None,
                       segments: [
                           PathSegment {
                               ident: Ident {
                                   ident: "NotToString",
                                   span: #0 bytes(2716..2727),
                               },
                               arguments: PathArguments::None,
                           },
                       ],
                   },
               },
           ],
       }
  --> tests/html_macro/element-fail.rs:88:22
   |
88 |     html! { <a media=Some(NotToString) /> };
   |                      ^^^^^^^^^^^^^^^^^

error: the property value must be either a literal or enclosed in braces. Consider adding braces around your expression.: Expr::Call {
           attrs: [],
           func: Expr::Path {
               attrs: [],
               qself: None,
               path: Path {
                   leading_colon: None,
                   segments: [
                       PathSegment {
                           ident: Ident {
                               ident: "Some",
                               span: #0 bytes(2755..2759),
                           },
                           arguments: PathArguments::None,
                       },
                   ],
               },
           },
           paren_token: Paren,
           args: [
               Expr::Lit {
                   attrs: [],
                   lit: Lit::Int {
                       token: 5,
                   },
               },
           ],
       }
  --> tests/html_macro/element-fail.rs:89:21
   |
89 |     html! { <a href=Some(5) /> };
   |                     ^^^^^^^

error: the property value must be either a literal or enclosed in braces. Consider adding braces around your expression.: Expr::Tuple {
           attrs: [],
           paren_token: Paren,
           elems: [],
       }
  --> tests/html_macro/element-fail.rs:90:25
   |
90 |     html! { <input type=() /> };
   |                         ^^

error: the property value must be either a literal or enclosed in braces. Consider adding braces around your expression.: Expr::Tuple {
           attrs: [],
           paren_token: Paren,
           elems: [],
       }
  --> tests/html_macro/element-fail.rs:91:26
   |
91 |     html! { <input value=() /> };
   |                          ^^

error: the property value must be either a literal or enclosed in braces. Consider adding braces around your expression.: Expr::Path {
           attrs: [],
           qself: None,
           path: Path {
               leading_colon: None,
               segments: [
                   PathSegment {
                       ident: Ident {
                           ident: "NotToString",
                           span: #0 bytes(2862..2873),
                       },
                       arguments: PathArguments::None,
                   },
               ],
           },
       }
  --> tests/html_macro/element-fail.rs:92:27
   |
92 |     html! { <input string=NotToString /> };
   |                           ^^^^^^^^^^^

warning: use of deprecated function `compile_fail::deprecated_use_of_class`: the use of `(...)` with the attribute `class` is deprecated and will be removed in version 0.19. Use the `classes!` macro instead.
  --> tests/html_macro/element-fail.rs:80:25
   |
80 |     html! { <div class={("deprecated", "warning")} /> };
   |                         ^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: `#[warn(deprecated)]` on by default

error[E0308]: mismatched types
  --> tests/html_macro/element-fail.rs:36:28
   |
36 |     html! { <input checked=1 /> };
   |     -----------------------^-----
   |     |                      |
   |     |                      expected `bool`, found integer
   |     arguments to this enum variant are incorrect
   |
note: tuple variant defined here

error[E0308]: mismatched types
  --> tests/html_macro/element-fail.rs:37:29
   |
37 |     html! { <input checked={Some(false)} /> };
   |     ------------------------^^^^^^^^^^^------
   |     |                       |
   |     |                       expected `bool`, found enum `Option`
   |     arguments to this enum variant are incorrect
   |
   = note: expected type `bool`
              found enum `Option<bool>`
note: tuple variant defined here

error[E0308]: mismatched types
  --> tests/html_macro/element-fail.rs:38:29
   |
38 |     html! { <input disabled=1 /> };
   |                             ^
   |                             |
   |                             expected `bool`, found integer
   |                             arguments to this function are incorrect
   |
note: function defined here
  --> $WORKSPACE/packages/yew/src/utils/mod.rs
   |
   | pub fn __ensure_type<T>(_: T) {}
   |        ^^^^^^^^^^^^^

error[E0308]: mismatched types
  --> tests/html_macro/element-fail.rs:39:30
   |
39 |     html! { <input disabled={Some(true)} /> };
   |                              ^^^^^^^^^^ expected `bool`, found enum `Option`
   |
   = note: expected type `bool`
              found enum `Option<bool>`

error[E0308]: mismatched types
  --> tests/html_macro/element-fail.rs:40:30
   |
40 |     html! { <option selected=1 /> };
   |                              ^
   |                              |
   |                              expected `bool`, found integer
   |                              arguments to this function are incorrect
   |
note: function defined here
  --> $WORKSPACE/packages/yew/src/utils/mod.rs
   |
   | pub fn __ensure_type<T>(_: T) {}
   |        ^^^^^^^^^^^^^

error[E0277]: the trait bound `(): IntoPropValue<Option<implicit_clone::unsync::IString>>` is not satisfied
  --> tests/html_macro/element-fail.rs:43:26
   |
43 |     html! { <input type={()} /> };
   |                          ^^ the trait `IntoPropValue<Option<implicit_clone::unsync::IString>>` is not implemented for `()`
   |
   = help: the following other types implement trait `IntoPropValue<T>`:
             <&'static [(K, V)] as IntoPropValue<implicit_clone::unsync::IMap<K, V>>>
             <&'static [T] as IntoPropValue<implicit_clone::unsync::IArray<T>>>
             <&'static str as IntoPropValue<Classes>>
             <&'static str as IntoPropValue<Option<String>>>
             <&'static str as IntoPropValue<Option<implicit_clone::unsync::IString>>>
             <&'static str as IntoPropValue<String>>
             <&'static str as IntoPropValue<implicit_clone::unsync::IString>>
             <&T as IntoPropValue<Option<T>>>
           and $N others

error[E0277]: the trait bound `(): IntoPropValue<Option<implicit_clone::unsync::IString>>` is not satisfied
  --> tests/html_macro/element-fail.rs:44:27
   |
44 |     html! { <input value={()} /> };
   |                           ^^ the trait `IntoPropValue<Option<implicit_clone::unsync::IString>>` is not implemented for `()`
   |
   = help: the following other types implement trait `IntoPropValue<T>`:
             <&'static [(K, V)] as IntoPropValue<implicit_clone::unsync::IMap<K, V>>>
             <&'static [T] as IntoPropValue<implicit_clone::unsync::IArray<T>>>
             <&'static str as IntoPropValue<Classes>>
             <&'static str as IntoPropValue<Option<String>>>
             <&'static str as IntoPropValue<Option<implicit_clone::unsync::IString>>>
             <&'static str as IntoPropValue<String>>
             <&'static str as IntoPropValue<implicit_clone::unsync::IString>>
             <&T as IntoPropValue<Option<T>>>
           and $N others

error[E0277]: the trait bound `(): IntoPropValue<Option<implicit_clone::unsync::IString>>` is not satisfied
  --> tests/html_macro/element-fail.rs:45:22
   |
45 |     html! { <a href={()} /> };
   |                      ^^ the trait `IntoPropValue<Option<implicit_clone::unsync::IString>>` is not implemented for `()`
   |
   = help: the following other types implement trait `IntoPropValue<T>`:
             <&'static [(K, V)] as IntoPropValue<implicit_clone::unsync::IMap<K, V>>>
             <&'static [T] as IntoPropValue<implicit_clone::unsync::IArray<T>>>
             <&'static str as IntoPropValue<Classes>>
             <&'static str as IntoPropValue<Option<String>>>
             <&'static str as IntoPropValue<Option<implicit_clone::unsync::IString>>>
             <&'static str as IntoPropValue<String>>
             <&'static str as IntoPropValue<implicit_clone::unsync::IString>>
             <&T as IntoPropValue<Option<T>>>
           and $N others

error[E0277]: the trait bound `NotToString: IntoPropValue<Option<implicit_clone::unsync::IString>>` is not satisfied
  --> tests/html_macro/element-fail.rs:46:28
   |
46 |     html! { <input string={NotToString} /> };
   |                            ^^^^^^^^^^^ the trait `IntoPropValue<Option<implicit_clone::unsync::IString>>` is not implemented for `NotToString`
   |
   = help: the following other types implement trait `IntoPropValue<T>`:
             <&'static [(K, V)] as IntoPropValue<implicit_clone::unsync::IMap<K, V>>>
             <&'static [T] as IntoPropValue<implicit_clone::unsync::IArray<T>>>
             <&'static str as IntoPropValue<Classes>>
             <&'static str as IntoPropValue<Option<String>>>
             <&'static str as IntoPropValue<Option<implicit_clone::unsync::IString>>>
             <&'static str as IntoPropValue<String>>
             <&'static str as IntoPropValue<implicit_clone::unsync::IString>>
             <&T as IntoPropValue<Option<T>>>
           and $N others

error[E0277]: the trait bound `Option<NotToString>: IntoPropValue<Option<implicit_clone::unsync::IString>>` is not satisfied
  --> tests/html_macro/element-fail.rs:47:23
   |
47 |     html! { <a media={Some(NotToString)} /> };
   |                       ^^^^ the trait `IntoPropValue<Option<implicit_clone::unsync::IString>>` is not implemented for `Option<NotToString>`
   |
   = help: the following other types implement trait `IntoPropValue<T>`:
             <Option<&'static str> as IntoPropValue<Option<String>>>
             <Option<&'static str> as IntoPropValue<Option<implicit_clone::unsync::IString>>>
             <Option<Cow<'static, str>> as IntoPropValue<Option<implicit_clone::unsync::IString>>>
             <Option<F> as IntoPropValue<Option<yew::Callback<I, O>>>>
             <Option<Rc<str>> as IntoPropValue<Option<implicit_clone::unsync::IString>>>
             <Option<String> as IntoPropValue<Option<implicit_clone::unsync::IString>>>
             <Option<VChild<T>> as IntoPropValue<Option<ChildrenRenderer<C>>>>

error[E0277]: the trait bound `Option<{integer}>: IntoPropValue<Option<implicit_clone::unsync::IString>>` is not satisfied
  --> tests/html_macro/element-fail.rs:48:22
   |
48 |     html! { <a href={Some(5)} /> };
   |                      ^^^^ the trait `IntoPropValue<Option<implicit_clone::unsync::IString>>` is not implemented for `Option<{integer}>`
   |
   = help: the following other types implement trait `IntoPropValue<T>`:
             <Option<&'static str> as IntoPropValue<Option<String>>>
             <Option<&'static str> as IntoPropValue<Option<implicit_clone::unsync::IString>>>
             <Option<Cow<'static, str>> as IntoPropValue<Option<implicit_clone::unsync::IString>>>
             <Option<F> as IntoPropValue<Option<yew::Callback<I, O>>>>
             <Option<Rc<str>> as IntoPropValue<Option<implicit_clone::unsync::IString>>>
             <Option<String> as IntoPropValue<Option<implicit_clone::unsync::IString>>>
             <Option<VChild<T>> as IntoPropValue<Option<ChildrenRenderer<C>>>>

error[E0277]: expected a `Fn<(MouseEvent,)>` closure, found `{integer}`
  --> tests/html_macro/element-fail.rs:51:28
   |
51 |     html! { <input onclick=1 /> };
   |     -----------------------^-----
   |     |                      |
   |     |                      expected an `Fn<(MouseEvent,)>` closure, found `{integer}`
   |     required by a bound introduced by this call
   |
   = help: the trait `Fn<(MouseEvent,)>` is not implemented for `{integer}`
   = help: the following other types implement trait `IntoEventCallback<EVENT>`:
             &yew::Callback<EVENT>
             Option<T>
             Option<yew::Callback<EVENT>>
             yew::Callback<EVENT>
   = note: required because of the requirements on the impl of `IntoEventCallback<MouseEvent>` for `{integer}`
note: required by a bound in `yew::html::onclick::Wrapper::__macro_new`
  --> $WORKSPACE/packages/yew/src/html/listener/events.rs
   |
   | / impl_short! {
   | |     onauxclick(MouseEvent)
   | |     onclick(MouseEvent)
   | |
...  |
   | |     ontransitionstart(TransitionEvent)
   | | }
   | |_^ required by this bound in `yew::html::onclick::Wrapper::__macro_new`
   = note: this error originates in the macro `impl_action` which comes from the expansion of the macro `impl_short` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0277]: expected a `Fn<(MouseEvent,)>` closure, found `yew::Callback<String>`
  --> tests/html_macro/element-fail.rs:52:29
   |
52 |     html! { <input onclick={Callback::from(|a: String| ())} /> };
   |     ------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------
   |     |                       |
   |     |                       expected an `Fn<(MouseEvent,)>` closure, found `yew::Callback<String>`
   |     required by a bound introduced by this call
   |
   = help: the trait `Fn<(MouseEvent,)>` is not implemented for `yew::Callback<String>`
   = help: the following other types implement trait `IntoEventCallback<EVENT>`:
             &yew::Callback<EVENT>
             yew::Callback<EVENT>
   = note: required because of the requirements on the impl of `IntoEventCallback<MouseEvent>` for `yew::Callback<String>`
note: required by a bound in `yew::html::onclick::Wrapper::__macro_new`
  --> $WORKSPACE/packages/yew/src/html/listener/events.rs
   |
   | / impl_short! {
   | |     onauxclick(MouseEvent)
   | |     onclick(MouseEvent)
   | |
...  |
   | |     ontransitionstart(TransitionEvent)
   | | }
   | |_^ required by this bound in `yew::html::onclick::Wrapper::__macro_new`
   = note: this error originates in the macro `impl_action` which comes from the expansion of the macro `impl_short` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0277]: the trait bound `Option<{integer}>: IntoEventCallback<FocusEvent>` is not satisfied
  --> tests/html_macro/element-fail.rs:53:29
   |
53 |     html! { <input onfocus={Some(5)} /> };
   |     ------------------------^^^^^^^------
   |     |                       |
   |     |                       the trait `IntoEventCallback<FocusEvent>` is not implemented for `Option<{integer}>`
   |     required by a bound introduced by this call
   |
   = help: the following other types implement trait `IntoEventCallback<EVENT>`:
             Option<T>
             Option<yew::Callback<EVENT>>
note: required by a bound in `yew::html::onfocus::Wrapper::__macro_new`
  --> $WORKSPACE/packages/yew/src/html/listener/events.rs
   |
   | / impl_short! {
   | |     onauxclick(MouseEvent)
   | |     onclick(MouseEvent)
   | |
...  |
   | |     ontransitionstart(TransitionEvent)
   | | }
   | |_^ required by this bound in `yew::html::onfocus::Wrapper::__macro_new`
   = note: this error originates in the macro `impl_action` which comes from the expansion of the macro `impl_short` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0277]: the trait bound `(): IntoPropValue<yew::NodeRef>` is not satisfied
  --> tests/html_macro/element-fail.rs:56:25
   |
56 |     html! { <input ref={()} /> };
   |                         ^^ the trait `IntoPropValue<yew::NodeRef>` is not implemented for `()`
   |
   = help: the following other types implement trait `IntoPropValue<T>`:
             <&'static [(K, V)] as IntoPropValue<implicit_clone::unsync::IMap<K, V>>>
             <&'static [T] as IntoPropValue<implicit_clone::unsync::IArray<T>>>
             <&'static str as IntoPropValue<Classes>>
             <&'static str as IntoPropValue<Option<String>>>
             <&'static str as IntoPropValue<Option<implicit_clone::unsync::IString>>>
             <&'static str as IntoPropValue<String>>
             <&'static str as IntoPropValue<implicit_clone::unsync::IString>>
             <&T as IntoPropValue<Option<T>>>
           and $N others
   = note: this error originates in the macro `html` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0277]: the trait bound `Option<yew::NodeRef>: IntoPropValue<yew::NodeRef>` is not satisfied
  --> tests/html_macro/element-fail.rs:57:25
   |
57 |     html! { <input ref={Some(NodeRef::default())} /> };
   |                         ^^^^ the trait `IntoPropValue<yew::NodeRef>` is not implemented for `Option<yew::NodeRef>`
   |
   = help: the following other types implement trait `IntoPropValue<T>`:
             <Option<&'static str> as IntoPropValue<Option<String>>>
             <Option<&'static str> as IntoPropValue<Option<implicit_clone::unsync::IString>>>
             <Option<Cow<'static, str>> as IntoPropValue<Option<implicit_clone::unsync::IString>>>
             <Option<F> as IntoPropValue<Option<yew::Callback<I, O>>>>
             <Option<Rc<str>> as IntoPropValue<Option<implicit_clone::unsync::IString>>>
             <Option<String> as IntoPropValue<Option<implicit_clone::unsync::IString>>>
             <Option<VChild<T>> as IntoPropValue<Option<ChildrenRenderer<C>>>>
   = note: this error originates in the macro `html` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0277]: expected a `Fn<(MouseEvent,)>` closure, found `yew::Callback<String>`
  --> tests/html_macro/element-fail.rs:58:29
   |
58 |     html! { <input onclick={Callback::from(|a: String| ())} /> };
   |     ------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------
   |     |                       |
   |     |                       expected an `Fn<(MouseEvent,)>` closure, found `yew::Callback<String>`
   |     required by a bound introduced by this call
   |
   = help: the trait `Fn<(MouseEvent,)>` is not implemented for `yew::Callback<String>`
   = help: the following other types implement trait `IntoEventCallback<EVENT>`:
             &yew::Callback<EVENT>
             yew::Callback<EVENT>
   = note: required because of the requirements on the impl of `IntoEventCallback<MouseEvent>` for `yew::Callback<String>`
note: required by a bound in `yew::html::onclick::Wrapper::__macro_new`
  --> $WORKSPACE/packages/yew/src/html/listener/events.rs
   |
   | / impl_short! {
   | |     onauxclick(MouseEvent)
   | |     onclick(MouseEvent)
   | |
...  |
   | |     ontransitionstart(TransitionEvent)
   | | }
   | |_^ required by this bound in `yew::html::onclick::Wrapper::__macro_new`
   = note: this error originates in the macro `impl_action` which comes from the expansion of the macro `impl_short` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0277]: the trait bound `NotToString: IntoPropValue<Option<implicit_clone::unsync::IString>>` is not satisfied
  --> tests/html_macro/element-fail.rs:60:28
   |
60 |     html! { <input string={NotToString} /> };
   |                            ^^^^^^^^^^^ the trait `IntoPropValue<Option<implicit_clone::unsync::IString>>` is not implemented for `NotToString`
   |
   = help: the following other types implement trait `IntoPropValue<T>`:
             <&'static [(K, V)] as IntoPropValue<implicit_clone::unsync::IMap<K, V>>>
             <&'static [T] as IntoPropValue<implicit_clone::unsync::IArray<T>>>
             <&'static str as IntoPropValue<Classes>>
             <&'static str as IntoPropValue<Option<String>>>
             <&'static str as IntoPropValue<Option<implicit_clone::unsync::IString>>>
             <&'static str as IntoPropValue<String>>
             <&'static str as IntoPropValue<implicit_clone::unsync::IString>>
             <&T as IntoPropValue<Option<T>>>
           and $N others

error[E0277]: the trait bound `(): IntoPropValue<yew::NodeRef>` is not satisfied
  --> tests/html_macro/element-fail.rs:62:25
   |
62 |     html! { <input ref={()} /> };
   |                         ^^ the trait `IntoPropValue<yew::NodeRef>` is not implemented for `()`
   |
   = help: the following other types implement trait `IntoPropValue<T>`:
             <&'static [(K, V)] as IntoPropValue<implicit_clone::unsync::IMap<K, V>>>
             <&'static [T] as IntoPropValue<implicit_clone::unsync::IArray<T>>>
             <&'static str as IntoPropValue<Classes>>
             <&'static str as IntoPropValue<Option<String>>>
             <&'static str as IntoPropValue<Option<implicit_clone::unsync::IString>>>
             <&'static str as IntoPropValue<String>>
             <&'static str as IntoPropValue<implicit_clone::unsync::IString>>
             <&T as IntoPropValue<Option<T>>>
           and $N others
   = note: this error originates in the macro `html` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0277]: the trait bound `Cow<'static, str>: From<{integer}>` is not satisfied
  --> tests/html_macro/element-fail.rs:77:15
   |
77 |     html! { <@{55}></@> };
   |               ^^^^ the trait `From<{integer}>` is not implemented for `Cow<'static, str>`
   |
   = help: the following other types implement trait `From<T>`:
             <Cow<'a, CStr> as From<&'a CStr>>
             <Cow<'a, CStr> as From<&'a CString>>
             <Cow<'a, CStr> as From<CString>>
             <Cow<'a, OsStr> as From<&'a OsStr>>
             <Cow<'a, OsStr> as From<&'a OsString>>
             <Cow<'a, OsStr> as From<OsString>>
             <Cow<'a, Path> as From<&'a Path>>
             <Cow<'a, Path> as From<&'a PathBuf>>
           and $N others
   = note: required because of the requirements on the impl of `Into<Cow<'static, str>>` for `{integer}`
