Open taiheioki opened 1 year ago
For what it's worth, this does compile with the new trait solver (-Ztrait-solver=next
).
@compiler-errors
Cannot find the trait-solver flag in nightly.
Available unstable (nightly-only) flags:
-Z allow-features -- Allow *only* the listed unstable features
-Z avoid-dev-deps -- Avoid installing dev-dependencies if possible
-Z binary-dep-depinfo -- Track changes to dependency artifacts
-Z bindeps -- Allow Cargo packages to depend on bin, cdylib, and staticlib crates, and use the artifacts built by those crates
-Z build-std -- Enable Cargo to compile the standard library itself as part of a crate graph compilation
-Z build-std-features -- Configure features enabled for the standard library itself when building the standard library
-Z check-cfg -- Specify scope of compile-time checking of `cfg` names/values
-Z codegen-backend -- Enable the `codegen-backend` option in profiles in .cargo/config.toml file
-Z config-include -- Enable the `include` key in config files
-Z credential-process -- Add a config setting to fetch registry authentication tokens by calling an external process
-Z direct-minimal-versions -- Resolve minimal dependency versions instead of maximum (direct dependencies only)
-Z doctest-xcompile -- Compile and run doctests for non-host target using runner config
-Z dual-proc-macros -- Build proc-macros for both the host and the target
-Z gitoxide -- Use gitoxide for the given git interactions, or all of them if no argument is given
-Z host-config -- Enable the [host] section in the .cargo/config.toml file
-Z lints -- Pass `[lints]` to the linting tools
-Z minimal-versions -- Resolve minimal dependency versions instead of maximum
-Z msrv-policy -- Enable rust-version aware policy within cargo
-Z mtime-on-use -- Configure Cargo to update the mtime of used files
-Z no-index-update -- Do not update the registry index even if the cache is outdated
-Z panic-abort-tests -- Enable support to run tests with -Cpanic=abort
-Z profile-rustflags -- Enable the `rustflags` option in profiles in .cargo/config.toml file
-Z publish-timeout -- Enable the `publish.timeout` key in .cargo/config.toml file
-Z registry-auth -- Authentication for alternative registries, and generate registry authentication tokens using asymmetric cryptography
-Z rustdoc-map -- Allow passing external documentation mappings to rustdoc
-Z rustdoc-scrape-examples -- Allows Rustdoc to scrape code examples from reverse-dependencies
-Z script -- Enable support for single-file, `.rs` packages
-Z target-applies-to-host -- Enable the `target-applies-to-host` key in the .cargo/config.toml file
-Z unstable-options -- Allow the usage of unstable options
Run with 'cargo -Z [FLAG] [COMMAND]'
@npuichigo: Those are cargo's flags, but also I don't recommend using the new trait solver yet. It will probably cause you a lot more problems in other code.
I tried this code (playground):
I think this code should compile. However, I got the following compile error:
Changing
A(Add::add(self, rhs.0))
toA(self + rhs.0)
orA(Add::<T>::add(self, rhs.0))
results in a successful compilation. Maybe related to https://github.com/rust-lang/rust/issues/39959?Meta
rustc --version --verbose
: