Rust: Rust se plaint du "type privé dans l'interface publique" même si le type et l'interface sont tous deux des alias.

Créé le 16 juin 2016  ·  1Commentaire  ·  Source: rust-lang/rust

use core::nonzero::NonZero;
use std::os::raw::c_void;

type Foo = NonZero<*const c_void>;

// warning: private type in public interface
pub type Bar = Foo;
// warning: private type in public interface
pub type Baz = Foo;

J'ai aussi essayé pub use ing NonZero et c_void mais cela n'a pas aidé, donc ce ne sont pas les types eux-mêmes qui posent problème. Il semble bizarre que Rust se plaigne de ce comportement lorsque, par exemple, les messages d'erreur ne connaissent pas les alias. Même s'ils l'étaient, il serait trivial de résoudre les alias privés en types publics auxquels ils sont définis, donc je ne vois pas l'utilité de l'interdire.

Mes rustc --version --verbose :

rustc 1.11.0-nightly (6b4511755 2016-06-14)
binary: rustc
commit-hash: 6b4511755cfe63a46f2db8c72145e07f94911c08
commit-date: 2016-06-14
host: x86_64-unknown-linux-gnu
release: 1.11.0-nightly

Commentaire le plus utile

Il y a un problème à ce sujet (https://github.com/rust-lang/rust/issues/30503) et un PR corrigeant cela (https://github.com/rust-lang/rust/pull/34193).
Cela pourrait être mis en œuvre il y a plus de six mois, c'est juste que la prise de décision est parfois très lente pour les fonctionnalités secondaires non prioritaires.

>Tous les commentaires

Il y a un problème à ce sujet (https://github.com/rust-lang/rust/issues/30503) et un PR corrigeant cela (https://github.com/rust-lang/rust/pull/34193).
Cela pourrait être mis en œuvre il y a plus de six mois, c'est juste que la prise de décision est parfois très lente pour les fonctionnalités secondaires non prioritaires.

Cette page vous a été utile?
0 / 5 - 0 notes