- 15 2月, 2016 25 次提交
-
-
由 bors 提交于
This PR fixes two unrelated diagnostics bugs in resolve. First, it reports privacy errors for an import only after the import resolution is determined, fixing #31402. Second, it expands the per-module map from block ids to anonymous modules so that it also maps module declarations ids to modules, and it uses this map to in `with_scope` to fix #31644. r? @nrc
-
由 bors 提交于
This fixes a regression caused by #31461 allowing extern crates to be glob imported, and it fixes the test that was supposed to catch it. r? @nrc
-
由 bors 提交于
Recover from missing brackets in the parser
-
由 Nick Cameron 提交于
-
由 bors 提交于
- Successful merges: #31607, #31649, #31655, #31658 - Failed merges:
-
由 Steve Klabnik 提交于
In the Rust code above this block of compiler output, the function is called print_sum, so use the same function name in the error message.
-
由 Steve Klabnik 提交于
r? @steveklabnik
-
由 Steve Klabnik 提交于
-
由 Steve Klabnik 提交于
Fixes #31599
-
由 bors 提交于
Looking at some profiles of rustc recently, these seemed like two pretty easy wins we could get in terms of performance on the table.
-
由 Nick Cameron 提交于
-
由 Nick Cameron 提交于
-
由 Nick Cameron 提交于
Some tests just add the extra errors, others I fix by doing some simple error recovery. I've tried to avoid doing too much in the hope of doing something more principled later. In general error messages are getting worse at this stage, but I think in the long run they will get better.
-
由 Nick Cameron 提交于
-
由 Nick Cameron 提交于
-
由 Alex Crichton 提交于
Now that we properly only link in jemalloc when building executables, we have far less to worry about in terms of polluting the global namespace with the `free` and `malloc` symbols on Linux. This commit will primarily allow LLVM to use jemalloc so the compiler will only be using one allocator overall. Locally this took compile time for libsyntax from 95 seconds to 89 (a 6% improvement).
-
由 Felix Gruber 提交于
In the Rust code above, the function is called print_sum, so use the same function name in the error message.
-
由 Alex Crichton 提交于
Back in 9bc8e6d1 the linking of rlibs changed to using the `link_whole_rlib` function. This change, however was only intended to affect dylibs, not executables. For executables we don't actually want to link entire rlibs because we want the linker to strip out as much as possible. This commit adds a conditional to this logic to only link entire rlibs if we're creating a dylib, and otherwise an executable just links an rlib as usual. A test is included which will fail to link if this behavior is reverted.
-
由 Alex Crichton 提交于
Right now the primary hashing algorithm of the compiler isn't actually inlined across crates, meaning that it may be missing out on some crucial optimizations in a few places (perhaps unrolling smaller loops, etc). This commit made the hashing function disappear from a profiled version of the compiler, but that's likely because it was just inlined elsewhere. When compiling winapi, however, this decreased compile time from 18.3 to 17.8 seconds (a 3% improvement).
-
由 bors 提交于
-
由 Oliver Middleton 提交于
-
由 bors 提交于
This file was probably forgotten when libregex moved out of tree. The rust-lang-nursery/regex repo has a nigh-identical file in its script/ folder.
-
由 Oliver Middleton 提交于
-
由 Oliver Middleton 提交于
-
由 bors 提交于
Handles `str` being an expression's expected type, which was missing from #20083. Fixes #26978.
-
- 14 2月, 2016 15 次提交
-
-
由 Eduard Burtescu 提交于
-
由 Steve Klabnik 提交于
Fixes #31599
-
由 fbergr 提交于
-
由 bors 提交于
Maybe they should be Markdown rendered instead, though that doesn't really seem to work all that well. fixes #31059 r? @alexcrichton
-
由 bors 提交于
fixes #26606 r? @alexcrichton
-
由 Jeffrey Seyfried 提交于
Rename Module field anonymous_children to module_children, expand it to include both named an anonymous modules, and fix #31644
-
由 Jeffrey Seyfried 提交于
-
由 bors 提交于
Part of #31185
-
由 bors 提交于
cc https://github.com/rust-lang/rust/pull/31487#issuecomment-182945101 plugin-[breaking-change] The first commit renames `ast::Pat_` to `ast::PatKind` and uses its variants in enum qualified form. I've also taken the opportunity and renamed `PatKind::Region` into `PatKind::Ref`. The second commit splits `PatKind::Enum` into `PatKind::TupleStruct` and `PatKind::UnitStruct`. So, pattern kinds now correspond to their struct/variant kinds - `Struct`, `TupleStruct` and `UnitStruct`. @nikomatsakis @nrc @arielb1 Are you okay with this naming scheme? An alternative possible naming scheme is `PatKind::StructVariant`, `PatKind::TupleVariant`, `PatKind::UnitVariant` (it's probably closer to the common use, but I like it less). I intend to apply these changes to HIR later, they should not necessarily go in the same nightly with https://github.com/rust-lang/rust/pull/31487 r? @Manishearth
-
由 Corey Farwell 提交于
Part of #31185
-
由 bors 提交于
This commit is an implementation of [RFC 1415][rfc] which deprecates all types in the `std::os::*::raw` modules. [rfc]: https://github.com/rust-lang/rfcs/blob/master/text/1415-trim-std-os.md Many of the types in these modules don't actually have a canonical platform representation, for example the definition of `stat` on 32-bit Linux will change depending on whether C code is compiled with LFS support or not. Unfortunately the current types in `std::os::*::raw` are billed as "compatible with C", which in light of this means it isn't really possible. To make matters worse, platforms like Android sometimes define these types as *smaller* than the way they're actually represented in the `stat` structure itself. This means that when methods like `DirEntry::ino` are called on Android the result may be truncated as we're tied to returning a `ino_t` type, not the underlying type. The commit here incorporates two backwards-compatible components: * Deprecate all `raw` types that aren't in `std::os::raw` * Expand the `std::os::*::fs::MetadataExt` trait on all platforms for method accessors of all fields. The fields now returned widened types which are the same across platforms (consistency across platforms is not required, however, it's just convenient). and two also backwards-incompatible components: * Change the definition of all `std::os::*::raw` type aliases to correspond to the newly widened types that are being returned on each platform. * Change the definition of `std::os::*::raw::stat` on Linux to match the LFS definitions rather than the standard ones. The breaking changes here will specifically break code that assumes that `libc` and `std` agree on the definition of `std::os::*::raw` types, or that the `std` types are faithful representations of the types in C. An [audit] has been performed of crates.io to determine the fallout which was determined two be minimal, with the two found cases of breakage having been fixed now. [audit]: https://github.com/rust-lang/rfcs/pull/1415#issuecomment-180645582 --- Ok, so after all that, we're finally able to support LFS on Linux! This commit then simultaneously starts using `stat64` and friends on Linux to ensure that we can open >4GB files on 32-bit Linux. Yay! Closes #28978 Closes #30050 Closes #31549
-
由 bors 提交于
- Successful merges: #31535, #31537, #31542, #31559, #31563, #31582, #31584, #31585, #31589, #31607, #31609, #31610, #31612, #31629, #31635, #31637, #31638 - Failed merges:
-
由 Manish Goregaokar 提交于
This file is unused since #27789
-
由 Manish Goregaokar 提交于
-
由 Manish Goregaokar 提交于
The BSD grep for "basic regex" don't support \| as alternate operator (at least under OpenBSD). Use multiple -e arguments for expressing alternative. I have checked it under Linux (Debian).
-