[INFO] fetching crate makepad-shader-compiler 1.0.0...
[INFO] checking makepad-shader-compiler-1.0.0 against a5689b034ad287112f709693384a37f1377eb9cc for pr-129249-3
[INFO] extracting crate makepad-shader-compiler 1.0.0 into /workspace/builds/worker-2-tc2/source
[INFO] started tweaking crates.io crate makepad-shader-compiler 1.0.0
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate makepad-shader-compiler 1.0.0
[INFO] tweaked toml for crates.io crate makepad-shader-compiler 1.0.0 written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate makepad-shader-compiler 1.0.0 on toolchain a5689b034ad287112f709693384a37f1377eb9cc
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate makepad-shader-compiler 1.0.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]   --> Cargo.toml:18:12
[INFO] [stderr]    |
[INFO] [stderr] 18 | homepage = "https://github.com/makepad/makepad/"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 22 | repository = "https://github.com/makepad/makepad/"
[INFO] [stderr]    |              -------------------------------------
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `makepad-shader-compiler` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 13735ef999e14a62ca4f9a1dc51b3c0e1d2222cc25cfba18b04f35d598eac805
[INFO] running `Command { std: "docker" "start" "13735ef999e14a62ca4f9a1dc51b3c0e1d2222cc25cfba18b04f35d598eac805", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "13735ef999e14a62ca4f9a1dc51b3c0e1d2222cc25cfba18b04f35d598eac805", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "13735ef999e14a62ca4f9a1dc51b3c0e1d2222cc25cfba18b04f35d598eac805" "/opt/rustwide/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "13735ef999e14a62ca4f9a1dc51b3c0e1d2222cc25cfba18b04f35d598eac805", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "13735ef999e14a62ca4f9a1dc51b3c0e1d2222cc25cfba18b04f35d598eac805" "/opt/rustwide/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]   --> Cargo.toml:18:12
[INFO] [stderr]    |
[INFO] [stderr] 18 | homepage = "https://github.com/makepad/makepad/"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 22 | repository = "https://github.com/makepad/makepad/"
[INFO] [stderr]    |              -------------------------------------
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `makepad-shader-compiler` (manifest) generated 1 warning
[INFO] [stderr]    Compiling makepad-micro-proc-macro v1.0.0
[INFO] [stderr]    Compiling makepad-derive-live v1.0.0
[INFO] [stderr]    Compiling makepad-live-id-macros v1.0.0
[INFO] [stderr]    Compiling makepad-micro-serde-derive v1.0.0
[INFO] [stderr]     Checking makepad-live-id v1.0.0
[INFO] [stderr]     Checking makepad-micro-serde v1.0.0
[INFO] [stderr]     Checking makepad-math v1.0.0
[INFO] [stderr]     Checking makepad-live-tokenizer v1.0.0
[INFO] [stderr]     Checking makepad-live-compiler v1.0.0
[INFO] [stderr]     Checking makepad-shader-compiler v1.0.0 (/opt/rustwide/workdir)
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/shader_parser.rs:561:75
[INFO] [stdout]     |
[INFO] [stdout] 561 |                         return Err(span.error(self, live_error_origin!(), format!("Cannot find type `{}`", ident_path).into()));
[INFO] [stdout]     |                                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/shader_parser.rs:565:65
[INFO] [stdout]     |
[INFO] [stdout] 565 |             token => Err(span.error(self, live_error_origin!(), format!("unexpected token `{}`", token).into())),
[INFO] [stdout]     |                                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/shader_parser.rs:1089:87
[INFO] [stdout]      |
[INFO] [stdout] 1089 | ...                   return Err(span.error(self, live_error_origin!(), format!("Use of Self not allowed here").into()));
[INFO] [stdout]      |                                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/shader_parser.rs:1102:91
[INFO] [stdout]      |
[INFO] [stdout] 1102 | ...                   return Err(span.error(self, live_error_origin!(), format!("Struct not found `{}`", ident_path).into()))
[INFO] [stdout]      |                                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/shader_parser.rs:1109:91
[INFO] [stdout]      |
[INFO] [stdout] 1109 | ...                   return Err(span.error(self, live_error_origin!(), format!("Not a struct `{}`", ident_path).into()))
[INFO] [stdout]      |                                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/shader_parser.rs:1114:83
[INFO] [stdout]      |
[INFO] [stdout] 1114 | ...                   return Err(span.error(self, live_error_origin!(), format!("Struct not found `{}`", ident_path).into()))
[INFO] [stdout]      |                                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/shader_parser.rs:1128:91
[INFO] [stdout]      |
[INFO] [stdout] 1128 | ...                   return Err(span.error(self, live_error_origin!(), format!("Unexpected Eof").into()))
[INFO] [stdout]      |                                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/shader_parser.rs:1170:84
[INFO] [stdout]      |
[INFO] [stdout] 1170 | ...                   Err(span.error(self, live_error_origin!(), format!("Function not found `{}`", ident_path).into()))
[INFO] [stdout]      |                                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/shader_parser.rs:1176:84
[INFO] [stdout]      |
[INFO] [stdout] 1176 | ...                   Err(span.error(self, live_error_origin!(), format!("Not a function `{}`", ident_path).into()))
[INFO] [stdout]      |                                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/shader_parser.rs:1237:76
[INFO] [stdout]      |
[INFO] [stdout] 1237 | ...                   Err(span.error(self, live_error_origin!(), format!("Call not found `{}`", ident_path).into()))
[INFO] [stdout]      |                                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/shader_parser.rs:1268:87
[INFO] [stdout]      |
[INFO] [stdout] 1268 | ...                   return Err(span.error(self, live_error_origin!(), format!("Identifier not found `{}`", ident_path).into()))
[INFO] [stdout]      |                                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/shader_parser.rs:1389:65
[INFO] [stdout]      |
[INFO] [stdout] 1389 |             token => Err(span.error(self, live_error_origin!(), format!("unexpected token `{}`", token).into())),
[INFO] [stdout]      |                                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `makepad_live_compiler::LiveError`
[INFO] [stdout]    --> src/analyse.rs:556:24
[INFO] [stdout]     |
[INFO] [stdout] 556 |               return Err(LiveError {
[INFO] [stdout]     |  ________________________^
[INFO] [stdout] 557 | |                 origin: live_error_origin!(),
[INFO] [stdout] 558 | |                 span: self.const_def.span.into(),
[INFO] [stdout] 559 | |                 message: String::from("Declared type and inferred type not the same"),
[INFO] [stdout] 560 | |             } .into());
[INFO] [stdout]     | |_____________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 560 -             } .into());
[INFO] [stdout] 560 +             });
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 556 ~             return Err(<makepad_live_compiler::LiveError as Into<_>>::into(LiveError {
[INFO] [stdout] 557 |                 origin: live_error_origin!(),
[INFO] [stdout] 558 |                 span: self.const_def.span.into(),
[INFO] [stdout] 559 |                 message: String::from("Declared type and inferred type not the same"),
[INFO] [stdout] 560 ~             }));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `makepad_live_compiler::LiveError`
[INFO] [stdout]    --> src/analyse.rs:847:24
[INFO] [stdout]     |
[INFO] [stdout] 847 |               return Err(LiveError {
[INFO] [stdout]     |  ________________________^
[INFO] [stdout] 848 | |                 origin: live_error_origin!(),
[INFO] [stdout] 849 | |                 span:span.into(),
[INFO] [stdout] 850 | |                 message: String::from("break outside loop"),
[INFO] [stdout] 851 | |             } .into());
[INFO] [stdout]     | |_____________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 851 -             } .into());
[INFO] [stdout] 851 +             });
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 847 ~             return Err(<makepad_live_compiler::LiveError as Into<_>>::into(LiveError {
[INFO] [stdout] 848 |                 origin: live_error_origin!(),
[INFO] [stdout] 849 |                 span:span.into(),
[INFO] [stdout] 850 |                 message: String::from("break outside loop"),
[INFO] [stdout] 851 ~             }));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `makepad_live_compiler::LiveError`
[INFO] [stdout]    --> src/analyse.rs:858:24
[INFO] [stdout]     |
[INFO] [stdout] 858 |               return Err(LiveError {
[INFO] [stdout]     |  ________________________^
[INFO] [stdout] 859 | |                 origin: live_error_origin!(),
[INFO] [stdout] 860 | |                 span:span.into(),
[INFO] [stdout] 861 | |                 message: String::from("continue outside loop"),
[INFO] [stdout] 862 | |             } .into());
[INFO] [stdout]     | |_____________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 862 -             } .into());
[INFO] [stdout] 862 +             });
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 858 ~             return Err(<makepad_live_compiler::LiveError as Into<_>>::into(LiveError {
[INFO] [stdout] 859 |                 origin: live_error_origin!(),
[INFO] [stdout] 860 |                 span:span.into(),
[INFO] [stdout] 861 |                 message: String::from("continue outside loop"),
[INFO] [stdout] 862 ~             }));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `makepad_live_compiler::LiveError`
[INFO] [stdout]    --> src/analyse.rs:906:28
[INFO] [stdout]     |
[INFO] [stdout] 906 |                   return Err(LiveError {
[INFO] [stdout]     |  ____________________________^
[INFO] [stdout] 907 | |                     origin: live_error_origin!(),
[INFO] [stdout] 908 | |                     span:span.into(),
[INFO] [stdout] 909 | |                     message: String::from("step must not be zero"),
[INFO] [stdout] 910 | |                 } .into());
[INFO] [stdout]     | |_________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 910 -                 } .into());
[INFO] [stdout] 910 +                 });
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 906 ~                 return Err(<makepad_live_compiler::LiveError as Into<_>>::into(LiveError {
[INFO] [stdout] 907 |                     origin: live_error_origin!(),
[INFO] [stdout] 908 |                     span:span.into(),
[INFO] [stdout] 909 |                     message: String::from("step must not be zero"),
[INFO] [stdout] 910 ~                 }));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `makepad_live_compiler::LiveError`
[INFO] [stdout]    --> src/analyse.rs:913:28
[INFO] [stdout]     |
[INFO] [stdout] 913 |                   return Err(LiveError {
[INFO] [stdout]     |  ____________________________^
[INFO] [stdout] 914 | |                     origin: live_error_origin!(),
[INFO] [stdout] 915 | |                     span:span.into(),
[INFO] [stdout] 916 | |                     message: String::from("step must not be positive"),
[INFO] [stdout] 917 | |                 } .into());
[INFO] [stdout]     | |_________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 917 -                 } .into());
[INFO] [stdout] 917 +                 });
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 913 ~                 return Err(<makepad_live_compiler::LiveError as Into<_>>::into(LiveError {
[INFO] [stdout] 914 |                     origin: live_error_origin!(),
[INFO] [stdout] 915 |                     span:span.into(),
[INFO] [stdout] 916 |                     message: String::from("step must not be positive"),
[INFO] [stdout] 917 ~                 }));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `makepad_live_compiler::LiveError`
[INFO] [stdout]    --> src/analyse.rs:920:28
[INFO] [stdout]     |
[INFO] [stdout] 920 |                   return Err(LiveError {
[INFO] [stdout]     |  ____________________________^
[INFO] [stdout] 921 | |                     origin: live_error_origin!(),
[INFO] [stdout] 922 | |                     span:span.into(),
[INFO] [stdout] 923 | |                     message: String::from("step must not be negative"),
[INFO] [stdout] 924 | |                 } .into());
[INFO] [stdout]     | |_________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 924 -                 } .into());
[INFO] [stdout] 924 +                 });
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 920 ~                 return Err(<makepad_live_compiler::LiveError as Into<_>>::into(LiveError {
[INFO] [stdout] 921 |                     origin: live_error_origin!(),
[INFO] [stdout] 922 |                     span:span.into(),
[INFO] [stdout] 923 |                     message: String::from("step must not be negative"),
[INFO] [stdout] 924 ~                 }));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `makepad_live_compiler::LiveError`
[INFO] [stdout]    --> src/analyse.rs:985:32
[INFO] [stdout]     |
[INFO] [stdout] 985 |                       return Err(LiveError {
[INFO] [stdout]     |  ________________________________^
[INFO] [stdout] 986 | |                         origin: live_error_origin!(),
[INFO] [stdout] 987 | |                         span:span.into(),
[INFO] [stdout] 988 | |                         message: format!("Enum name mismatched, expected {} got {}", shader_enum.enum_name, match_item.enum_name.0),
[INFO] [stdout] 989 | |                     } .into())
[INFO] [stdout]     | |_____________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 989 -                     } .into())
[INFO] [stdout] 989 +                     })
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 985 ~                     return Err(<makepad_live_compiler::LiveError as Into<_>>::into(LiveError {
[INFO] [stdout] 986 |                         origin: live_error_origin!(),
[INFO] [stdout] 987 |                         span:span.into(),
[INFO] [stdout] 988 |                         message: format!("Enum name mismatched, expected {} got {}", shader_enum.enum_name, match_item.enum_name.0),
[INFO] [stdout] 989 ~                     }))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `makepad_live_compiler::LiveError`
[INFO] [stdout]     --> src/analyse.rs:996:32
[INFO] [stdout]      |
[INFO] [stdout]  996 |                       return Err(LiveError {
[INFO] [stdout]      |  ________________________________^
[INFO] [stdout]  997 | |                         origin: live_error_origin!(),
[INFO] [stdout]  998 | |                         span:span.into(),
[INFO] [stdout]  999 | |                         message: format!("Variant not found on enum {}::{}", match_item.enum_name.0, match_item.enum_variant.0),
[INFO] [stdout] 1000 | |                     } .into())
[INFO] [stdout]      | |_____________________________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 1000 -                     } .into())
[INFO] [stdout] 1000 +                     })
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout]  996 ~                     return Err(<makepad_live_compiler::LiveError as Into<_>>::into(LiveError {
[INFO] [stdout]  997 |                         origin: live_error_origin!(),
[INFO] [stdout]  998 |                         span:span.into(),
[INFO] [stdout]  999 |                         message: format!("Variant not found on enum {}::{}", match_item.enum_name.0, match_item.enum_variant.0),
[INFO] [stdout] 1000 ~                     }))
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `makepad_live_compiler::LiveError`
[INFO] [stdout]     --> src/analyse.rs:1011:17
[INFO] [stdout]      |
[INFO] [stdout] 1011 |               Err(LiveError {
[INFO] [stdout]      |  _________________^
[INFO] [stdout] 1012 | |                 origin: live_error_origin!(),
[INFO] [stdout] 1013 | |                 span:span.into(),
[INFO] [stdout] 1014 | |                 message: String::from("Can only match on enum types"),
[INFO] [stdout] 1015 | |             } .into())
[INFO] [stdout]      | |_____________________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 1015 -             } .into())
[INFO] [stdout] 1015 +             })
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1011 ~             Err(<makepad_live_compiler::LiveError as Into<_>>::into(LiveError {
[INFO] [stdout] 1012 |                 origin: live_error_origin!(),
[INFO] [stdout] 1013 |                 span:span.into(),
[INFO] [stdout] 1014 |                 message: String::from("Can only match on enum types"),
[INFO] [stdout] 1015 ~             }))
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `makepad_live_compiler::LiveError`
[INFO] [stdout]     --> src/analyse.rs:1100:24
[INFO] [stdout]      |
[INFO] [stdout] 1100 |               return Err(LiveError {
[INFO] [stdout]      |  ________________________^
[INFO] [stdout] 1101 | |                 origin: live_error_origin!(),
[INFO] [stdout] 1102 | |                 span:span.into(),
[INFO] [stdout] 1103 | |                 message: String::from("missing return expression"),
[INFO] [stdout] 1104 | |             } .into());
[INFO] [stdout]      | |_____________________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 1104 -             } .into());
[INFO] [stdout] 1104 +             });
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1100 ~             return Err(<makepad_live_compiler::LiveError as Into<_>>::into(LiveError {
[INFO] [stdout] 1101 |                 origin: live_error_origin!(),
[INFO] [stdout] 1102 |                 span:span.into(),
[INFO] [stdout] 1103 |                 message: String::from("missing return expression"),
[INFO] [stdout] 1104 ~             }));
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/ty_check.rs:358:22
[INFO] [stdout]     |
[INFO] [stdout] 358 |               message: format!(
[INFO] [stdout]     |  ______________________^
[INFO] [stdout] 359 | |                 "can't apply binary operator `{}` to operands of type `{}` and `{}",
[INFO] [stdout] 360 | |                 op,
[INFO] [stdout] 361 | |                 left_ty,
[INFO] [stdout] ...   |
[INFO] [stdout] 364 | |                 .into(),
[INFO] [stdout]     | |_______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/ty_check.rs:387:22
[INFO] [stdout]     |
[INFO] [stdout] 387 |               message: format!(
[INFO] [stdout]     |  ______________________^
[INFO] [stdout] 388 | |                 "can't apply unary operator `{}` to operand of type `{}`",
[INFO] [stdout] 389 | |                 op,
[INFO] [stdout] 390 | |                 ty
[INFO] [stdout] 391 | |             )
[INFO] [stdout] 392 | |                 .into(),
[INFO] [stdout]     | |_______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/ty_check.rs:636:26
[INFO] [stdout]     |
[INFO] [stdout] 636 |                   message: format!(
[INFO] [stdout]     |  __________________________^
[INFO] [stdout] 637 | |                     "not enough arguments expected {}, got {}",
[INFO] [stdout] 638 | |                     params.len(),
[INFO] [stdout] 639 | |                     arg_exprs.len(),
[INFO] [stdout] 640 | |                 )
[INFO] [stdout] 641 | |                     .into(),
[INFO] [stdout]     | |___________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/ty_check.rs:648:26
[INFO] [stdout]     |
[INFO] [stdout] 648 |                   message: format!(
[INFO] [stdout]     |  __________________________^
[INFO] [stdout] 649 | |                     "too many arguments for call expected {}, got {}",
[INFO] [stdout] 650 | |                     params.len(),
[INFO] [stdout] 651 | |                     arg_exprs.len()
[INFO] [stdout] 652 | |                 )
[INFO] [stdout] 653 | |                     .into(),
[INFO] [stdout]     | |___________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/ty_check.rs:680:30
[INFO] [stdout]     |
[INFO] [stdout] 680 |                       message: format!(
[INFO] [stdout]     |  ______________________________^
[INFO] [stdout] 681 | |                         "wrong type for argument {} expected `{}`, got `{}`",
[INFO] [stdout] 682 | |                         param_index + 1,
[INFO] [stdout] 683 | |                         param_ty,
[INFO] [stdout] 684 | |                         arg_ty,
[INFO] [stdout] 685 | |                     ).into()
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/ty_check.rs:767:26
[INFO] [stdout]     |
[INFO] [stdout] 767 |                 message: format!("can't access field on value of type `{}`", ty).into(),
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/ty_check.rs:791:30
[INFO] [stdout]     |
[INFO] [stdout] 791 |                     message: format!("can't index into value of type `{}`", ty).into(),
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/ty_check.rs:843:34
[INFO] [stdout]     |
[INFO] [stdout] 843 |                           message: format!(
[INFO] [stdout]     |  __________________________________^
[INFO] [stdout] 844 | |                             "not enough components for call to constructor `{}`: expected {}, got {}",
[INFO] [stdout] 845 | |                             ty_lit,
[INFO] [stdout] 846 | |                             actual_slots,
[INFO] [stdout] ...   |
[INFO] [stdout] 849 | |                             .into()
[INFO] [stdout]     | |___________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/ty_check.rs:856:34
[INFO] [stdout]     |
[INFO] [stdout] 856 |                           message: format!(
[INFO] [stdout]     |  __________________________________^
[INFO] [stdout] 857 | |                             "too many components for call to constructor `{}`: expected {}, got {}",
[INFO] [stdout] 858 | |                             ty_lit,
[INFO] [stdout] 859 | |                             expected_slots,
[INFO] [stdout] ...   |
[INFO] [stdout] 862 | |                             .into(),
[INFO] [stdout]     | |___________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/ty_check.rs:870:26
[INFO] [stdout]     |
[INFO] [stdout] 870 |                   message: format!(
[INFO] [stdout]     |  __________________________^
[INFO] [stdout] 871 | |                     "can't construct value of type `{}` with arguments of types `{}`",
[INFO] [stdout] 872 | |                     ty,
[INFO] [stdout] 873 | |                     CommaSep(&arg_tys)
[INFO] [stdout] 874 | |                 )
[INFO] [stdout] 875 | |                     .into(),
[INFO] [stdout]     | |___________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/analyse.rs:43:19
[INFO] [stdout]    |
[INFO] [stdout] 43 |     fn ty_checker(&self) -> TyChecker {
[INFO] [stdout]    |                   ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                   |
[INFO] [stdout]    |                   the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 43 |     fn ty_checker(&self) -> TyChecker<'_> {
[INFO] [stdout]    |                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/analyse.rs:122:19
[INFO] [stdout]     |
[INFO] [stdout] 122 |     fn ty_checker(&self) -> TyChecker {
[INFO] [stdout]     |                   ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 122 |     fn ty_checker(&self) -> TyChecker<'_> {
[INFO] [stdout]     |                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/analyse.rs:534:19
[INFO] [stdout]     |
[INFO] [stdout] 534 |     fn ty_checker(&self) -> TyChecker {
[INFO] [stdout]     |                   ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 534 |     fn ty_checker(&self) -> TyChecker<'_> {
[INFO] [stdout]     |                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/analyse.rs:578:19
[INFO] [stdout]     |
[INFO] [stdout] 578 |     fn ty_checker(&self) -> TyChecker {
[INFO] [stdout]     |                   ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 578 |     fn ty_checker(&self) -> TyChecker<'_> {
[INFO] [stdout]     |                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/analyse.rs:592:23
[INFO] [stdout]     |
[INFO] [stdout] 592 |     fn const_gatherer(&self) -> ConstGatherer {
[INFO] [stdout]     |                       ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 592 |     fn const_gatherer(&self) -> ConstGatherer<'_> {
[INFO] [stdout]     |                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/analyse.rs:599:21
[INFO] [stdout]     |
[INFO] [stdout] 599 |     fn dep_analyser(&self) -> DepAnalyser {
[INFO] [stdout]     |                     ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 599 |     fn dep_analyser(&self) -> DepAnalyser<'_> {
[INFO] [stdout]     |                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/ty_check.rs:27:20
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn lhs_checker(&self) -> LhsChecker {
[INFO] [stdout]    |                    ^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn lhs_checker(&self) -> LhsChecker<'_> {
[INFO] [stdout]    |                                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/swizzle.rs:64:17
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub fn iter(&self) -> Iter {
[INFO] [stdout]    |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub fn iter(&self) -> Iter<'_> {
[INFO] [stdout]    |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `makepad-shader-compiler` (lib test) due to 32 previous errors; 8 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/shader_parser.rs:561:75
[INFO] [stdout]     |
[INFO] [stdout] 561 |                         return Err(span.error(self, live_error_origin!(), format!("Cannot find type `{}`", ident_path).into()));
[INFO] [stdout]     |                                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/shader_parser.rs:565:65
[INFO] [stdout]     |
[INFO] [stdout] 565 |             token => Err(span.error(self, live_error_origin!(), format!("unexpected token `{}`", token).into())),
[INFO] [stdout]     |                                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/shader_parser.rs:1089:87
[INFO] [stdout]      |
[INFO] [stdout] 1089 | ...                   return Err(span.error(self, live_error_origin!(), format!("Use of Self not allowed here").into()));
[INFO] [stdout]      |                                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/shader_parser.rs:1102:91
[INFO] [stdout]      |
[INFO] [stdout] 1102 | ...                   return Err(span.error(self, live_error_origin!(), format!("Struct not found `{}`", ident_path).into()))
[INFO] [stdout]      |                                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/shader_parser.rs:1109:91
[INFO] [stdout]      |
[INFO] [stdout] 1109 | ...                   return Err(span.error(self, live_error_origin!(), format!("Not a struct `{}`", ident_path).into()))
[INFO] [stdout]      |                                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/shader_parser.rs:1114:83
[INFO] [stdout]      |
[INFO] [stdout] 1114 | ...                   return Err(span.error(self, live_error_origin!(), format!("Struct not found `{}`", ident_path).into()))
[INFO] [stdout]      |                                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/shader_parser.rs:1128:91
[INFO] [stdout]      |
[INFO] [stdout] 1128 | ...                   return Err(span.error(self, live_error_origin!(), format!("Unexpected Eof").into()))
[INFO] [stdout]      |                                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/shader_parser.rs:1170:84
[INFO] [stdout]      |
[INFO] [stdout] 1170 | ...                   Err(span.error(self, live_error_origin!(), format!("Function not found `{}`", ident_path).into()))
[INFO] [stdout]      |                                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/shader_parser.rs:1176:84
[INFO] [stdout]      |
[INFO] [stdout] 1176 | ...                   Err(span.error(self, live_error_origin!(), format!("Not a function `{}`", ident_path).into()))
[INFO] [stdout]      |                                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/shader_parser.rs:1237:76
[INFO] [stdout]      |
[INFO] [stdout] 1237 | ...                   Err(span.error(self, live_error_origin!(), format!("Call not found `{}`", ident_path).into()))
[INFO] [stdout]      |                                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/shader_parser.rs:1268:87
[INFO] [stdout]      |
[INFO] [stdout] 1268 | ...                   return Err(span.error(self, live_error_origin!(), format!("Identifier not found `{}`", ident_path).into()))
[INFO] [stdout]      |                                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/shader_parser.rs:1389:65
[INFO] [stdout]      |
[INFO] [stdout] 1389 |             token => Err(span.error(self, live_error_origin!(), format!("unexpected token `{}`", token).into())),
[INFO] [stdout]      |                                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `makepad_live_compiler::LiveError`
[INFO] [stdout]    --> src/analyse.rs:556:24
[INFO] [stdout]     |
[INFO] [stdout] 556 |               return Err(LiveError {
[INFO] [stdout]     |  ________________________^
[INFO] [stdout] 557 | |                 origin: live_error_origin!(),
[INFO] [stdout] 558 | |                 span: self.const_def.span.into(),
[INFO] [stdout] 559 | |                 message: String::from("Declared type and inferred type not the same"),
[INFO] [stdout] 560 | |             } .into());
[INFO] [stdout]     | |_____________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 560 -             } .into());
[INFO] [stdout] 560 +             });
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 556 ~             return Err(<makepad_live_compiler::LiveError as Into<_>>::into(LiveError {
[INFO] [stdout] 557 |                 origin: live_error_origin!(),
[INFO] [stdout] 558 |                 span: self.const_def.span.into(),
[INFO] [stdout] 559 |                 message: String::from("Declared type and inferred type not the same"),
[INFO] [stdout] 560 ~             }));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `makepad_live_compiler::LiveError`
[INFO] [stdout]    --> src/analyse.rs:847:24
[INFO] [stdout]     |
[INFO] [stdout] 847 |               return Err(LiveError {
[INFO] [stdout]     |  ________________________^
[INFO] [stdout] 848 | |                 origin: live_error_origin!(),
[INFO] [stdout] 849 | |                 span:span.into(),
[INFO] [stdout] 850 | |                 message: String::from("break outside loop"),
[INFO] [stdout] 851 | |             } .into());
[INFO] [stdout]     | |_____________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 851 -             } .into());
[INFO] [stdout] 851 +             });
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 847 ~             return Err(<makepad_live_compiler::LiveError as Into<_>>::into(LiveError {
[INFO] [stdout] 848 |                 origin: live_error_origin!(),
[INFO] [stdout] 849 |                 span:span.into(),
[INFO] [stdout] 850 |                 message: String::from("break outside loop"),
[INFO] [stdout] 851 ~             }));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `makepad_live_compiler::LiveError`
[INFO] [stdout]    --> src/analyse.rs:858:24
[INFO] [stdout]     |
[INFO] [stdout] 858 |               return Err(LiveError {
[INFO] [stdout]     |  ________________________^
[INFO] [stdout] 859 | |                 origin: live_error_origin!(),
[INFO] [stdout] 860 | |                 span:span.into(),
[INFO] [stdout] 861 | |                 message: String::from("continue outside loop"),
[INFO] [stdout] 862 | |             } .into());
[INFO] [stdout]     | |_____________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 862 -             } .into());
[INFO] [stdout] 862 +             });
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 858 ~             return Err(<makepad_live_compiler::LiveError as Into<_>>::into(LiveError {
[INFO] [stdout] 859 |                 origin: live_error_origin!(),
[INFO] [stdout] 860 |                 span:span.into(),
[INFO] [stdout] 861 |                 message: String::from("continue outside loop"),
[INFO] [stdout] 862 ~             }));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `makepad_live_compiler::LiveError`
[INFO] [stdout]    --> src/analyse.rs:906:28
[INFO] [stdout]     |
[INFO] [stdout] 906 |                   return Err(LiveError {
[INFO] [stdout]     |  ____________________________^
[INFO] [stdout] 907 | |                     origin: live_error_origin!(),
[INFO] [stdout] 908 | |                     span:span.into(),
[INFO] [stdout] 909 | |                     message: String::from("step must not be zero"),
[INFO] [stdout] 910 | |                 } .into());
[INFO] [stdout]     | |_________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 910 -                 } .into());
[INFO] [stdout] 910 +                 });
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 906 ~                 return Err(<makepad_live_compiler::LiveError as Into<_>>::into(LiveError {
[INFO] [stdout] 907 |                     origin: live_error_origin!(),
[INFO] [stdout] 908 |                     span:span.into(),
[INFO] [stdout] 909 |                     message: String::from("step must not be zero"),
[INFO] [stdout] 910 ~                 }));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `makepad_live_compiler::LiveError`
[INFO] [stdout]    --> src/analyse.rs:913:28
[INFO] [stdout]     |
[INFO] [stdout] 913 |                   return Err(LiveError {
[INFO] [stdout]     |  ____________________________^
[INFO] [stdout] 914 | |                     origin: live_error_origin!(),
[INFO] [stdout] 915 | |                     span:span.into(),
[INFO] [stdout] 916 | |                     message: String::from("step must not be positive"),
[INFO] [stdout] 917 | |                 } .into());
[INFO] [stdout]     | |_________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 917 -                 } .into());
[INFO] [stdout] 917 +                 });
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 913 ~                 return Err(<makepad_live_compiler::LiveError as Into<_>>::into(LiveError {
[INFO] [stdout] 914 |                     origin: live_error_origin!(),
[INFO] [stdout] 915 |                     span:span.into(),
[INFO] [stdout] 916 |                     message: String::from("step must not be positive"),
[INFO] [stdout] 917 ~                 }));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `makepad_live_compiler::LiveError`
[INFO] [stdout]    --> src/analyse.rs:920:28
[INFO] [stdout]     |
[INFO] [stdout] 920 |                   return Err(LiveError {
[INFO] [stdout]     |  ____________________________^
[INFO] [stdout] 921 | |                     origin: live_error_origin!(),
[INFO] [stdout] 922 | |                     span:span.into(),
[INFO] [stdout] 923 | |                     message: String::from("step must not be negative"),
[INFO] [stdout] 924 | |                 } .into());
[INFO] [stdout]     | |_________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 924 -                 } .into());
[INFO] [stdout] 924 +                 });
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 920 ~                 return Err(<makepad_live_compiler::LiveError as Into<_>>::into(LiveError {
[INFO] [stdout] 921 |                     origin: live_error_origin!(),
[INFO] [stdout] 922 |                     span:span.into(),
[INFO] [stdout] 923 |                     message: String::from("step must not be negative"),
[INFO] [stdout] 924 ~                 }));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `makepad_live_compiler::LiveError`
[INFO] [stdout]    --> src/analyse.rs:985:32
[INFO] [stdout]     |
[INFO] [stdout] 985 |                       return Err(LiveError {
[INFO] [stdout]     |  ________________________________^
[INFO] [stdout] 986 | |                         origin: live_error_origin!(),
[INFO] [stdout] 987 | |                         span:span.into(),
[INFO] [stdout] 988 | |                         message: format!("Enum name mismatched, expected {} got {}", shader_enum.enum_name, match_item.enum_name.0),
[INFO] [stdout] 989 | |                     } .into())
[INFO] [stdout]     | |_____________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 989 -                     } .into())
[INFO] [stdout] 989 +                     })
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 985 ~                     return Err(<makepad_live_compiler::LiveError as Into<_>>::into(LiveError {
[INFO] [stdout] 986 |                         origin: live_error_origin!(),
[INFO] [stdout] 987 |                         span:span.into(),
[INFO] [stdout] 988 |                         message: format!("Enum name mismatched, expected {} got {}", shader_enum.enum_name, match_item.enum_name.0),
[INFO] [stdout] 989 ~                     }))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `makepad_live_compiler::LiveError`
[INFO] [stdout]     --> src/analyse.rs:996:32
[INFO] [stdout]      |
[INFO] [stdout]  996 |                       return Err(LiveError {
[INFO] [stdout]      |  ________________________________^
[INFO] [stdout]  997 | |                         origin: live_error_origin!(),
[INFO] [stdout]  998 | |                         span:span.into(),
[INFO] [stdout]  999 | |                         message: format!("Variant not found on enum {}::{}", match_item.enum_name.0, match_item.enum_variant.0),
[INFO] [stdout] 1000 | |                     } .into())
[INFO] [stdout]      | |_____________________________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 1000 -                     } .into())
[INFO] [stdout] 1000 +                     })
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout]  996 ~                     return Err(<makepad_live_compiler::LiveError as Into<_>>::into(LiveError {
[INFO] [stdout]  997 |                         origin: live_error_origin!(),
[INFO] [stdout]  998 |                         span:span.into(),
[INFO] [stdout]  999 |                         message: format!("Variant not found on enum {}::{}", match_item.enum_name.0, match_item.enum_variant.0),
[INFO] [stdout] 1000 ~                     }))
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `makepad_live_compiler::LiveError`
[INFO] [stdout]     --> src/analyse.rs:1011:17
[INFO] [stdout]      |
[INFO] [stdout] 1011 |               Err(LiveError {
[INFO] [stdout]      |  _________________^
[INFO] [stdout] 1012 | |                 origin: live_error_origin!(),
[INFO] [stdout] 1013 | |                 span:span.into(),
[INFO] [stdout] 1014 | |                 message: String::from("Can only match on enum types"),
[INFO] [stdout] 1015 | |             } .into())
[INFO] [stdout]      | |_____________________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 1015 -             } .into())
[INFO] [stdout] 1015 +             })
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1011 ~             Err(<makepad_live_compiler::LiveError as Into<_>>::into(LiveError {
[INFO] [stdout] 1012 |                 origin: live_error_origin!(),
[INFO] [stdout] 1013 |                 span:span.into(),
[INFO] [stdout] 1014 |                 message: String::from("Can only match on enum types"),
[INFO] [stdout] 1015 ~             }))
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `makepad_live_compiler::LiveError`
[INFO] [stdout]     --> src/analyse.rs:1100:24
[INFO] [stdout]      |
[INFO] [stdout] 1100 |               return Err(LiveError {
[INFO] [stdout]      |  ________________________^
[INFO] [stdout] 1101 | |                 origin: live_error_origin!(),
[INFO] [stdout] 1102 | |                 span:span.into(),
[INFO] [stdout] 1103 | |                 message: String::from("missing return expression"),
[INFO] [stdout] 1104 | |             } .into());
[INFO] [stdout]      | |_____________________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 1104 -             } .into());
[INFO] [stdout] 1104 +             });
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1100 ~             return Err(<makepad_live_compiler::LiveError as Into<_>>::into(LiveError {
[INFO] [stdout] 1101 |                 origin: live_error_origin!(),
[INFO] [stdout] 1102 |                 span:span.into(),
[INFO] [stdout] 1103 |                 message: String::from("missing return expression"),
[INFO] [stdout] 1104 ~             }));
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/ty_check.rs:358:22
[INFO] [stdout]     |
[INFO] [stdout] 358 |               message: format!(
[INFO] [stdout]     |  ______________________^
[INFO] [stdout] 359 | |                 "can't apply binary operator `{}` to operands of type `{}` and `{}",
[INFO] [stdout] 360 | |                 op,
[INFO] [stdout] 361 | |                 left_ty,
[INFO] [stdout] ...   |
[INFO] [stdout] 364 | |                 .into(),
[INFO] [stdout]     | |_______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/ty_check.rs:387:22
[INFO] [stdout]     |
[INFO] [stdout] 387 |               message: format!(
[INFO] [stdout]     |  ______________________^
[INFO] [stdout] 388 | |                 "can't apply unary operator `{}` to operand of type `{}`",
[INFO] [stdout] 389 | |                 op,
[INFO] [stdout] 390 | |                 ty
[INFO] [stdout] 391 | |             )
[INFO] [stdout] 392 | |                 .into(),
[INFO] [stdout]     | |_______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/ty_check.rs:636:26
[INFO] [stdout]     |
[INFO] [stdout] 636 |                   message: format!(
[INFO] [stdout]     |  __________________________^
[INFO] [stdout] 637 | |                     "not enough arguments expected {}, got {}",
[INFO] [stdout] 638 | |                     params.len(),
[INFO] [stdout] 639 | |                     arg_exprs.len(),
[INFO] [stdout] 640 | |                 )
[INFO] [stdout] 641 | |                     .into(),
[INFO] [stdout]     | |___________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/ty_check.rs:648:26
[INFO] [stdout]     |
[INFO] [stdout] 648 |                   message: format!(
[INFO] [stdout]     |  __________________________^
[INFO] [stdout] 649 | |                     "too many arguments for call expected {}, got {}",
[INFO] [stdout] 650 | |                     params.len(),
[INFO] [stdout] 651 | |                     arg_exprs.len()
[INFO] [stdout] 652 | |                 )
[INFO] [stdout] 653 | |                     .into(),
[INFO] [stdout]     | |___________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/ty_check.rs:680:30
[INFO] [stdout]     |
[INFO] [stdout] 680 |                       message: format!(
[INFO] [stdout]     |  ______________________________^
[INFO] [stdout] 681 | |                         "wrong type for argument {} expected `{}`, got `{}`",
[INFO] [stdout] 682 | |                         param_index + 1,
[INFO] [stdout] 683 | |                         param_ty,
[INFO] [stdout] 684 | |                         arg_ty,
[INFO] [stdout] 685 | |                     ).into()
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/ty_check.rs:767:26
[INFO] [stdout]     |
[INFO] [stdout] 767 |                 message: format!("can't access field on value of type `{}`", ty).into(),
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/ty_check.rs:791:30
[INFO] [stdout]     |
[INFO] [stdout] 791 |                     message: format!("can't index into value of type `{}`", ty).into(),
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/ty_check.rs:843:34
[INFO] [stdout]     |
[INFO] [stdout] 843 |                           message: format!(
[INFO] [stdout]     |  __________________________________^
[INFO] [stdout] 844 | |                             "not enough components for call to constructor `{}`: expected {}, got {}",
[INFO] [stdout] 845 | |                             ty_lit,
[INFO] [stdout] 846 | |                             actual_slots,
[INFO] [stdout] ...   |
[INFO] [stdout] 849 | |                             .into()
[INFO] [stdout]     | |___________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/ty_check.rs:856:34
[INFO] [stdout]     |
[INFO] [stdout] 856 |                           message: format!(
[INFO] [stdout]     |  __________________________________^
[INFO] [stdout] 857 | |                             "too many components for call to constructor `{}`: expected {}, got {}",
[INFO] [stdout] 858 | |                             ty_lit,
[INFO] [stdout] 859 | |                             expected_slots,
[INFO] [stdout] ...   |
[INFO] [stdout] 862 | |                             .into(),
[INFO] [stdout]     | |___________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/ty_check.rs:870:26
[INFO] [stdout]     |
[INFO] [stdout] 870 |                   message: format!(
[INFO] [stdout]     |  __________________________^
[INFO] [stdout] 871 | |                     "can't construct value of type `{}` with arguments of types `{}`",
[INFO] [stdout] 872 | |                     ty,
[INFO] [stdout] 873 | |                     CommaSep(&arg_tys)
[INFO] [stdout] 874 | |                 )
[INFO] [stdout] 875 | |                     .into(),
[INFO] [stdout]     | |___________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/analyse.rs:43:19
[INFO] [stdout]    |
[INFO] [stdout] 43 |     fn ty_checker(&self) -> TyChecker {
[INFO] [stdout]    |                   ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                   |
[INFO] [stdout]    |                   the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 43 |     fn ty_checker(&self) -> TyChecker<'_> {
[INFO] [stdout]    |                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/analyse.rs:122:19
[INFO] [stdout]     |
[INFO] [stdout] 122 |     fn ty_checker(&self) -> TyChecker {
[INFO] [stdout]     |                   ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 122 |     fn ty_checker(&self) -> TyChecker<'_> {
[INFO] [stdout]     |                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/analyse.rs:534:19
[INFO] [stdout]     |
[INFO] [stdout] 534 |     fn ty_checker(&self) -> TyChecker {
[INFO] [stdout]     |                   ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 534 |     fn ty_checker(&self) -> TyChecker<'_> {
[INFO] [stdout]     |                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/analyse.rs:578:19
[INFO] [stdout]     |
[INFO] [stdout] 578 |     fn ty_checker(&self) -> TyChecker {
[INFO] [stdout]     |                   ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 578 |     fn ty_checker(&self) -> TyChecker<'_> {
[INFO] [stdout]     |                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/analyse.rs:592:23
[INFO] [stdout]     |
[INFO] [stdout] 592 |     fn const_gatherer(&self) -> ConstGatherer {
[INFO] [stdout]     |                       ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 592 |     fn const_gatherer(&self) -> ConstGatherer<'_> {
[INFO] [stdout]     |                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/analyse.rs:599:21
[INFO] [stdout]     |
[INFO] [stdout] 599 |     fn dep_analyser(&self) -> DepAnalyser {
[INFO] [stdout]     |                     ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 599 |     fn dep_analyser(&self) -> DepAnalyser<'_> {
[INFO] [stdout]     |                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/ty_check.rs:27:20
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn lhs_checker(&self) -> LhsChecker {
[INFO] [stdout]    |                    ^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn lhs_checker(&self) -> LhsChecker<'_> {
[INFO] [stdout]    |                                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/swizzle.rs:64:17
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub fn iter(&self) -> Iter {
[INFO] [stdout]    |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub fn iter(&self) -> Iter<'_> {
[INFO] [stdout]    |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `makepad-shader-compiler` (lib) due to 32 previous errors; 8 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "13735ef999e14a62ca4f9a1dc51b3c0e1d2222cc25cfba18b04f35d598eac805", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "13735ef999e14a62ca4f9a1dc51b3c0e1d2222cc25cfba18b04f35d598eac805", kill_on_drop: false }`
[INFO] [stdout] 13735ef999e14a62ca4f9a1dc51b3c0e1d2222cc25cfba18b04f35d598eac805
