You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We now get via cap-primitives this in 1.66.0-nightly (4a14677 2022-09-23):
error[E0277]: the trait bound file_type::FileType: std::sealed::Sealed is not satisfied
<snip>
|
134 | impl std::os::windows::fs::FileTypeExt for FileType {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait std::sealed::Sealed is not implemented for file_type::FileType
|
<snip>
error: could not compile cap-primitives due to previous error
warning: build failed, waiting for other jobs to finish...
error: failed to compile lunatic-runtime v0.10.0, intermediate artifacts can be found at <snip>
Now this was probably very intentional but
Sealed
So Sealed acts as some kind of guard for the ecosystem not to mess with it ?
mod sealed {/// This trait being unreachable from outside the crate/// prevents outside implementations of our extension traits./// This allows adding more trait methods in the future.#[unstable(feature = "sealed", issue = "none")]pubtraitSealed{}}
Related earlier changes
I see the below changes re: stabilisation related to feature windows_file_type_ext
/// Windows-specific extensions for [`FileType`]. /// /// This corresponds to [`std::os::windows::fs::FileTypeExt`]. #[cfg(all(windows, windows_file_type_ext))]pubtraitFileTypeExt{/// Returns `true` if this file type is a symbolic link that is also a directory. fnis_symlink_dir(&self) -> bool;/// Returns `true` if this file type is a symbolic link that is also a file. fnis_symlink_file(&self) -> bool;}#[cfg(all(windows, windows_file_type_ext))]implFileTypeExtforFileType{#[inline]fnis_symlink_dir(&self) -> bool{self.0 == Inner::Ext(ImplFileTypeExt::symlink_dir())}#[inline]fnis_symlink_file(&self) -> bool{self.0 == Inner::Ext(ImplFileTypeExt::symlink_file())}}
git b
0a96e089bade library/std/src/sys/windows/ext/fs.rs (Prabakaran Kumaresshan 2020-08-16 22:28:45 +0530 503) /// Windows-specific extensions to [`fs::FileType`].
182d99cfd1a5 src/libstd/sys/windows/ext/fs.rs (Dylan MacKenzie 2018-04-09 17:44:28 -0700 504) ///
182d99cfd1a5 src/libstd/sys/windows/ext/fs.rs (Dylan MacKenzie 2018-04-09 17:44:28 -0700 505) /// On Windows, a symbolic link knows whether it is a file or directory.
e374c911af9a library/std/src/os/windows/fs.rs (Josh Triplett 2022-06-27 09:41:12 -0700 506) #[stable(feature = "windows_file_type_ext", since = "1.64.0")]
a4cb0b90c049 library/std/src/os/windows/fs.rs (Josh Triplett 2022-06-27 09:57:56 -0700 507) pub trait FileTypeExt: Sealed {
99ed06eb8864 src/libstd/sys/windows/ext/fs.rs (Alexander Regueiro 2019-02-09 22:16:58 +0000 508) /// Returns `true` if this file type is a symbolic link that is also a directory.
e374c911af9a library/std/src/os/windows/fs.rs (Josh Triplett 2022-06-27 09:41:12 -0700 509) #[stable(feature = "windows_file_type_ext", since = "1.64.0")]
9269e83b37e8 src/libstd/sys/windows/ext/fs.rs (Peter Atashian 2018-02-11 13:40:46 -0500 510) fn is_symlink_dir(&self) -> bool;
99ed06eb8864 src/libstd/sys/windows/ext/fs.rs (Alexander Regueiro 2019-02-09 22:16:58 +0000 511) /// Returns `true` if this file type is a symbolic link that is also a file.
e374c911af9a library/std/src/os/windows/fs.rs (Josh Triplett 2022-06-27 09:41:12 -0700 512) #[stable(feature = "windows_file_type_ext", since = "1.64.0")]
9269e83b37e8 src/libstd/sys/windows/ext/fs.rs (Peter Atashian 2018-02-11 13:40:46 -0500 513) fn is_symlink_file(&self) -> bool;
9269e83b37e8 src/libstd/sys/windows/ext/fs.rs (Peter Atashian 2018-02-11 13:40:46 -0500 514) }
9269e83b37e8 src/libstd/sys/windows/ext/fs.rs (Peter Atashian 2018-02-11 13:40:46 -0500 515)
a4cb0b90c049 library/std/src/os/windows/fs.rs (Josh Triplett 2022-06-27 09:57:56 -0700 516) #[stable(feature = "windows_file_type_ext", since = "1.64.0")]
a4cb0b90c049 library/std/src/os/windows/fs.rs (Josh Triplett 2022-06-27 09:57:56 -0700 517) impl Sealed for fs::FileType {}
a4cb0b90c049 library/std/src/os/windows/fs.rs (Josh Triplett 2022-06-27 09:57:56 -0700 518)
e374c911af9a library/std/src/os/windows/fs.rs (Josh Triplett 2022-06-27 09:41:12 -0700 519) #[stable(feature = "windows_file_type_ext", since = "1.64.0")]
9269e83b37e8 src/libstd/sys/windows/ext/fs.rs (Peter Atashian 2018-02-11 13:40:46 -0500 520) impl FileTypeExt for fs::FileType {
c34fbfaad38c src/libstd/sys/windows/ext/fs.rs (David Tolnay 2019-11-27 10:28:39 -0800 521) fn is_symlink_dir(&self) -> bool {
c34fbfaad38c src/libstd/sys/windows/ext/fs.rs (David Tolnay 2019-11-27 10:28:39 -0800 522) self.as_inner().is_symlink_dir()
c34fbfaad38c src/libstd/sys/windows/ext/fs.rs (David Tolnay 2019-11-27 10:28:39 -0800 523) }
c34fbfaad38c src/libstd/sys/windows/ext/fs.rs (David Tolnay 2019-11-27 10:28:39 -0800 524) fn is_symlink_file(&self) -> bool {
c34fbfaad38c src/libstd/sys/windows/ext/fs.rs (David Tolnay 2019-11-27 10:28:39 -0800 525) self.as_inner().is_symlink_file()
c34fbfaad38c src/libstd/sys/windows/ext/fs.rs (David Tolnay 2019-11-27 10:28:39 -0800 526) }
9269e83b37e8 src/libstd/sys/windows/ext/fs.rs (Peter Atashian 2018-02-11 13:40:46 -0500 527) }
I'll see what wasmtime can provide to support 0.40 users. The sealed is working as intended - wasmtime was relying on unstable feature so no issue here.
Uh oh!
There was an error while loading. Please reload this page.
EDIT: So Sealing happened via 2nd commit on: #98583 - which I had originally traced down here but didn't have PR ref
Unknowns / TODO
Note: I can't find
windows_file_type_ext
feature from unstable book or it's tracking issue ?So the Sealed trait was designed to prevent people rolling own trait impl's ?
I suspect that cap-primitives may need to deal with the Sealed trait instead of rolling own trait / impl like it's done now ?
But I think that may be troublematic.. going by guessing what was intended in
cap-primitives
Don't know yet enough about the
sealed
feature (yet) as it doesn't seem to have much docs around and I need to dig deeper on this.Issue
On Windows builds that rely on wasi-common on which we rely on at lunatic:
We now get via
cap-primitives
this in 1.66.0-nightly (4a14677 2022-09-23):Now this was probably very intentional but
Sealed
So Sealed acts as some kind of guard for the ecosystem not to mess with it ?
Related earlier changes
I see the below changes re: stabilisation related to feature
windows_file_type_ext
commits a4cb0b9 and e374c91
wasi/cap-primitives Related
This works okay in OSX, Linux but Windows builds are now broken with this where the error comes from:
cap-primitives/src/fs/file_type.rs - https://docs.rs/cap-primitives/latest/src/cap_primitives/fs/file_type.rs.html#125-147
git b
Refs
https://docs.rs/cap-primitives/latest/src/cap_primitives/fs/file_type.rs.html#125-147
https://github.com/bytecodealliance/cap-std
https://doc.rust-lang.org/std/os/windows/fs/trait.FileTypeExt.html
https://stdrs.dev/nightly/x86_64-unknown-linux-gnu/std/sealed/trait.Sealed.html
https://stdrs.dev/nightly/x86_64-unknown-linux-gnu/std/sealed/trait.Sealed.html
lunatic-solutions/lunatic#136
The text was updated successfully, but these errors were encountered: