linksplatform / linksplatform/doublets-rs

error[E0658]: `impl Trait` in associated types is unstable (on latest rust nightly and git dependency)

Open
#19 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
Rust
Stars
6
Forks
0
Avg merge
1h 37m
Merged PRs (30d)
1

Description

![IMG_2832](https://github.com/linksplatform/doublets-rs/assets/1431904/b8e0307d-6e77-4a31-81a3-8dec114b9c6a)

```
gitpod /workspace/Solver (main) $ rustup update nightly
info: syncing channel updates for 'nightly-x86_64-unknown-linux-gnu'

nightly-x86_64-unknown-linux-gnu unchanged - rustc 1.81.0-nightly (f21554f7f 2024-06-08)

info: checking for self-update
gitpod /workspace/Solver (main) $ cargo add doublets
Updating git repository `https://github.com/linksplatform/doublets-rs`
Adding doublets (git) to dependencies.
gitpod /workspace/Solver (main) $ cargo +nightly run
Compiling delegate v0.7.0
Compiling platform-data v0.1.0-beta.3 (https://github.com/linksplatform/doublets-rs#5522d91c)
error[E0658]: `impl Trait` in associated types is unstable
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/point.rs:52:21
|
52 | type IntoIter = impl Iterator;
| ^^^^^^^^^^^^^^^^^^^^^^^
|
= note: see issue #63063 for more information
= help: add `#![feature(impl_trait_in_assoc_type)]` to the crate attributes to enable
= note: this compiler was built on 2024-06-08; consider upgrading it if it is out of date

error[E0635]: unknown feature `const_deref`
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/lib.rs:8:12
|
8 | #![feature(const_deref)]
| ^^^^^^^^^^^

error[E0635]: unknown feature `const_result_drop`
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/lib.rs:5:12
|
5 | #![feature(const_result_drop)]
| ^^^^^^^^^^^^^^^^^

error[E0635]: unknown feature `const_convert`
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/lib.rs:7:12
|
7 | #![feature(const_convert)]
| ^^^^^^^^^^^^^

error: `~const` can only be applied to `#[const_trait]` traits
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/converters.rs:9:47
|
9 | pub const fn convert(&self, source: T) -> T {
| ^^^^^^^^

error: `~const` can only be applied to `#[const_trait]` traits
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/converters.rs:9:65
|
9 | pub const fn convert(&self, source: T) -> T {
| ^^^

error: `~const` can only be applied to `#[const_trait]` traits
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/converters.rs:18:47
|
18 | pub const fn convert(&self, source: T) -> T {
| ^^^^^^^^

error: `~const` can only be applied to `#[const_trait]` traits
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/converters.rs:18:65
|
18 | pub const fn convert(&self, source: T) -> T {
| ^^^

error: `~const` can only be applied to `#[const_trait]` traits
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/hybrid.rs:17:19
|
17 | T: ~const Div,
| ^^^^^^^^^^^^^^^

error: `~const` can only be applied to `#[const_trait]` traits
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/hybrid.rs:24:19
|
24 | T: ~const Integral + ~const Sub,
| ^^^^^^^^

error: `~const` can only be applied to `#[const_trait]` traits
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/hybrid.rs:24:37
|
24 | T: ~const Integral + ~const Sub,
| ^^^

error: `~const` can only be applied to `#[const_trait]` traits
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/hybrid.rs:37:19
|
37 | T: ~const Integral + ~const Sub,
| ^^^^^^^^

error: `~const` can only be applied to `#[const_trait]` traits
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/hybrid.rs:37:37
|
37 | T: ~const Integral + ~const Sub,
| ^^^

error: `~const` can only be applied to `#[const_trait]` traits
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/hybrid.rs:44:19
|
44 | T: ~const Default + ~const PartialEq,
| ^^^^^^^

error: `~const` can only be applied to `#[const_trait]` traits
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/hybrid.rs:51:19
|
51 | T: ~const Div + ~const PartialOrd,
| ^^^

error: `~const` can only be applied to `#[const_trait]` traits
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/hybrid.rs:51:32
|
51 | T: ~const Div + ~const PartialOrd,
| ^^^^^^^^^^

error: `~const` can only be applied to `#[const_trait]` traits
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/hybrid.rs:58:19
|
58 | T: ~const Div + ~const PartialOrd + ~const PartialEq,
| ^^^

error: `~const` can only be applied to `#[const_trait]` traits
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/hybrid.rs:58:32
|
58 | T: ~const Div + ~const PartialOrd + ~const PartialEq,
| ^^^^^^^^^^

error: `~const` can only be applied to `#[const_trait]` traits
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/hybrid.rs:65:19
|
65 | T: ~const Integral,
| ^^^^^^^^

error[E0015]: cannot call non-const fn `::funty` in constant functions
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/hybrid.rs:19:18
|
19 | T::MAX / T::funty(2)
| ^^^^^^^^^^^
|
= note: calls in constant functions are limited to constant functions, tuple structs and tuple variants
help: add `#![feature(effects)]` to the crate attributes to enable
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/lib.rs:11:1
|
11 + #![feature(effects)]
|

error[E0015]: cannot call non-const operator in constant functions
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/hybrid.rs:19:9
|
19 | T::MAX / T::funty(2)
| ^^^^^^^^^^^^^^^^^^^^
|
= note: calls in constant functions are limited to constant functions, tuple structs and tuple variants
help: add `#![feature(effects)]` to the crate attributes to enable
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/lib.rs:11:1
|
11 + #![feature(effects)]
|

error[E0015]: cannot call non-const operator in constant functions
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/hybrid.rs:39:9
|
39 | (T::MAX - value).wrapping_add(T::funty(1))
| ^^^^^^^^^^^^^^^^
|
= note: calls in constant functions are limited to constant functions, tuple structs and tuple variants
help: add `#![feature(effects)]` to the crate attributes to enable
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/lib.rs:11:1
|
11 + #![feature(effects)]
|

error[E0015]: cannot call non-const fn `::funty` in constant functions
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/hybrid.rs:39:39
|
39 | (T::MAX - value).wrapping_add(T::funty(1))
| ^^^^^^^^^^^
|
= note: calls in constant functions are limited to constant functions, tuple structs and tuple variants
help: add `#![feature(effects)]` to the crate attributes to enable
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/lib.rs:11:1
|
11 + #![feature(effects)]
|

error[E0015]: cannot call non-const fn `::wrapping_add` in constant functions
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/hybrid.rs:39:26
|
39 | (T::MAX - value).wrapping_add(T::funty(1))
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: calls in constant functions are limited to constant functions, tuple structs and tuple variants
help: add `#![feature(effects)]` to the crate attributes to enable
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/lib.rs:11:1
|
11 + #![feature(effects)]
|

error[E0015]: cannot call non-const fn `::funty` in constant functions
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/hybrid.rs:46:23
|
46 | self.value == T::funty(0)
| ^^^^^^^^^^^
|
= note: calls in constant functions are limited to constant functions, tuple structs and tuple variants
help: add `#![feature(effects)]` to the crate attributes to enable
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/lib.rs:11:1
|
11 + #![feature(effects)]
|

error[E0015]: cannot call non-const operator in constant functions
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/hybrid.rs:46:9
|
46 | self.value == T::funty(0)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: calls in constant functions are limited to constant functions, tuple structs and tuple variants
help: add `#![feature(effects)]` to the crate attributes to enable
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/lib.rs:11:1
|
11 + #![feature(effects)]
|

error[E0015]: cannot call non-const operator in constant functions
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/hybrid.rs:53:9
|
53 | self.value < Self::half() // || self.value == T::default()
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: calls in constant functions are limited to constant functions, tuple structs and tuple variants
help: add `#![feature(effects)]` to the crate attributes to enable
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/lib.rs:11:1
|
11 + #![feature(effects)]
|

error[E0015]: cannot call non-const fn `::funty` in constant functions
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/hybrid.rs:60:46
|
60 | !self.is_internal() || self.value == T::funty(0)
| ^^^^^^^^^^^
|
= note: calls in constant functions are limited to constant functions, tuple structs and tuple variants
help: add `#![feature(effects)]` to the crate attributes to enable
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/lib.rs:11:1
|
11 + #![feature(effects)]
|

error[E0015]: cannot call non-const operator in constant functions
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/hybrid.rs:60:32
|
60 | !self.is_internal() || self.value == T::funty(0)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: calls in constant functions are limited to constant functions, tuple structs and tuple variants
help: add `#![feature(effects)]` to the crate attributes to enable
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/lib.rs:11:1
|
11 + #![feature(effects)]
|

error[E0015]: cannot call non-const fn `::funty` in constant functions
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/hybrid.rs:67:33
|
67 | self.value.wrapping_add(T::funty(1)).wrapping_add(T::MAX)
| ^^^^^^^^^^^
|
= note: calls in constant functions are limited to constant functions, tuple structs and tuple variants
help: add `#![feature(effects)]` to the crate attributes to enable
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/lib.rs:11:1
|
11 + #![feature(effects)]
|

error[E0015]: cannot call non-const fn `::wrapping_add` in constant functions
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/hybrid.rs:67:20
|
67 | self.value.wrapping_add(T::funty(1)).wrapping_add(T::MAX)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: calls in constant functions are limited to constant functions, tuple structs and tuple variants
help: add `#![feature(effects)]` to the crate attributes to enable
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/lib.rs:11:1
|
11 + #![feature(effects)]
|

error[E0015]: cannot call non-const fn `::wrapping_add` in constant functions
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/hybrid.rs:67:46
|
67 | self.value.wrapping_add(T::funty(1)).wrapping_add(T::MAX)
| ^^^^^^^^^^^^^^^^^^^^
|
= note: calls in constant functions are limited to constant functions, tuple structs and tuple variants
help: add `#![feature(effects)]` to the crate attributes to enable
--> /workspace/.cargo/git/checkouts/doublets-rs-3835f06948971044/5522d91/dev-deps/data-rs/src/lib.rs:11:1
|
11 + #![feature(effects)]
|

Some errors have detailed explanations: E0015, E0635, E0658.
For more information about an error, try `rustc --explain E0015`.
error: could not compile `platform-data` (lib) due to 32 previous errors
warning: build failed, waiting for other jobs to finish...
gitpod /workspace/Solver (main) $
```

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the failure with `cargo +nightly run`, then inspect the reported files under `dev-deps/data-rs`: `point.rs`, `lib.rs`, `converters.rs`, and `hybrid.rs`. Determine the compatibility issue behind the unstable and unknown-feature errors; done means the git dependency builds successfully with the reported nightly toolchain.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
build-system
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.