- 01 7月, 2015 1 次提交
-
-
由 Mathieu David 提交于
In js from the docs, change keyboard eventlistener to be compatible with non-english keyboard layouts. Fixes #26016 Fixes #16572
-
- 30 6月, 2015 15 次提交
-
-
由 bors 提交于
This fixes two false positives for the unconditional recursion lint, when functions use themselves (or almost-themselves) internally, without actually being recursive. ````rust fn main() { let _ = main; } ``` ```rust trait Bar { fn method<T: Bar>(&self, x: &T) { x.method(x) } } ```
-
由 Ariel Ben-Yehuda 提交于
-
由 Ariel Ben-Yehuda 提交于
No, it didn't show up in my profiler. It still needs to die.
-
由 Huon Wilson 提交于
This catches the case when a trait defines a default method that calls itself, but on a type that isn't necessarily `Self`, e.g. there's no reason that `T = Self` in the following, so the call isn't necessarily recursive (`T` may override the call). trait Bar { fn method<T: Bar>(&self, x: &T) { x.method(x) } } Fixes #26333.
-
由 Huon Wilson 提交于
Specifically, just mentioning the function name as a value is fine, as long as it isn't called, e.g. `fn main() { let _ = main; }`. Closes #21705.
-
由 Ariel Ben-Yehuda 提交于
After the last @dinosaur went extinct, the check became redundant with type_needs_drop, except for its bugginess. Fixes #26655.
-
由 Ariel Ben-Yehuda 提交于
This merges accumulate_regions_in_type with ty_fold::collect_regions. Fixes #26638
-
由 bors 提交于
This is a bit outdated.
-
由 bors 提交于
Namely: * Change parameter `old` to read `current` so it is clearer what the argument refers to (originally suggested `expected`, but shot down by Steve); * Add some formatting and fix some mistakes like referring to the method as `swap` rather than `compare_and_swap`.
-
由 Simonas Kazlauskas 提交于
Namely: * Change parameter `old` to read `current` so it is clearer what the argument refers to (originally suggested `expected`, but shot down by Steve); * Add some formatting and fix some mistakes like referring to the method as `swap` rather than `compare_and_swap`.
-
由 bors 提交于
In Chapter 5.9 (References and Borrowing), there is an example [at the very end](https://doc.rust-lang.org/stable/book/references-and-borrowing.html#use-after-free) which shows that declaring a reference before declaring the variable that it points to results in a compilation error. The book does not really mention why this happens though -- in the sections before, it has described how different scopes affects the lifetime of resources, but there is no mention of how resources within the same scope work. This confused me a little, so I asked on #rust and got the answer that the resources are destroyed in the reverse order that they are declared, but the book makes no mention of it (as far as I can find) -- except in Chapter 5.21 (Drop), where it says: > When `x` goes out of scope at the end of `main()`, the code for `Drop` will run. `Drop` has one method, which is also called `drop()`. It takes a mutable reference to `self`. > > That’s it! The mechanics of `Drop` are very simple, but there are some subtleties. For example, values are dropped in the opposite order they are declared. [...] --- I feel like Chapter 5.9 (References and Borrowing) is probably the best place to put this information (as I have done in my additions), since it deals with other types of referencing and borrowing. However, since English is not my native language, the wording of my additions perhaps are a little "off" -- any feedback on them is appreciated.
-
由 Steve Klabnik 提交于
This is a bit outdated.
-
由 Ariel Ben-Yehuda 提交于
Fixes #18183
-
由 bors 提交于
Fixes #26471 r? @alexcrichton
- 29 6月, 2015 15 次提交
-
-
由 bors 提交于
This is usually the link I want when I come to this page. r? @steveklabnik
-
由 Steve Klabnik 提交于
Fixes #26471
-
由 bors 提交于
- Successful merges: #26593, #26644, #26645 - Failed merges:
-
由 Manish Goregaokar 提交于
-
由 Manish Goregaokar 提交于
I keep forgetting the command to do partial stage1 compile, so I think it would be helpful to add it into `make tips`.
-
由 Manish Goregaokar 提交于
Part of #24407. cc @michaelsproul
-
由 Guillaume Gomez 提交于
-
由 Guillaume Gomez 提交于
-
由 Guillaume Gomez 提交于
-
由 Richo Healey 提交于
-
由 Peter Elmers 提交于
-
由 bors 提交于
This branch begins the work of unifying our type checking contexts into a single piece of state. The goal is to eventually have a single context that we can pass around instead of the fractured situation we currently have. There are still several things that must be done before beginning to make tables item local: - [ ] move FulfillmentContext into InferCtxt - [ ] modify SelectionContext to only take a single context argument - [ ] remove remaining typer impls - [ ] remove the ClosureTyper + Typer trait - [ ] do some renaming to make these things more applicable to their new roles r? @nikomatsakis As a side note there are a couple oddities that are temporary refactors that will be quickly cleaned up in a follow-up PR. cc @EddyB @Aatch @arielb1 @nrc
-
由 bors 提交于
Setting append without write doesn't give you a writeable file. Showing it as an example in the docs is confusing at best ([reddit](https://www.reddit.com/r/rust/comments/3bbz8w/why_is_writing_a_file_not_working_for_me/)) Using truncate (O_TRUNC) on a read-only file is an error on POSIX systems ("unspecified"). Note however that using create (O_CREAT) with read-only flags is fine. Related: #26103 (which IMHO is wrong; saying "append is different than write" when should simply be "append needs write". My vote is to make append imply write)
-
由 Remi Rampin 提交于
Setting append without write doesn't give you a writeable file. Showing it as an example in the docs is confusing at best. Using truncate on a read-only file is an error on POSIX systems (note however that using create with read-only flags is fine).
-
由 Jared Roesch 提交于
-
- 28 6月, 2015 9 次提交
-
-
由 bors 提交于
I've attempted to lurk these into a few PRs since they're tiny, but those PR's haven't landed so here they are. r? @steveklabnik
-
由 bors 提交于
This series of commits (currently rebased on https://github.com/rust-lang/rust/pull/26569 to avoid conflicts) adds support for the standard library to run on Windows XP. The main motivation behind this PR is that to enable any Rust code in Firefox we need to support Windows XP. This PR doesn't yet intend to be a move to make Windows XP an officially supported platform, but instead simply get Rust code running on it. APIs like condition variables and RWLocks will immediately panic currently on XP, and it's unclear if that story wants to change much. Additionally, we may bind APIs like IOCP which aren't available on XP and would be *very* difficult to provide a fallback implementation. Essentially this PR enables running Rust on XP, but you still have to be careful to avoid non-XP portions of the standard library. The major components of this PR are: * Support for a new `i686-pc-windows-msvc` triple. This primarily involves a lot of build system hackery, but there are also a number of floating point functions which had to get switched up a bit. * All APIs not available on Windows are now accessed through our dynamic-detection mechanism * Mutexes on Windows were rewritten to use SRWLOCK as an optimization but can fall back to CRITICAL_SECTION.
-
由 Jared Roesch 提交于
-
由 Alex Crichton 提交于
This commit enables executables linked against the standard library to run on Windows XP. There are two main components of this commit: * APIs not available on XP are shimmed to have a fallback implementation and use runtime detection to determine if they are available. * Mutexes on Windows were reimplemented to use critical sections on XP where rwlocks are not available. The APIs which are not available on XP are: * SetFileInformationByHandle - this is just used by `File::truncate` and that function just returns an error now. * SetThreadStackGuarantee - this is used by the stack overflow support on windows, but if this isn't available then it's just ignored (it seems non-critical). * All condition variable APIs are missing - the shims added for these apis simply always panic for now. We may eventually provide a fallback implementation, but for now the standard library does not rely on condition variables for normal use. * RWLocks, like condition variables, are missing entirely. The same story for condition variables is taken here. These APIs are all now panicking stubs as the standard library doesn't rely on RWLocks for normal use. Currently, as an optimization, we use SRWLOCKs for the standard `sync::Mutex` implementation on Windows, which is indeed required for normal operation of the standard library. To allow the standard library to run on XP, this commit reimplements mutexes on Windows to use SRWLOCK instances *if available* and otherwise a CriticalSection is used (with some checking for recursive locking). With all these changes put together, a 32-bit MSVC-built executable can run on Windows XP and print "hello world" Closes #12842 Closes #19992 Closes #24776
-
由 Richo Healey 提交于
-
由 Richo Healey 提交于
-
由 Jared Roesch 提交于
-
由 Jared Roesch 提交于
-
由 Jared Roesch 提交于
This first patch starts by moving around pieces of state related to type checking. The goal is to slowly unify the type checking state into a single typing context. This initial patch moves the ParameterEnvironment into the InferCtxt and moves shared tables from Inherited and ty::ctxt into their own struct Tables. This is the foundational work to refactoring the type checker to enable future evolution of the language and tooling.
-