[INFO] cloning repository https://github.com/AtmoPierce/matrslab
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/AtmoPierce/matrslab" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAtmoPierce%2Fmatrslab", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAtmoPierce%2Fmatrslab'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] e7146eba78864543065e694b034aa66d0500c4a2
[INFO] checking AtmoPierce/matrslab against try#0c70cfbec949d241375e31c5a42066be70c720fc for pr-149681
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAtmoPierce%2Fmatrslab" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-4-tc2/source/.cargo/config.toml
[INFO] started tweaking git repo https://github.com/AtmoPierce/matrslab
[INFO] finished tweaking git repo https://github.com/AtmoPierce/matrslab
[INFO] tweaked toml for git repo https://github.com/AtmoPierce/matrslab written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/AtmoPierce/matrslab on toolchain 0c70cfbec949d241375e31c5a42066be70c720fc
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0c70cfbec949d241375e31c5a42066be70c720fc" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/AtmoPierce/matrslab 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" "+0c70cfbec949d241375e31c5a42066be70c720fc" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
[INFO] [stderr] package:   /workspace/builds/worker-4-tc2/source/crates/aether_core/Cargo.toml
[INFO] [stderr] workspace: /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] [stderr] warning: /workspace/builds/worker-4-tc2/source/crates/aether_ml/Cargo.toml: Found `feature = ...` in `target.'cfg(...)'.dependencies`. This key is not supported for selecting dependencies and will not work as expected. Use the [features] section instead: https://doc.rust-lang.org/cargo/reference/features.html
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0c70cfbec949d241375e31c5a42066be70c720fc" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 65d85c3851e17e0b4aba7a94da12543f43c635992d220938bb5383c7ede27cb2
[INFO] running `Command { std: "docker" "start" "-a" "65d85c3851e17e0b4aba7a94da12543f43c635992d220938bb5383c7ede27cb2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "65d85c3851e17e0b4aba7a94da12543f43c635992d220938bb5383c7ede27cb2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "65d85c3851e17e0b4aba7a94da12543f43c635992d220938bb5383c7ede27cb2", kill_on_drop: false }`
[INFO] [stdout] 65d85c3851e17e0b4aba7a94da12543f43c635992d220938bb5383c7ede27cb2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-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" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0c70cfbec949d241375e31c5a42066be70c720fc" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6da77a67e4c963d8b521a8ec28860f5091d061569eb05b7314a2dd0c91dd5213
[INFO] running `Command { std: "docker" "start" "-a" "6da77a67e4c963d8b521a8ec28860f5091d061569eb05b7314a2dd0c91dd5213", kill_on_drop: false }`
[INFO] [stderr] warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
[INFO] [stderr] package:   /opt/rustwide/workdir/crates/aether_core/Cargo.toml
[INFO] [stderr] workspace: /opt/rustwide/workdir/Cargo.toml
[INFO] [stderr] warning: /opt/rustwide/workdir/crates/aether_ml/Cargo.toml: Found `feature = ...` in `target.'cfg(...)'.dependencies`. This key is not supported for selecting dependencies and will not work as expected. Use the [features] section instead: https://doc.rust-lang.org/cargo/reference/features.html
[INFO] [stderr] warning: aether v0.1.1 (/opt/rustwide/workdir/crates/aether) ignoring invalid dependency `aether_examples` which is missing a lib target
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.103
[INFO] [stderr]    Compiling quote v1.0.42
[INFO] [stderr]    Compiling unicode-ident v1.0.22
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling libc v0.2.177
[INFO] [stderr]    Compiling pkg-config v0.3.32
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling semver v1.0.27
[INFO] [stderr]    Compiling find-msvc-tools v0.1.5
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]     Checking cfg-if v1.0.4
[INFO] [stderr]     Checking once_cell v1.21.3
[INFO] [stderr]     Checking simd-adler32 v0.3.7
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]    Compiling cc v1.2.46
[INFO] [stderr]     Checking adler2 v2.0.1
[INFO] [stderr]    Compiling font-kit v0.14.3
[INFO] [stderr]     Checking aether_rand v0.1.1 (/opt/rustwide/workdir/crates/aether_rand)
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking web-time v1.1.0
[INFO] [stderr]     Checking fdeflate v0.3.7
[INFO] [stderr]     Checking libloading v0.8.9
[INFO] [stderr]    Compiling thiserror v2.0.17
[INFO] [stderr]     Checking color_quant v1.1.0
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]     Checking bitflags v1.3.2
[INFO] [stderr]     Checking memchr v2.7.6
[INFO] [stderr]     Checking option-ext v0.2.0
[INFO] [stderr]     Checking dlib v0.5.2
[INFO] [stderr]     Checking same-file v1.0.6
[INFO] [stderr]     Checking jpeg-decoder v0.3.2
[INFO] [stderr]     Checking bytemuck v1.24.0
[INFO] [stderr]     Checking flate2 v1.1.5
[INFO] [stderr]    Compiling pathfinder_simd v0.5.5
[INFO] [stderr]     Checking weezl v0.1.12
[INFO] [stderr]     Checking plotters-backend v0.3.7
[INFO] [stderr]     Checking dirs-sys v0.5.0
[INFO] [stderr]     Checking png v0.17.16
[INFO] [stderr]     Checking itoa v1.0.15
[INFO] [stderr]     Checking log v0.4.28
[INFO] [stderr]     Checking csv-core v0.1.13
[INFO] [stderr]     Checking ryu v1.0.20
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking walkdir v2.5.0
[INFO] [stderr]    Compiling syn v2.0.110
[INFO] [stderr]     Checking pathfinder_geometry v0.5.1
[INFO] [stderr]     Checking gif v0.12.0
[INFO] [stderr]     Checking dirs v6.0.0
[INFO] [stderr]     Checking bitflags v2.10.0
[INFO] [stderr]     Checking iana-time-zone v0.1.64
[INFO] [stderr]     Checking lazy_static v1.5.0
[INFO] [stderr]     Checking aether_core v0.1.1 (/opt/rustwide/workdir/crates/aether_core)
[INFO] [stderr]     Checking image v0.24.9
[INFO] [stderr]     Checking approx v0.5.1
[INFO] [stderr]     Checking float-ord v0.3.2
[INFO] [stdout] warning: unused imports: `Div`, `Neg`, and `Sub`
[INFO] [stdout]  --> crates/aether_core/src/attitude/dcm.rs:5:22
[INFO] [stdout]   |
[INFO] [stdout] 5 | use core::ops::{Add, Div, Mul, Neg, Sub};
[INFO] [stdout]   |                      ^^^       ^^^  ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Body` and `ICRF`
[INFO] [stdout]  --> crates/aether_core/src/attitude/determination.rs:2:30
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::reference_frame::{Body, ICRF};
[INFO] [stdout]   |                              ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Matrix`
[INFO] [stdout]  --> crates/aether_core/src/attitude/quaternion.rs:2:19
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::math::{Matrix, Vector};
[INFO] [stdout]   |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::fmt`
[INFO] [stdout]  --> crates/aether_core/src/attitude/rotation.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use core::fmt;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num`
[INFO] [stdout]    --> crates/aether_core/src/coordinate/cartesian.rs:387:17
[INFO] [stdout]     |
[INFO] [stdout] 387 | use core::{fmt, num};
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `matrix`
[INFO] [stdout]   --> crates/aether_core/src/math/macros.rs:26:16
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub(crate) use matrix;
[INFO] [stdout]    |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `eye`
[INFO] [stdout]   --> crates/aether_core/src/math/macros.rs:34:16
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub(crate) use eye;
[INFO] [stdout]    |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `zeros`
[INFO] [stdout]   --> crates/aether_core/src/math/macros.rs:42:16
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub(crate) use zeros;
[INFO] [stdout]    |                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ones`
[INFO] [stdout]   --> crates/aether_core/src/math/macros.rs:50:16
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub(crate) use ones;
[INFO] [stdout]    |                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::marker::PhantomData`
[INFO] [stdout]  --> crates/aether_core/src/reference_frame/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use core::marker::PhantomData;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::coordinate::Cartesian`
[INFO] [stdout]  --> crates/aether_core/src/reference_frame/icrf.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::coordinate::Cartesian;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::math::Vector`
[INFO] [stdout]  --> crates/aether_core/src/reference_frame/traits.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::math::Vector;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vector`
[INFO] [stdout]  --> crates/aether_core/src/reference_frame/transforms.rs:3:27
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::math::{Matrix, Vector};
[INFO] [stdout]   |                           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ReferenceFrame`
[INFO] [stdout]  --> crates/aether_core/src/reference_frame/transforms.rs:5:36
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::reference_frame::{Body, ReferenceFrame, ICRF, ITRF, NED};
[INFO] [stdout]   |                                    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::coordinate::Cartesian`
[INFO] [stdout]  --> crates/aether_core/src/reference_frame/ned.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::coordinate::Cartesian;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RotatingFrame`
[INFO] [stdout]  --> crates/aether_core/src/reference_frame/unknown.rs:1:46
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::reference_frame::{ReferenceFrame, RotatingFrame};
[INFO] [stdout]   |                                              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `repl`
[INFO] [stdout]  --> crates/aether_core/src/utils/mod.rs:2:7
[INFO] [stdout]   |
[INFO] [stdout] 2 | #[cfg(feature = "repl")]
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: expected values for `feature` are: `default`, `f128`, `f16`, `no_std`, `regex`, `rustyline`, `serde`, `serde-json-core`, and `std`
[INFO] [stdout]   = help: consider adding `repl` as a feature in `Cargo.toml`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `repl`
[INFO] [stdout]  --> crates/aether_core/src/utils/mod.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[cfg(feature = "repl")]
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: expected values for `feature` are: `default`, `f128`, `f16`, `no_std`, `regex`, `rustyline`, `serde`, `serde-json-core`, and `std`
[INFO] [stdout]   = help: consider adding `repl` as a feature in `Cargo.toml`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `repl`
[INFO] [stdout]  --> crates/aether_core/src/utils/mod.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | #[cfg(feature = "repl")]
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: expected values for `feature` are: `default`, `f128`, `f16`, `no_std`, `regex`, `rustyline`, `serde`, `serde-json-core`, and `std`
[INFO] [stdout]   = help: consider adding `repl` as a feature in `Cargo.toml`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `repl`
[INFO] [stdout]  --> crates/aether_core/src/utils/mod.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | #[cfg(feature = "repl")]
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: expected values for `feature` are: `default`, `f128`, `f16`, `no_std`, `regex`, `rustyline`, `serde`, `serde-json-core`, and `std`
[INFO] [stdout]   = help: consider adding `repl` as a feature in `Cargo.toml`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling yeslogic-fontconfig-sys v6.0.0
[INFO] [stderr]     Checking chrono v0.4.42
[INFO] [stderr]     Checking plotters-svg v0.3.7
[INFO] [stderr]     Checking ttf-parser v0.20.0
[INFO] [stderr]     Checking aether_fluids v0.1.1 (/opt/rustwide/workdir/crates/aether_fluids)
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> crates/aether_core/src/attitude/rotation.rs:70:37
[INFO] [stdout]     |
[INFO] [stdout]  70 |         let half_angle = angle * T::from_f32(0.5);
[INFO] [stdout]     |                                     ^^^^^^^^ multiple `from_f32` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `Real`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:29:5
[INFO] [stdout]     |
[INFO] [stdout]  29 |     fn from_f32(x: f32) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: candidate #2 is defined in the trait `RealCast`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:353:5
[INFO] [stdout]     |
[INFO] [stdout] 353 |     fn from_f32(x: f32) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout]  70 -         let half_angle = angle * T::from_f32(0.5);
[INFO] [stdout]  70 +         let half_angle = angle * <T as Real>::from_f32(0.5);
[INFO] [stdout]     |
[INFO] [stdout]  70 -         let half_angle = angle * T::from_f32(0.5);
[INFO] [stdout]  70 +         let half_angle = angle * <T as RealCast>::from_f32(0.5);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> crates/aether_core/src/math/matrix.rs:241:22
[INFO] [stdout]     |
[INFO] [stdout] 241 |         let eps = T::from_f64(1e-12);
[INFO] [stdout]     |                      ^^^^^^^^ multiple `from_f64` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `Real`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:30:5
[INFO] [stdout]     |
[INFO] [stdout]  30 |     fn from_f64(x: f64) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: candidate #2 is defined in the trait `RealCast`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:354:5
[INFO] [stdout]     |
[INFO] [stdout] 354 |     fn from_f64(x: f64) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout] 241 -         let eps = T::from_f64(1e-12);
[INFO] [stdout] 241 +         let eps = <T as Real>::from_f64(1e-12);
[INFO] [stdout]     |
[INFO] [stdout] 241 -         let eps = T::from_f64(1e-12);
[INFO] [stdout] 241 +         let eps = <T as RealCast>::from_f64(1e-12);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> crates/aether_core/src/math/matrix.rs:292:22
[INFO] [stdout]     |
[INFO] [stdout] 292 |         let eps = T::from_f64(1e-12);
[INFO] [stdout]     |                      ^^^^^^^^ multiple `from_f64` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `Real`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:30:5
[INFO] [stdout]     |
[INFO] [stdout]  30 |     fn from_f64(x: f64) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: candidate #2 is defined in the trait `RealCast`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:354:5
[INFO] [stdout]     |
[INFO] [stdout] 354 |     fn from_f64(x: f64) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout] 292 -         let eps = T::from_f64(1e-12);
[INFO] [stdout] 292 +         let eps = <T as Real>::from_f64(1e-12);
[INFO] [stdout]     |
[INFO] [stdout] 292 -         let eps = T::from_f64(1e-12);
[INFO] [stdout] 292 +         let eps = <T as RealCast>::from_f64(1e-12);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> crates/aether_core/src/math/matrix.rs:367:22
[INFO] [stdout]     |
[INFO] [stdout] 367 |         let eps = T::from_f64(1e-12);
[INFO] [stdout]     |                      ^^^^^^^^ multiple `from_f64` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `Real`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:30:5
[INFO] [stdout]     |
[INFO] [stdout]  30 |     fn from_f64(x: f64) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: candidate #2 is defined in the trait `RealCast`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:354:5
[INFO] [stdout]     |
[INFO] [stdout] 354 |     fn from_f64(x: f64) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout] 367 -         let eps = T::from_f64(1e-12);
[INFO] [stdout] 367 +         let eps = <T as Real>::from_f64(1e-12);
[INFO] [stdout]     |
[INFO] [stdout] 367 -         let eps = T::from_f64(1e-12);
[INFO] [stdout] 367 +         let eps = <T as RealCast>::from_f64(1e-12);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> crates/aether_core/src/math/vector.rs:239:22
[INFO] [stdout]     |
[INFO] [stdout] 239 |         let eps = T::from_f64(1e-12);
[INFO] [stdout]     |                      ^^^^^^^^ multiple `from_f64` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `Real`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:30:5
[INFO] [stdout]     |
[INFO] [stdout]  30 |     fn from_f64(x: f64) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: candidate #2 is defined in the trait `RealCast`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:354:5
[INFO] [stdout]     |
[INFO] [stdout] 354 |     fn from_f64(x: f64) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout] 239 -         let eps = T::from_f64(1e-12);
[INFO] [stdout] 239 +         let eps = <T as Real>::from_f64(1e-12);
[INFO] [stdout]     |
[INFO] [stdout] 239 -         let eps = T::from_f64(1e-12);
[INFO] [stdout] 239 +         let eps = <T as RealCast>::from_f64(1e-12);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> crates/aether_core/src/math/vector.rs:258:32
[INFO] [stdout]     |
[INFO] [stdout] 258 |             let minus_one = T::from_f64(-1.0);
[INFO] [stdout]     |                                ^^^^^^^^ multiple `from_f64` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `Real`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:30:5
[INFO] [stdout]     |
[INFO] [stdout]  30 |     fn from_f64(x: f64) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: candidate #2 is defined in the trait `RealCast`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:354:5
[INFO] [stdout]     |
[INFO] [stdout] 354 |     fn from_f64(x: f64) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout] 258 -             let minus_one = T::from_f64(-1.0);
[INFO] [stdout] 258 +             let minus_one = <T as Real>::from_f64(-1.0);
[INFO] [stdout]     |
[INFO] [stdout] 258 -             let minus_one = T::from_f64(-1.0);
[INFO] [stdout] 258 +             let minus_one = <T as RealCast>::from_f64(-1.0);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> crates/aether_core/src/numerical_methods/integration/rk4.rs:19:45
[INFO] [stdout]     |
[INFO] [stdout]  19 |         let k2 = f(&(*self + &k1 * (dt / T::from_f32(2.0))));
[INFO] [stdout]     |                                             ^^^^^^^^ multiple `from_f32` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `Real`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:29:5
[INFO] [stdout]     |
[INFO] [stdout]  29 |     fn from_f32(x: f32) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: candidate #2 is defined in the trait `RealCast`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:353:5
[INFO] [stdout]     |
[INFO] [stdout] 353 |     fn from_f32(x: f32) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout]  19 -         let k2 = f(&(*self + &k1 * (dt / T::from_f32(2.0))));
[INFO] [stdout]  19 +         let k2 = f(&(*self + &k1 * (dt / <T as Real>::from_f32(2.0))));
[INFO] [stdout]     |
[INFO] [stdout]  19 -         let k2 = f(&(*self + &k1 * (dt / T::from_f32(2.0))));
[INFO] [stdout]  19 +         let k2 = f(&(*self + &k1 * (dt / <T as RealCast>::from_f32(2.0))));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> crates/aether_core/src/numerical_methods/integration/rk4.rs:20:45
[INFO] [stdout]     |
[INFO] [stdout]  20 |         let k3 = f(&(*self + &k2 * (dt / T::from_f32(2.0))));
[INFO] [stdout]     |                                             ^^^^^^^^ multiple `from_f32` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `Real`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:29:5
[INFO] [stdout]     |
[INFO] [stdout]  29 |     fn from_f32(x: f32) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: candidate #2 is defined in the trait `RealCast`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:353:5
[INFO] [stdout]     |
[INFO] [stdout] 353 |     fn from_f32(x: f32) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout]  20 -         let k3 = f(&(*self + &k2 * (dt / T::from_f32(2.0))));
[INFO] [stdout]  20 +         let k3 = f(&(*self + &k2 * (dt / <T as Real>::from_f32(2.0))));
[INFO] [stdout]     |
[INFO] [stdout]  20 -         let k3 = f(&(*self + &k2 * (dt / T::from_f32(2.0))));
[INFO] [stdout]  20 +         let k3 = f(&(*self + &k2 * (dt / <T as RealCast>::from_f32(2.0))));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> crates/aether_core/src/numerical_methods/integration/rk4.rs:22:58
[INFO] [stdout]     |
[INFO] [stdout]  22 |         *self + (k1 + k2 + k2 + k3 + k3 + k4) * (dt / T::from_f32(6.0))
[INFO] [stdout]     |                                                          ^^^^^^^^ multiple `from_f32` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `Real`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:29:5
[INFO] [stdout]     |
[INFO] [stdout]  29 |     fn from_f32(x: f32) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: candidate #2 is defined in the trait `RealCast`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:353:5
[INFO] [stdout]     |
[INFO] [stdout] 353 |     fn from_f32(x: f32) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout]  22 -         *self + (k1 + k2 + k2 + k3 + k3 + k4) * (dt / T::from_f32(6.0))
[INFO] [stdout]  22 +         *self + (k1 + k2 + k2 + k3 + k3 + k4) * (dt / <T as Real>::from_f32(6.0))
[INFO] [stdout]     |
[INFO] [stdout]  22 -         *self + (k1 + k2 + k2 + k3 + k3 + k4) * (dt / T::from_f32(6.0))
[INFO] [stdout]  22 +         *self + (k1 + k2 + k2 + k3 + k3 + k4) * (dt / <T as RealCast>::from_f32(6.0))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> crates/aether_core/src/numerical_methods/integration/rk4.rs:30:31
[INFO] [stdout]     |
[INFO] [stdout]  30 |         let half_dt = dt / T::from_f32(2.0);
[INFO] [stdout]     |                               ^^^^^^^^ multiple `from_f32` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `Real`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:29:5
[INFO] [stdout]     |
[INFO] [stdout]  29 |     fn from_f32(x: f32) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: candidate #2 is defined in the trait `RealCast`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:353:5
[INFO] [stdout]     |
[INFO] [stdout] 353 |     fn from_f32(x: f32) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout]  30 -         let half_dt = dt / T::from_f32(2.0);
[INFO] [stdout]  30 +         let half_dt = dt / <T as Real>::from_f32(2.0);
[INFO] [stdout]     |
[INFO] [stdout]  30 -         let half_dt = dt / T::from_f32(2.0);
[INFO] [stdout]  30 +         let half_dt = dt / <T as RealCast>::from_f32(2.0);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> crates/aether_core/src/numerical_methods/integration/rk4.rs:31:32
[INFO] [stdout]     |
[INFO] [stdout]  31 |         let sixth_dt = dt / T::from_f32(6.0);
[INFO] [stdout]     |                                ^^^^^^^^ multiple `from_f32` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `Real`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:29:5
[INFO] [stdout]     |
[INFO] [stdout]  29 |     fn from_f32(x: f32) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: candidate #2 is defined in the trait `RealCast`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:353:5
[INFO] [stdout]     |
[INFO] [stdout] 353 |     fn from_f32(x: f32) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout]  31 -         let sixth_dt = dt / T::from_f32(6.0);
[INFO] [stdout]  31 +         let sixth_dt = dt / <T as Real>::from_f32(6.0);
[INFO] [stdout]     |
[INFO] [stdout]  31 -         let sixth_dt = dt / T::from_f32(6.0);
[INFO] [stdout]  31 +         let sixth_dt = dt / <T as RealCast>::from_f32(6.0);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> crates/aether_core/src/numerical_methods/integration/rk4.rs:41:36
[INFO] [stdout]     |
[INFO] [stdout]  41 |                     + k2.data * T::from_f32(2.0)
[INFO] [stdout]     |                                    ^^^^^^^^ multiple `from_f32` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `Real`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:29:5
[INFO] [stdout]     |
[INFO] [stdout]  29 |     fn from_f32(x: f32) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: candidate #2 is defined in the trait `RealCast`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:353:5
[INFO] [stdout]     |
[INFO] [stdout] 353 |     fn from_f32(x: f32) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout]  41 -                     + k2.data * T::from_f32(2.0)
[INFO] [stdout]  41 +                     + k2.data * <T as Real>::from_f32(2.0)
[INFO] [stdout]     |
[INFO] [stdout]  41 -                     + k2.data * T::from_f32(2.0)
[INFO] [stdout]  41 +                     + k2.data * <T as RealCast>::from_f32(2.0)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> crates/aether_core/src/numerical_methods/integration/rk4.rs:42:36
[INFO] [stdout]     |
[INFO] [stdout]  42 |                     + k3.data * T::from_f32(2.0)
[INFO] [stdout]     |                                    ^^^^^^^^ multiple `from_f32` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `Real`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:29:5
[INFO] [stdout]     |
[INFO] [stdout]  29 |     fn from_f32(x: f32) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: candidate #2 is defined in the trait `RealCast`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:353:5
[INFO] [stdout]     |
[INFO] [stdout] 353 |     fn from_f32(x: f32) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout]  42 -                     + k3.data * T::from_f32(2.0)
[INFO] [stdout]  42 +                     + k3.data * <T as Real>::from_f32(2.0)
[INFO] [stdout]     |
[INFO] [stdout]  42 -                     + k3.data * T::from_f32(2.0)
[INFO] [stdout]  42 +                     + k3.data * <T as RealCast>::from_f32(2.0)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> crates/aether_core/src/numerical_methods/integration/trapezoidal.rs:15:30
[INFO] [stdout]     |
[INFO] [stdout]  15 |         (*self + *last) * T::from_f32(0.5) * dt
[INFO] [stdout]     |                              ^^^^^^^^ multiple `from_f32` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `Real`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:29:5
[INFO] [stdout]     |
[INFO] [stdout]  29 |     fn from_f32(x: f32) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: candidate #2 is defined in the trait `RealCast`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:353:5
[INFO] [stdout]     |
[INFO] [stdout] 353 |     fn from_f32(x: f32) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout]  15 -         (*self + *last) * T::from_f32(0.5) * dt
[INFO] [stdout]  15 +         (*self + *last) * <T as Real>::from_f32(0.5) * dt
[INFO] [stdout]     |
[INFO] [stdout]  15 -         (*self + *last) * T::from_f32(0.5) * dt
[INFO] [stdout]  15 +         (*self + *last) * <T as RealCast>::from_f32(0.5) * dt
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> crates/aether_core/src/numerical_methods/integration/trapezoidal.rs:23:48
[INFO] [stdout]     |
[INFO] [stdout]  23 |             data: (self.data + last.data) * T::from_f32(0.5) * dt,
[INFO] [stdout]     |                                                ^^^^^^^^ multiple `from_f32` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `Real`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:29:5
[INFO] [stdout]     |
[INFO] [stdout]  29 |     fn from_f32(x: f32) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: candidate #2 is defined in the trait `RealCast`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:353:5
[INFO] [stdout]     |
[INFO] [stdout] 353 |     fn from_f32(x: f32) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout]  23 -             data: (self.data + last.data) * T::from_f32(0.5) * dt,
[INFO] [stdout]  23 +             data: (self.data + last.data) * <T as Real>::from_f32(0.5) * dt,
[INFO] [stdout]     |
[INFO] [stdout]  23 -             data: (self.data + last.data) * T::from_f32(0.5) * dt,
[INFO] [stdout]  23 +             data: (self.data + last.data) * <T as RealCast>::from_f32(0.5) * dt,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> crates/aether_core/src/reference_frame/itrf.rs:18:53
[INFO] [stdout]     |
[INFO] [stdout]  18 |             data: Vector::new([T::ZERO, T::ZERO, T::from_f64(7.2921150e-5)]),
[INFO] [stdout]     |                                                     ^^^^^^^^ multiple `from_f64` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `Real`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:30:5
[INFO] [stdout]     |
[INFO] [stdout]  30 |     fn from_f64(x: f64) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: candidate #2 is defined in the trait `RealCast`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:354:5
[INFO] [stdout]     |
[INFO] [stdout] 354 |     fn from_f64(x: f64) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout]  18 -             data: Vector::new([T::ZERO, T::ZERO, T::from_f64(7.2921150e-5)]),
[INFO] [stdout]  18 +             data: Vector::new([T::ZERO, T::ZERO, <T as Real>::from_f64(7.2921150e-5)]),
[INFO] [stdout]     |
[INFO] [stdout]  18 -             data: Vector::new([T::ZERO, T::ZERO, T::from_f64(7.2921150e-5)]),
[INFO] [stdout]  18 +             data: Vector::new([T::ZERO, T::ZERO, <T as RealCast>::from_f64(7.2921150e-5)]),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> crates/aether_core/src/reference_frame/itrf.rs:28:24
[INFO] [stdout]     |
[INFO] [stdout]  28 | ...   let omega = T::from_f64(7.2921150e-5); // Earth's rotation rate [rad/s] (ITRF is actually more complicated and comes from eph...
[INFO] [stdout]     |                      ^^^^^^^^ multiple `from_f64` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `Real`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:30:5
[INFO] [stdout]     |
[INFO] [stdout]  30 |     fn from_f64(x: f64) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: candidate #2 is defined in the trait `RealCast`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:354:5
[INFO] [stdout]     |
[INFO] [stdout] 354 |     fn from_f64(x: f64) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout]  28 -         let omega = T::from_f64(7.2921150e-5); // Earth's rotation rate [rad/s] (ITRF is actually more complicated and comes from ephermerides, more on that later...)
[INFO] [stdout]  28 +         let omega = <T as Real>::from_f64(7.2921150e-5); // Earth's rotation rate [rad/s] (ITRF is actually more complicated and comes from ephermerides, more on that later...)
[INFO] [stdout]     |
[INFO] [stdout]  28 -         let omega = T::from_f64(7.2921150e-5); // Earth's rotation rate [rad/s] (ITRF is actually more complicated and comes from ephermerides, more on that later...)
[INFO] [stdout]  28 +         let omega = <T as RealCast>::from_f64(7.2921150e-5); // Earth's rotation rate [rad/s] (ITRF is actually more complicated and comes from ephermerides, more on that later...)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> crates/aether_core/src/reference_frame/itrf.rs:30:38
[INFO] [stdout]     |
[INFO] [stdout]  30 |         let half_theta = dtheta * T::from_f32(0.5);
[INFO] [stdout]     |                                      ^^^^^^^^ multiple `from_f32` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `Real`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:29:5
[INFO] [stdout]     |
[INFO] [stdout]  29 |     fn from_f32(x: f32) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: candidate #2 is defined in the trait `RealCast`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:353:5
[INFO] [stdout]     |
[INFO] [stdout] 353 |     fn from_f32(x: f32) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout]  30 -         let half_theta = dtheta * T::from_f32(0.5);
[INFO] [stdout]  30 +         let half_theta = dtheta * <T as Real>::from_f32(0.5);
[INFO] [stdout]     |
[INFO] [stdout]  30 -         let half_theta = dtheta * T::from_f32(0.5);
[INFO] [stdout]  30 +         let half_theta = dtheta * <T as RealCast>::from_f32(0.5);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::real::Real`
[INFO] [stdout]  --> crates/aether_core/src/reference_frame/transforms.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::real::Real;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Div`, `Neg`, and `Sub`
[INFO] [stdout]  --> crates/aether_core/src/attitude/dcm.rs:5:22
[INFO] [stdout]   |
[INFO] [stdout] 5 | use core::ops::{Add, Div, Mul, Neg, Sub};
[INFO] [stdout]   |                      ^^^       ^^^  ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]  --> crates/aether_core/src/attitude/tests/dcm_tests.rs:3:9
[INFO] [stdout]   |
[INFO] [stdout] 3 |     use super::*;
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Euler` and `Quaternion`
[INFO] [stdout]  --> crates/aether_core/src/attitude/tests/dcm_tests.rs:5:50
[INFO] [stdout]   |
[INFO] [stdout] 5 |     use crate::attitude::{DirectionCosineMatrix, Euler, Quaternion};
[INFO] [stdout]   |                                                  ^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `approx::assert_relative_eq`
[INFO] [stdout]  --> crates/aether_core/src/attitude/tests/dcm_tests.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     use approx::assert_relative_eq;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::real::Real`
[INFO] [stdout]  --> crates/aether_core/src/attitude/tests/dcm_tests.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     use crate::real::Real;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Body` and `ICRF`
[INFO] [stdout]  --> crates/aether_core/src/attitude/determination.rs:2:30
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::reference_frame::{Body, ICRF};
[INFO] [stdout]   |                              ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]  --> crates/aether_core/src/attitude/tests/euler_tests.rs:2:9
[INFO] [stdout]   |
[INFO] [stdout] 2 |     use super::*;
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::matrix`
[INFO] [stdout]  --> crates/aether_core/src/attitude/tests/euler_tests.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     use crate::matrix;
[INFO] [stdout]   |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `approx::assert_relative_eq`
[INFO] [stdout]  --> crates/aether_core/src/attitude/tests/euler_tests.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     use approx::assert_relative_eq;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Matrix`
[INFO] [stdout]  --> crates/aether_core/src/attitude/quaternion.rs:2:19
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::math::{Matrix, Vector};
[INFO] [stdout]   |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::fmt`
[INFO] [stdout]  --> crates/aether_core/src/attitude/rotation.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use core::fmt;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]  --> crates/aether_core/src/attitude/tests/test_utils.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::*;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Euler`
[INFO] [stdout]  --> crates/aether_core/src/attitude/tests/test_utils.rs:2:46
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::attitude::{DirectionCosineMatrix, Euler, Quaternion};
[INFO] [stdout]   |                                              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `matrix`
[INFO] [stdout]  --> crates/aether_core/src/attitude/tests/test_utils.rs:4:27
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{math::Matrix, matrix};
[INFO] [stdout]   |                           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `approx::assert_relative_eq`
[INFO] [stdout]  --> crates/aether_core/src/attitude/tests/test_utils.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use approx::assert_relative_eq;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num`
[INFO] [stdout]    --> crates/aether_core/src/coordinate/cartesian.rs:387:17
[INFO] [stdout]     |
[INFO] [stdout] 387 | use core::{fmt, num};
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `matrix`
[INFO] [stdout]   --> crates/aether_core/src/math/macros.rs:26:16
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub(crate) use matrix;
[INFO] [stdout]    |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `eye`
[INFO] [stdout]   --> crates/aether_core/src/math/macros.rs:34:16
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub(crate) use eye;
[INFO] [stdout]    |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `zeros`
[INFO] [stdout]   --> crates/aether_core/src/math/macros.rs:42:16
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub(crate) use zeros;
[INFO] [stdout]    |                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ones`
[INFO] [stdout]   --> crates/aether_core/src/math/macros.rs:50:16
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub(crate) use ones;
[INFO] [stdout]    |                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::*`
[INFO] [stdout]  --> crates/aether_core/src/numerical_methods/solvers/tests/mod.rs:3:9
[INFO] [stdout]   |
[INFO] [stdout] 3 |     use crate::*;
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::*`
[INFO] [stdout]   --> crates/aether_core/src/numerical_methods/solvers/tests/mod.rs:83:9
[INFO] [stdout]    |
[INFO] [stdout] 83 |     use crate::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::marker::PhantomData`
[INFO] [stdout]  --> crates/aether_core/src/reference_frame/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use core::marker::PhantomData;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::coordinate::Cartesian`
[INFO] [stdout]  --> crates/aether_core/src/reference_frame/icrf.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::coordinate::Cartesian;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::math::Vector`
[INFO] [stdout]  --> crates/aether_core/src/reference_frame/traits.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::math::Vector;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ReferenceFrame`
[INFO] [stdout]  --> crates/aether_core/src/reference_frame/transforms.rs:5:36
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::reference_frame::{Body, ReferenceFrame, ICRF, ITRF, NED};
[INFO] [stdout]   |                                    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::coordinate::Spherical`
[INFO] [stdout]    --> crates/aether_core/src/reference_frame/transforms.rs:121:9
[INFO] [stdout]     |
[INFO] [stdout] 121 |     use crate::coordinate::Spherical;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::coordinate::Cartesian`
[INFO] [stdout]  --> crates/aether_core/src/reference_frame/ned.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::coordinate::Cartesian;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RotatingFrame`
[INFO] [stdout]  --> crates/aether_core/src/reference_frame/unknown.rs:1:46
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::reference_frame::{ReferenceFrame, RotatingFrame};
[INFO] [stdout]   |                                              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `repl`
[INFO] [stdout]  --> crates/aether_core/src/utils/mod.rs:2:7
[INFO] [stdout]   |
[INFO] [stdout] 2 | #[cfg(feature = "repl")]
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: expected values for `feature` are: `default`, `f128`, `f16`, `no_std`, `regex`, `rustyline`, `serde`, `serde-json-core`, and `std`
[INFO] [stdout]   = help: consider adding `repl` as a feature in `Cargo.toml`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `repl`
[INFO] [stdout]  --> crates/aether_core/src/utils/mod.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[cfg(feature = "repl")]
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: expected values for `feature` are: `default`, `f128`, `f16`, `no_std`, `regex`, `rustyline`, `serde`, `serde-json-core`, and `std`
[INFO] [stdout]   = help: consider adding `repl` as a feature in `Cargo.toml`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `repl`
[INFO] [stdout]  --> crates/aether_core/src/utils/mod.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | #[cfg(feature = "repl")]
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: expected values for `feature` are: `default`, `f128`, `f16`, `no_std`, `regex`, `rustyline`, `serde`, `serde-json-core`, and `std`
[INFO] [stdout]   = help: consider adding `repl` as a feature in `Cargo.toml`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `repl`
[INFO] [stdout]  --> crates/aether_core/src/utils/mod.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | #[cfg(feature = "repl")]
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: expected values for `feature` are: `default`, `f128`, `f16`, `no_std`, `regex`, `rustyline`, `serde`, `serde-json-core`, and `std`
[INFO] [stdout]   = help: consider adding `repl` as a feature in `Cargo.toml`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0034`.
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> crates/aether_core/src/attitude/rotation.rs:70:37
[INFO] [stdout]     |
[INFO] [stdout]  70 |         let half_angle = angle * T::from_f32(0.5);
[INFO] [stdout]     |                                     ^^^^^^^^ multiple `from_f32` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `RealCast`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:353:5
[INFO] [stdout]     |
[INFO] [stdout] 353 |     fn from_f32(x: f32) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: candidate #2 is defined in the trait `real::real::Real`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:29:5
[INFO] [stdout]     |
[INFO] [stdout]  29 |     fn from_f32(x: f32) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout]  70 -         let half_angle = angle * T::from_f32(0.5);
[INFO] [stdout]  70 +         let half_angle = angle * <T as RealCast>::from_f32(0.5);
[INFO] [stdout]     |
[INFO] [stdout]  70 -         let half_angle = angle * T::from_f32(0.5);
[INFO] [stdout]  70 +         let half_angle = angle * <T as real::real::Real>::from_f32(0.5);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `aether_core` (lib) due to 18 previous errors; 21 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> crates/aether_core/src/math/matrix.rs:241:22
[INFO] [stdout]     |
[INFO] [stdout] 241 |         let eps = T::from_f64(1e-12);
[INFO] [stdout]     |                      ^^^^^^^^ multiple `from_f64` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `RealCast`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:354:5
[INFO] [stdout]     |
[INFO] [stdout] 354 |     fn from_f64(x: f64) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: candidate #2 is defined in the trait `real::real::Real`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:30:5
[INFO] [stdout]     |
[INFO] [stdout]  30 |     fn from_f64(x: f64) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout] 241 -         let eps = T::from_f64(1e-12);
[INFO] [stdout] 241 +         let eps = <T as RealCast>::from_f64(1e-12);
[INFO] [stdout]     |
[INFO] [stdout] 241 -         let eps = T::from_f64(1e-12);
[INFO] [stdout] 241 +         let eps = <T as real::real::Real>::from_f64(1e-12);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> crates/aether_core/src/math/matrix.rs:292:22
[INFO] [stdout]     |
[INFO] [stdout] 292 |         let eps = T::from_f64(1e-12);
[INFO] [stdout]     |                      ^^^^^^^^ multiple `from_f64` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `RealCast`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:354:5
[INFO] [stdout]     |
[INFO] [stdout] 354 |     fn from_f64(x: f64) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: candidate #2 is defined in the trait `real::real::Real`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:30:5
[INFO] [stdout]     |
[INFO] [stdout]  30 |     fn from_f64(x: f64) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout] 292 -         let eps = T::from_f64(1e-12);
[INFO] [stdout] 292 +         let eps = <T as RealCast>::from_f64(1e-12);
[INFO] [stdout]     |
[INFO] [stdout] 292 -         let eps = T::from_f64(1e-12);
[INFO] [stdout] 292 +         let eps = <T as real::real::Real>::from_f64(1e-12);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> crates/aether_core/src/math/matrix.rs:367:22
[INFO] [stdout]     |
[INFO] [stdout] 367 |         let eps = T::from_f64(1e-12);
[INFO] [stdout]     |                      ^^^^^^^^ multiple `from_f64` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `RealCast`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:354:5
[INFO] [stdout]     |
[INFO] [stdout] 354 |     fn from_f64(x: f64) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: candidate #2 is defined in the trait `real::real::Real`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:30:5
[INFO] [stdout]     |
[INFO] [stdout]  30 |     fn from_f64(x: f64) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout] 367 -         let eps = T::from_f64(1e-12);
[INFO] [stdout] 367 +         let eps = <T as RealCast>::from_f64(1e-12);
[INFO] [stdout]     |
[INFO] [stdout] 367 -         let eps = T::from_f64(1e-12);
[INFO] [stdout] 367 +         let eps = <T as real::real::Real>::from_f64(1e-12);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> crates/aether_core/src/math/vector.rs:239:22
[INFO] [stdout]     |
[INFO] [stdout] 239 |         let eps = T::from_f64(1e-12);
[INFO] [stdout]     |                      ^^^^^^^^ multiple `from_f64` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `RealCast`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:354:5
[INFO] [stdout]     |
[INFO] [stdout] 354 |     fn from_f64(x: f64) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: candidate #2 is defined in the trait `real::real::Real`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:30:5
[INFO] [stdout]     |
[INFO] [stdout]  30 |     fn from_f64(x: f64) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout] 239 -         let eps = T::from_f64(1e-12);
[INFO] [stdout] 239 +         let eps = <T as RealCast>::from_f64(1e-12);
[INFO] [stdout]     |
[INFO] [stdout] 239 -         let eps = T::from_f64(1e-12);
[INFO] [stdout] 239 +         let eps = <T as real::real::Real>::from_f64(1e-12);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> crates/aether_core/src/math/vector.rs:258:32
[INFO] [stdout]     |
[INFO] [stdout] 258 |             let minus_one = T::from_f64(-1.0);
[INFO] [stdout]     |                                ^^^^^^^^ multiple `from_f64` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `RealCast`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:354:5
[INFO] [stdout]     |
[INFO] [stdout] 354 |     fn from_f64(x: f64) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: candidate #2 is defined in the trait `real::real::Real`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:30:5
[INFO] [stdout]     |
[INFO] [stdout]  30 |     fn from_f64(x: f64) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout] 258 -             let minus_one = T::from_f64(-1.0);
[INFO] [stdout] 258 +             let minus_one = <T as RealCast>::from_f64(-1.0);
[INFO] [stdout]     |
[INFO] [stdout] 258 -             let minus_one = T::from_f64(-1.0);
[INFO] [stdout] 258 +             let minus_one = <T as real::real::Real>::from_f64(-1.0);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> crates/aether_core/src/numerical_methods/integration/rk4.rs:19:45
[INFO] [stdout]     |
[INFO] [stdout]  19 |         let k2 = f(&(*self + &k1 * (dt / T::from_f32(2.0))));
[INFO] [stdout]     |                                             ^^^^^^^^ multiple `from_f32` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `RealCast`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:353:5
[INFO] [stdout]     |
[INFO] [stdout] 353 |     fn from_f32(x: f32) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: candidate #2 is defined in the trait `real::real::Real`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:29:5
[INFO] [stdout]     |
[INFO] [stdout]  29 |     fn from_f32(x: f32) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout]  19 -         let k2 = f(&(*self + &k1 * (dt / T::from_f32(2.0))));
[INFO] [stdout]  19 +         let k2 = f(&(*self + &k1 * (dt / <T as RealCast>::from_f32(2.0))));
[INFO] [stdout]     |
[INFO] [stdout]  19 -         let k2 = f(&(*self + &k1 * (dt / T::from_f32(2.0))));
[INFO] [stdout]  19 +         let k2 = f(&(*self + &k1 * (dt / <T as real::real::Real>::from_f32(2.0))));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> crates/aether_core/src/numerical_methods/integration/rk4.rs:20:45
[INFO] [stdout]     |
[INFO] [stdout]  20 |         let k3 = f(&(*self + &k2 * (dt / T::from_f32(2.0))));
[INFO] [stdout]     |                                             ^^^^^^^^ multiple `from_f32` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `RealCast`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:353:5
[INFO] [stdout]     |
[INFO] [stdout] 353 |     fn from_f32(x: f32) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: candidate #2 is defined in the trait `real::real::Real`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:29:5
[INFO] [stdout]     |
[INFO] [stdout]  29 |     fn from_f32(x: f32) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout]  20 -         let k3 = f(&(*self + &k2 * (dt / T::from_f32(2.0))));
[INFO] [stdout]  20 +         let k3 = f(&(*self + &k2 * (dt / <T as RealCast>::from_f32(2.0))));
[INFO] [stdout]     |
[INFO] [stdout]  20 -         let k3 = f(&(*self + &k2 * (dt / T::from_f32(2.0))));
[INFO] [stdout]  20 +         let k3 = f(&(*self + &k2 * (dt / <T as real::real::Real>::from_f32(2.0))));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> crates/aether_core/src/numerical_methods/integration/rk4.rs:22:58
[INFO] [stdout]     |
[INFO] [stdout]  22 |         *self + (k1 + k2 + k2 + k3 + k3 + k4) * (dt / T::from_f32(6.0))
[INFO] [stdout]     |                                                          ^^^^^^^^ multiple `from_f32` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `RealCast`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:353:5
[INFO] [stdout]     |
[INFO] [stdout] 353 |     fn from_f32(x: f32) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: candidate #2 is defined in the trait `real::real::Real`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:29:5
[INFO] [stdout]     |
[INFO] [stdout]  29 |     fn from_f32(x: f32) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout]  22 -         *self + (k1 + k2 + k2 + k3 + k3 + k4) * (dt / T::from_f32(6.0))
[INFO] [stdout]  22 +         *self + (k1 + k2 + k2 + k3 + k3 + k4) * (dt / <T as RealCast>::from_f32(6.0))
[INFO] [stdout]     |
[INFO] [stdout]  22 -         *self + (k1 + k2 + k2 + k3 + k3 + k4) * (dt / T::from_f32(6.0))
[INFO] [stdout]  22 +         *self + (k1 + k2 + k2 + k3 + k3 + k4) * (dt / <T as real::real::Real>::from_f32(6.0))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> crates/aether_core/src/numerical_methods/integration/rk4.rs:30:31
[INFO] [stdout]     |
[INFO] [stdout]  30 |         let half_dt = dt / T::from_f32(2.0);
[INFO] [stdout]     |                               ^^^^^^^^ multiple `from_f32` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `RealCast`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:353:5
[INFO] [stdout]     |
[INFO] [stdout] 353 |     fn from_f32(x: f32) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: candidate #2 is defined in the trait `real::real::Real`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:29:5
[INFO] [stdout]     |
[INFO] [stdout]  29 |     fn from_f32(x: f32) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout]  30 -         let half_dt = dt / T::from_f32(2.0);
[INFO] [stdout]  30 +         let half_dt = dt / <T as RealCast>::from_f32(2.0);
[INFO] [stdout]     |
[INFO] [stdout]  30 -         let half_dt = dt / T::from_f32(2.0);
[INFO] [stdout]  30 +         let half_dt = dt / <T as real::real::Real>::from_f32(2.0);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> crates/aether_core/src/numerical_methods/integration/rk4.rs:31:32
[INFO] [stdout]     |
[INFO] [stdout]  31 |         let sixth_dt = dt / T::from_f32(6.0);
[INFO] [stdout]     |                                ^^^^^^^^ multiple `from_f32` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `RealCast`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:353:5
[INFO] [stdout]     |
[INFO] [stdout] 353 |     fn from_f32(x: f32) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: candidate #2 is defined in the trait `real::real::Real`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:29:5
[INFO] [stdout]     |
[INFO] [stdout]  29 |     fn from_f32(x: f32) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout]  31 -         let sixth_dt = dt / T::from_f32(6.0);
[INFO] [stdout]  31 +         let sixth_dt = dt / <T as RealCast>::from_f32(6.0);
[INFO] [stdout]     |
[INFO] [stdout]  31 -         let sixth_dt = dt / T::from_f32(6.0);
[INFO] [stdout]  31 +         let sixth_dt = dt / <T as real::real::Real>::from_f32(6.0);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> crates/aether_core/src/numerical_methods/integration/rk4.rs:41:36
[INFO] [stdout]     |
[INFO] [stdout]  41 |                     + k2.data * T::from_f32(2.0)
[INFO] [stdout]     |                                    ^^^^^^^^ multiple `from_f32` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `RealCast`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:353:5
[INFO] [stdout]     |
[INFO] [stdout] 353 |     fn from_f32(x: f32) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: candidate #2 is defined in the trait `real::real::Real`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:29:5
[INFO] [stdout]     |
[INFO] [stdout]  29 |     fn from_f32(x: f32) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout]  41 -                     + k2.data * T::from_f32(2.0)
[INFO] [stdout]  41 +                     + k2.data * <T as RealCast>::from_f32(2.0)
[INFO] [stdout]     |
[INFO] [stdout]  41 -                     + k2.data * T::from_f32(2.0)
[INFO] [stdout]  41 +                     + k2.data * <T as real::real::Real>::from_f32(2.0)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> crates/aether_core/src/numerical_methods/integration/rk4.rs:42:36
[INFO] [stdout]     |
[INFO] [stdout]  42 |                     + k3.data * T::from_f32(2.0)
[INFO] [stdout]     |                                    ^^^^^^^^ multiple `from_f32` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `RealCast`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:353:5
[INFO] [stdout]     |
[INFO] [stdout] 353 |     fn from_f32(x: f32) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: candidate #2 is defined in the trait `real::real::Real`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:29:5
[INFO] [stdout]     |
[INFO] [stdout]  29 |     fn from_f32(x: f32) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout]  42 -                     + k3.data * T::from_f32(2.0)
[INFO] [stdout]  42 +                     + k3.data * <T as RealCast>::from_f32(2.0)
[INFO] [stdout]     |
[INFO] [stdout]  42 -                     + k3.data * T::from_f32(2.0)
[INFO] [stdout]  42 +                     + k3.data * <T as real::real::Real>::from_f32(2.0)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> crates/aether_core/src/numerical_methods/integration/trapezoidal.rs:15:30
[INFO] [stdout]     |
[INFO] [stdout]  15 |         (*self + *last) * T::from_f32(0.5) * dt
[INFO] [stdout]     |                              ^^^^^^^^ multiple `from_f32` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `RealCast`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:353:5
[INFO] [stdout]     |
[INFO] [stdout] 353 |     fn from_f32(x: f32) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: candidate #2 is defined in the trait `real::real::Real`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:29:5
[INFO] [stdout]     |
[INFO] [stdout]  29 |     fn from_f32(x: f32) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout]  15 -         (*self + *last) * T::from_f32(0.5) * dt
[INFO] [stdout]  15 +         (*self + *last) * <T as RealCast>::from_f32(0.5) * dt
[INFO] [stdout]     |
[INFO] [stdout]  15 -         (*self + *last) * T::from_f32(0.5) * dt
[INFO] [stdout]  15 +         (*self + *last) * <T as real::real::Real>::from_f32(0.5) * dt
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> crates/aether_core/src/numerical_methods/integration/trapezoidal.rs:23:48
[INFO] [stdout]     |
[INFO] [stdout]  23 |             data: (self.data + last.data) * T::from_f32(0.5) * dt,
[INFO] [stdout]     |                                                ^^^^^^^^ multiple `from_f32` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `RealCast`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:353:5
[INFO] [stdout]     |
[INFO] [stdout] 353 |     fn from_f32(x: f32) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: candidate #2 is defined in the trait `real::real::Real`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:29:5
[INFO] [stdout]     |
[INFO] [stdout]  29 |     fn from_f32(x: f32) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout]  23 -             data: (self.data + last.data) * T::from_f32(0.5) * dt,
[INFO] [stdout]  23 +             data: (self.data + last.data) * <T as RealCast>::from_f32(0.5) * dt,
[INFO] [stdout]     |
[INFO] [stdout]  23 -             data: (self.data + last.data) * T::from_f32(0.5) * dt,
[INFO] [stdout]  23 +             data: (self.data + last.data) * <T as real::real::Real>::from_f32(0.5) * dt,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> crates/aether_core/src/reference_frame/itrf.rs:18:53
[INFO] [stdout]     |
[INFO] [stdout]  18 |             data: Vector::new([T::ZERO, T::ZERO, T::from_f64(7.2921150e-5)]),
[INFO] [stdout]     |                                                     ^^^^^^^^ multiple `from_f64` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `RealCast`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:354:5
[INFO] [stdout]     |
[INFO] [stdout] 354 |     fn from_f64(x: f64) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: candidate #2 is defined in the trait `real::real::Real`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:30:5
[INFO] [stdout]     |
[INFO] [stdout]  30 |     fn from_f64(x: f64) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout]  18 -             data: Vector::new([T::ZERO, T::ZERO, T::from_f64(7.2921150e-5)]),
[INFO] [stdout]  18 +             data: Vector::new([T::ZERO, T::ZERO, <T as RealCast>::from_f64(7.2921150e-5)]),
[INFO] [stdout]     |
[INFO] [stdout]  18 -             data: Vector::new([T::ZERO, T::ZERO, T::from_f64(7.2921150e-5)]),
[INFO] [stdout]  18 +             data: Vector::new([T::ZERO, T::ZERO, <T as real::real::Real>::from_f64(7.2921150e-5)]),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> crates/aether_core/src/reference_frame/itrf.rs:28:24
[INFO] [stdout]     |
[INFO] [stdout]  28 | ...   let omega = T::from_f64(7.2921150e-5); // Earth's rotation rate [rad/s] (ITRF is actually more complicated and comes from eph...
[INFO] [stdout]     |                      ^^^^^^^^ multiple `from_f64` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `RealCast`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:354:5
[INFO] [stdout]     |
[INFO] [stdout] 354 |     fn from_f64(x: f64) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: candidate #2 is defined in the trait `real::real::Real`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:30:5
[INFO] [stdout]     |
[INFO] [stdout]  30 |     fn from_f64(x: f64) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout]  28 -         let omega = T::from_f64(7.2921150e-5); // Earth's rotation rate [rad/s] (ITRF is actually more complicated and comes from ephermerides, more on that later...)
[INFO] [stdout]  28 +         let omega = <T as RealCast>::from_f64(7.2921150e-5); // Earth's rotation rate [rad/s] (ITRF is actually more complicated and comes from ephermerides, more on that later...)
[INFO] [stdout]     |
[INFO] [stdout]  28 -         let omega = T::from_f64(7.2921150e-5); // Earth's rotation rate [rad/s] (ITRF is actually more complicated and comes from ephermerides, more on that later...)
[INFO] [stdout]  28 +         let omega = <T as real::real::Real>::from_f64(7.2921150e-5); // Earth's rotation rate [rad/s] (ITRF is actually more complicated and comes from ephermerides, more on that later...)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> crates/aether_core/src/reference_frame/itrf.rs:30:38
[INFO] [stdout]     |
[INFO] [stdout]  30 |         let half_theta = dtheta * T::from_f32(0.5);
[INFO] [stdout]     |                                      ^^^^^^^^ multiple `from_f32` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `RealCast`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:353:5
[INFO] [stdout]     |
[INFO] [stdout] 353 |     fn from_f32(x: f32) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: candidate #2 is defined in the trait `real::real::Real`
[INFO] [stdout]    --> crates/aether_core/src/real/real.rs:29:5
[INFO] [stdout]     |
[INFO] [stdout]  29 |     fn from_f32(x: f32) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout]  30 -         let half_theta = dtheta * T::from_f32(0.5);
[INFO] [stdout]  30 +         let half_theta = dtheta * <T as RealCast>::from_f32(0.5);
[INFO] [stdout]     |
[INFO] [stdout]  30 -         let half_theta = dtheta * T::from_f32(0.5);
[INFO] [stdout]  30 +         let half_theta = dtheta * <T as real::real::Real>::from_f32(0.5);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::real::Real`
[INFO] [stdout]  --> crates/aether_core/src/attitude/tests/euler_tests.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     use crate::real::Real;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::real::Real`
[INFO] [stdout]  --> crates/aether_core/src/reference_frame/transforms.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::real::Real;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0034`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `aether_core` (lib test) due to 18 previous errors; 35 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "6da77a67e4c963d8b521a8ec28860f5091d061569eb05b7314a2dd0c91dd5213", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6da77a67e4c963d8b521a8ec28860f5091d061569eb05b7314a2dd0c91dd5213", kill_on_drop: false }`
[INFO] [stdout] 6da77a67e4c963d8b521a8ec28860f5091d061569eb05b7314a2dd0c91dd5213
