Skip to content

published futures-core 0.3.1 fails doctest due to stripped path dependency #2025

@kentfredric

Description

@kentfredric

Operating as a Linux Vendor, its desirable for many, many reasons to be able to execute tests on published crates. ( For instance, when publishing a new rust version as a vendor, being able to re-execute all the tests for everything currently packaged to identify new compile errors, or functional regressions, helps make sure that all vendorized crates will be error-free at the time of user consumption )

But anything relying on path dependencies pretty much screws this.

See also:

Which are all closed, and sill relevant, but I can't actually re-open a bug.

The filer of those bugs does appear to be potentially a fedora rep, confirming that multiple vendors have this as a complaint.

Though our obligation is really only to make sure you know there's an issue, and know we're applying nasty hacks to get around it, and all such hacks are always better to be fixed upstream ( In part because it means a given vendor freshly trying to package this doesn't have to stumble upon the problem and DIY their own hack around it, and ensures closer vendor tracking of crates vs upstream )

As a side note: A dozen or so crates having the same repository and the same bug tracker seems very sub-optimal, because its hard to directly map crate patches to git patches and vice-versa, and hard to find issues pertaining to a specific crate when there are a dozen crates using the same issue tracker, which github seems very sub-optimal for.

    Finished test [unoptimized + debuginfo] target(s) in 0.01s
     Running target/debug/deps/futures_core-a2b3d337c4676fee

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

   Doc-tests futures_core

running 2 tests
test src/task/__internal/atomic_waker.rs - task::__internal::atomic_waker::AtomicWaker (line 38) ... FAILED
test src/task/__internal/atomic_waker.rs - task::__internal::atomic_waker::AtomicWaker::register (line 233) ... FAILED

failures:

---- src/task/__internal/atomic_waker.rs - task::__internal::atomic_waker::AtomicWaker (line 38) stdout ----
error[E0433]: failed to resolve: use of undeclared type or module `futures`
 --> src/task/__internal/atomic_waker.rs:39:5
  |
4 | use futures::future::Future;
  |     ^^^^^^^ use of undeclared type or module `futures`

error[E0433]: failed to resolve: use of undeclared type or module `futures`
 --> src/task/__internal/atomic_waker.rs:40:5
  |
5 | use futures::task::{Context, Poll, AtomicWaker};
  |     ^^^^^^^ use of undeclared type or module `futures`

error[E0433]: failed to resolve: use of undeclared type or module `AtomicWaker`
  --> src/task/__internal/atomic_waker.rs:57:20
   |
22 |             waker: AtomicWaker::new(),
   |                    ^^^^^^^^^^^ use of undeclared type or module `AtomicWaker`

error[E0433]: failed to resolve: use of undeclared type or module `Poll`
  --> src/task/__internal/atomic_waker.rs:74:20
   |
39 |             return Poll::Ready(());
   |                    ^^^^ use of undeclared type or module `Poll`

error[E0433]: failed to resolve: use of undeclared type or module `Poll`
  --> src/task/__internal/atomic_waker.rs:82:13
   |
47 |             Poll::Ready(())
   |             ^^^^ use of undeclared type or module `Poll`

error[E0433]: failed to resolve: use of undeclared type or module `Poll`
  --> src/task/__internal/atomic_waker.rs:84:13
   |
49 |             Poll::Pending
   |             ^^^^ use of undeclared type or module `Poll`

error[E0412]: cannot find type `AtomicWaker` in this scope
  --> src/task/__internal/atomic_waker.rs:47:12
   |
12 |     waker: AtomicWaker,
   |            ^^^^^^^^^^^ not found in this scope
   |
help: possible candidate is found in another module, you can import it into scope
   |
3  | use futures_core::task::__internal::AtomicWaker;
   |

error[E0405]: cannot find trait `Future` in this scope
  --> src/task/__internal/atomic_waker.rs:68:6
   |
33 | impl Future for Flag {
   |      ^^^^^^ not found in this scope
   |
help: possible candidates are found in other modules, you can import them into scope
   |
3  | use core::future::Future;
   |
3  | use futures_core::Future;
   |
3  | use futures_core::core_reexport::future::Future;
   |
3  | use futures_core::future::Future;
   |
     and 1 other candidate

error[E0412]: cannot find type `Context` in this scope
  --> src/task/__internal/atomic_waker.rs:71:44
   |
36 |     fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<()> {
   |                                            ^^^^^^^ not found in this scope
   |
help: possible candidates are found in other modules, you can import them into scope
   |
3  | use core::task::Context;
   |
3  | use futures_core::core_reexport::task::Context;
   |
3  | use futures_core::task::Context;
   |
3  | use std::task::Context;
   |

error[E0412]: cannot find type `Poll` in this scope
  --> src/task/__internal/atomic_waker.rs:71:60
   |
36 |     fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<()> {
   |                                                            ^^^^ not found in this scope
   |
help: possible candidates are found in other modules, you can import them into scope
   |
3  | use core::task::Poll;
   |
3  | use futures_core::core_reexport::task::Poll;
   |
3  | use futures_core::task::Poll;
   |
3  | use std::task::Poll;
   |

error: aborting due to 10 previous errors

Some errors have detailed explanations: E0405, E0412, E0433.
For more information about an error, try `rustc --explain E0405`.
Couldn't compile the test.
---- src/task/__internal/atomic_waker.rs - task::__internal::atomic_waker::AtomicWaker::register (line 233) stdout ----
error[E0433]: failed to resolve: use of undeclared type or module `futures`
 --> src/task/__internal/atomic_waker.rs:234:5
  |
4 | use futures::future::Future;
  |     ^^^^^^^ use of undeclared type or module `futures`

error[E0433]: failed to resolve: use of undeclared type or module `futures`
 --> src/task/__internal/atomic_waker.rs:235:5
  |
5 | use futures::task::{Context, Poll, AtomicWaker};
  |     ^^^^^^^ use of undeclared type or module `futures`

error[E0433]: failed to resolve: use of undeclared type or module `Poll`
  --> src/task/__internal/atomic_waker.rs:254:13
   |
24 |             Poll::Ready(())
   |             ^^^^ use of undeclared type or module `Poll`

error[E0433]: failed to resolve: use of undeclared type or module `Poll`
  --> src/task/__internal/atomic_waker.rs:256:13
   |
26 |             Poll::Pending
   |             ^^^^ use of undeclared type or module `Poll`

error[E0412]: cannot find type `AtomicWaker` in this scope
  --> src/task/__internal/atomic_waker.rs:241:12
   |
11 |     waker: AtomicWaker,
   |            ^^^^^^^^^^^ not found in this scope
   |
help: possible candidate is found in another module, you can import it into scope
   |
3  | use futures_core::task::__internal::AtomicWaker;
   |

error[E0405]: cannot find trait `Future` in this scope
  --> src/task/__internal/atomic_waker.rs:245:6
   |
15 | impl Future for Flag {
   |      ^^^^^^ not found in this scope
   |
help: possible candidates are found in other modules, you can import them into scope
   |
3  | use core::future::Future;
   |
3  | use futures_core::Future;
   |
3  | use futures_core::core_reexport::future::Future;
   |
3  | use futures_core::future::Future;
   |
     and 1 other candidate

error[E0412]: cannot find type `Context` in this scope
  --> src/task/__internal/atomic_waker.rs:248:44
   |
18 |     fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<()> {
   |                                            ^^^^^^^ not found in this scope
   |
help: possible candidates are found in other modules, you can import them into scope
   |
3  | use core::task::Context;
   |
3  | use futures_core::core_reexport::task::Context;
   |
3  | use futures_core::task::Context;
   |
3  | use std::task::Context;
   |

error[E0412]: cannot find type `Poll` in this scope
  --> src/task/__internal/atomic_waker.rs:248:60
   |
18 |     fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<()> {
   |                                                            ^^^^ not found in this scope
   |
help: possible candidates are found in other modules, you can import them into scope
   |
3  | use core::task::Poll;
   |
3  | use futures_core::core_reexport::task::Poll;
   |
3  | use futures_core::task::Poll;
   |
3  | use std::task::Poll;
   |

error: aborting due to 8 previous errors

Some errors have detailed explanations: E0405, E0412, E0433.
For more information about an error, try `rustc --explain E0405`.
Couldn't compile the test.

failures:
    src/task/__internal/atomic_waker.rs - task::__internal::atomic_waker::AtomicWaker (line 38)
    src/task/__internal/atomic_waker.rs - task::__internal::atomic_waker::AtomicWaker::register (line 233)

test result: FAILED. 0 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out

error: test failed, to rerun pass '--doc'

Metadata

Metadata

Assignees

No one assigned

    Labels

    S-blockedStatus: Blocked on something else

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions