- 12 2月, 2015 33 次提交
-
-
由 bors 提交于
PR #22012 followup: clean up vtable::check_object_cast by reusing `fresh_ty` (hat tip to nikomatsakis, who was the one who pointed out this simplification to the logic.)
-
由 bors 提交于
-
由 Alex Crichton 提交于
-
由 Alex Crichton 提交于
-
由 Alex Crichton 提交于
This flag seems to have erroneously been set to `true`.
-
由 Alex Crichton 提交于
-
由 Felix S. Klock II 提交于
(hat tip to nikomatsakis who was the one who pointed out this simplification to the logic.)
-
由 Alex Crichton 提交于
- DoubleEndedIterator - ExactSizeIterator - RandomAccessIterator
-
由 Alex Crichton 提交于
This commit is an implementation of [RFC 807][rfc] which adds a `std::net` module for basic neworking based on top of `std::io`. This module serves as a replacement for the `std::old_io::net` module and networking primitives in `old_io`. [rfc]: fillmein The major focus of this redesign is to cut back on the level of abstraction to the point that each of the networking types is just a bare socket. To this end functionality such as timeouts and cloning has been removed (although cloning can be done through `duplicate`, it may just yield an error). With this `net` module comes a new implementation of `SocketAddr` and `IpAddr`. This work is entirely based on #20785 and the only changes were to alter the in-memory representation to match the `libc`-expected variants and to move from public fields to accessors.
-
由 Alex Crichton 提交于
This commit is an implementation of [RFC 807][rfc] which adds a `std::net` module for basic neworking based on top of `std::io`. This module serves as a replacement for the `std::old_io::net` module and networking primitives in `old_io`. [rfc]: fillmein The major focus of this redesign is to cut back on the level of abstraction to the point that each of the networking types is just a bare socket. To this end functionality such as timeouts and cloning has been removed (although cloning can be done through `duplicate`, it may just yield an error). With this `net` module comes a new implementation of `SocketAddr` and `IpAddr`. This work is entirely based on #20785 and the only changes were to alter the in-memory representation to match the `libc`-expected variants and to move from public fields to accessors.
-
由 Alex Crichton 提交于
-
由 David Creswick 提交于
- DoubleEndedIterator - ExactSizeIterator - RandomAccessIterator
-
由 Alex Crichton 提交于
Conflicts: src/libsyntax/feature_gate.rs
-
由 Alex Crichton 提交于
This commit tweaks the interface of the `std::env` module to make it more ergonomic for common usage: * `env::var` was renamed to `env::var_os` * `env::var_string` was renamed to `env::var` * `env::args` was renamed to `env::args_os` * `env::args` was re-added as a panicking iterator over string values * `env::vars` was renamed to `env::vars_os` * `env::vars` was re-added as a panicking iterator over string values. This should make common usage (e.g. unicode values everywhere) more ergonomic as well as "the default". This is also a breaking change due to the differences of what's yielded from each of these functions, but migration should be fairly easy as the defaults operate over `String` which is a common type to use. [breaking-change]
-
由 Alex Crichton 提交于
Fixes issue #22174.
-
由 Alex Crichton 提交于
When projecting associate types for a trait's default methods, the trait itself was added to the predicate candidate list twice: one from parameter environment, the other from trait definition. Then the duplicates were deemed as code ambiguity and the compiler rejected the code. Simply checking and dropping the duplicates solves the issue. Closes #22036
-
由 Alex Crichton 提交于
This resulted in some very unexpected fallout such as empty llvm-ir, llvm-bc and asm in some cases. See #22183 for related info. r? @alexcrichton
-
由 Alex Crichton 提交于
OpenBSD doesn't have thread-local-storage support (yet). Permit to compile (and run) `check-stage1-crates` under OpenBSD.
-
由 Alex Crichton 提交于
Fixes #21062.
-
由 Alex Crichton 提交于
It doesn't have to be a literal memory allocation (ala malloc), e.g. it can be in static memory, so saying "allocated" is mildly misleading. Thanks to @mahkoh for pointing it out. r? @steveklabnik
-
由 Alex Crichton 提交于
It returns `false`, not `None`.
-
由 Alex Crichton 提交于
Given that this is entirely internal, this enhancement isn't going to be needed. And if it is, we'll add it. Closes #2741.
-
由 Alex Crichton 提交于
r? @alexcrichton
-
由 Alex Crichton 提交于
Fixes #22124
-
由 Alex Crichton 提交于
There are a number of holes that the stability lint did not previously cover, including: * Types * Bounds on type parameters on functions and impls * Where clauses * Imports * Patterns (structs and enums) These holes have all been fixed by overriding the `visit_path` function on the AST visitor instead of a few specialized cases. This change also necessitated a few stability changes: * The `collections::fmt` module is now stable (it was already supposed to be). * The `thread_local::imp::Key` type is now stable (it was already supposed to be). * The `std::rt::{begin_unwind, begin_unwind_fmt}` functions are now stable. These are required via the `panic!` macro. * The `std::old_io::stdio::{println, println_args}` functions are now stable. These are required by the `print!` and `println!` macros. * The `ops::{FnOnce, FnMut, Fn}` traits are now `#[stable]`. This is required to make bounds with these traits stable. Note that manual implementations of these traits are still gated by default, this stability only allows bounds such as `F: FnOnce()`. Closes #8962 Closes #16360 Closes #20327
-
由 Alex Crichton 提交于
The live code analysis only visited the function's body when visiting a method, and not the FnDecl and the generics, resulting in code to be incorrectly marked as unused when it only appeared in the generics, the arguments, or the return type, whereas the same code in non-method functions was correctly detected as used. Fixes #20343. Originally I just added a call to `walk_generics` and `walk_fndecl` alongside `walk_block` but then I noticed the `walk_method_helper` function did pretty much the same thing. The only difference is that it also calls `visit_mac`, but since this is not going to happen at this stage, I think it's ok. However let me know if this was not the right thing to do.
-
由 Alex Crichton 提交于
This renames the PrivateNoMangleFns lint to allow both to happen in a single pass, since they do roughly the same work. Closes #21856 Open questions: [ ]: Do the tests actually pass (I'm running make check and running out the door now) [ ]: Is the name of this lint ok. it seems to mostly be fine with [convention](https://github.com/rust-lang/rfcs/blob/cc53afbe5dea41e1f7d1c3dce71e013abe025211/text/0344-conventions-galore.md#lints) [ ]: I'm not super thrilled about the warning text r? @kmcallister (Shamelessly nominating because you were looking at my other ticket)
-
由 Alex Crichton 提交于
This commit tweaks the interface of the `std::env` module to make it more ergonomic for common usage: * `env::var` was renamed to `env::var_os` * `env::var_string` was renamed to `env::var` * `env::args` was renamed to `env::args_os` * `env::args` was re-added as a panicking iterator over string values * `env::vars` was renamed to `env::vars_os` * `env::vars` was re-added as a panicking iterator over string values. This should make common usage (e.g. unicode values everywhere) more ergonomic as well as "the default". This is also a breaking change due to the differences of what's yielded from each of these functions, but migration should be fairly easy as the defaults operate over `String` which is a common type to use. [breaking-change]
-
由 Alex Crichton 提交于
There are a number of holes that the stability lint did not previously cover, including: * Types * Bounds on type parameters on functions and impls * Where clauses * Imports * Patterns (structs and enums) These holes have all been fixed by overriding the `visit_path` function on the AST visitor instead of a few specialized cases. This change also necessitated a few stability changes: * The `collections::fmt` module is now stable (it was already supposed to be). * The `thread_local::imp::Key` type is now stable (it was already supposed to be). * The `std::rt::{begin_unwind, begin_unwind_fmt}` functions are now stable. These are required via the `panic!` macro. * The `std::old_io::stdio::{println, println_args}` functions are now stable. These are required by the `print!` and `println!` macros. * The `ops::{FnOnce, FnMut, Fn}` traits are now `#[stable]`. This is required to make bounds with these traits stable. Note that manual implementations of these traits are still gated by default, this stability only allows bounds such as `F: FnOnce()`. Additionally, the compiler now has special logic to ignore its own generated `__test` module for the `--test` harness in terms of stability. Closes #8962 Closes #16360 Closes #20327 [breaking-change]
-
由 GuillaumeGomez 提交于
-
由 bors 提交于
This is a resurrection and heavy revision/expansion of a PR that pcwalton did to resolve #8861. The most relevant, user-visible semantic change is this: #[unsafe_destructor] is gone. Instead, if a type expression for some value has a destructor, then any lifetimes referenced within that type expression must strictly outlive the scope of the value. See discussion on https://github.com/rust-lang/rfcs/pull/769
-
由 Simonas Kazlauskas 提交于
This resulted in some very unexpected fallout such as empty llvm-ir, llvm-bc and asm in some cases. See #22183 for related info.
-
由 Edward Wang 提交于
When projecting associate types for a trait's default methods, the trait itself was added to the predicate candidate list twice: one from parameter environment, the other from trait definition. Then the duplicates were deemed as code ambiguity and the compiler rejected the code. Simply checking and dropping the duplicates solves the issue. Closes #22036
-
- 11 2月, 2015 7 次提交
-
-
由 bors 提交于
Feature gate `box` patterns. Note that this adds a new feature gate, `box_patterns` specific to e.g. `let box i = ...`, while leaving `box` expressions (alone) still guarded via the preexisting `box_syntax`.
-
由 Felix S. Klock II 提交于
just say "experimental."
-
由 Felix S. Klock II 提交于
See RFC 320, "Non-zeroing dynamic drops." Fix #22173 [breaking-change]
-
由 Felix S. Klock II 提交于
It (1.) is invariant, (2.) must strictly outlive the arena itself, (3.) constrains the inputs to the arena so that their borrows must also strictly outlive the arena itself. This implies that, for now, one can no longer have cross-references between data allocated via the same `Arena` (even when the data is not subject to the Drop Check rule). Instead one must carry multiple `Arena` instances, or (more commonly), use one or more `TypedArena` instances with enums encoding the different variants of allocated data.
-
由 Felix S. Klock II 提交于
Some compile-fail tests illustrated cases to be rejected by dropck, including ones that check cyclic data cases designed to exposed bugs if they are actually tricked into running by an unsound analysis. E.g. these exposed bugs in earlier broken ways of handling `Vec<T>`. (Note that all the uses of `unsafe_destructor` are just placating the simple analysis used for that feature, which will eventually go away once we have put the dropck through its paces.)
-
由 Felix S. Klock II 提交于
includes regression tests discovered during bootstrapping and tests of cyclic structure that currently pass and are expected to continue passing under the dropck rule. (Note that all the uses of `unsafe_destructor` are just placating the simple analysis used for that feature, which will eventually go away once we have put the dropck through its paces.)
-
由 Felix S. Klock II 提交于
-