rust/src/libstd/sys
bors b298607864 Auto merge of #47956 - retep998:is-nibbles, r=BurntSushi
This is the ideal FileType on Windows. You may not like it, but this is what peak performance looks like.

Theoretically this would fix https://github.com/rust-lang/rust/issues/46484

The current iteration of this PR should not cause existing code to break, but instead merely improves handling around reparse points. Specifically...

* Reparse points are considered to be symbolic links if they have the name surrogate bit set. Name surrogates are reparse points that effectively act like symbolic links, redirecting you to a different directory/file. By checking for this bit instead of specific tags, we become much more general in our handling of reparse points, including those added by third parties.
* If something is a reparse point but does not have the name surrogate bit set, then we ignore the fact that it is a reparse point because it is actually a file or directory directly there, despite having additional handling by drivers due to the reparse point.
* For everything which is not a symbolic link (including non-surrogate reparse points) we report whether it is a directory or a file based on the presence of the directory attribute bit.
* Notably this still preserves invariant that when `is_symlink` returns `true`, both `is_dir` and `is_file` will return `false`. The potential for breakage was far too high.
* Adds an unstable `FileTypeExt` to allow users to determine whether a symbolic link is a directory or a file, since `FileType` by design is incapable of reporting this information.
2018-02-17 11:32:16 +00:00
..
cloudabi Use a range to identify SIGSEGV in stack guards 2018-01-31 11:41:29 -08:00
redox Use a range to identify SIGSEGV in stack guards 2018-01-31 11:41:29 -08:00
unix Use a range to identify SIGSEGV in stack guards 2018-01-31 11:41:29 -08:00
wasm Rollup merge of #47912 - cuviper:glibc-stack-guard, r=alexcrichton 2018-02-04 23:28:57 +08:00
windows Auto merge of #47956 - retep998:is-nibbles, r=BurntSushi 2018-02-17 11:32:16 +00:00
mod.rs Make the documentation build work on CloudABI. 2018-01-11 11:29:52 +01:00