| Age | Commit message (Collapse) | Author | Lines |
|
|
|
This routes the `error_string` API to `strerror` in libc which should
have more human readable descriptions.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
stabilize ptr::hash
closes #56286
|
|
Fix small typo
This PR fixes a small typo in `eq()` comments.
|
|
Update rustc-guide submodule
Just keeping up with the head...
r? @steveklabnik
|
|
Fixed URL in cargotest::TEST_REPOS
|
|
r=pnkfelix
fixes rust-lang#56766
fixes #56766
|
|
Suggest using anonymous lifetime in `impl Trait` return
Fix #48467.
r? @nikomatsakis
|
|
Add a -Z time option which prints only passes which runs once
This ensures `-Z time-passes` fits on my screen =P
r? @michaelwoerister
|
|
closes #56286
|
|
I've since learned that the mapping between libc fds and wasi fds are
expected to be one-to-one, so we can use the raw syscalls for writing to
stdout/stderr and reading from stdin! This should help ensure that we
don't depend on a C library too unnecessarily.
|
|
This commit switches the wasi target to loading CLI arguments via the
syscalls provided by wasi rather than through the argc/argv passed to
the main function. While serving the same purpose it's hoped that using
syscalls will make us a bit more portable (less reliance from libstd on
an external C library) as well as avoiding the need for a lock!
|
|
|
|
Before this change, formatter settings were lost when printing a
`Range`. For example, printing a `Range<f32>` with `{:.2?}` would not
apply the precision modifier when printing the floats. Now the `Debug`
impls look a bit more verbose, but modifier are not lost.
|
|
|
|
|
|
|
|
|
|
|
|
By using 'impl trait', it's possible to create a self-referential
type as follows:
fn foo() -> impl Copy { foo }
This is a function which returns itself.
Normally, the signature of this function would be impossible
to write - it would look like 'fn foo() -> fn() -> fn() ...'
e.g. a function which returns a function, which returns a function...
Using 'impl trait' allows us to avoid writing this infinitely long
type. While it's useless for practical purposes, it does compile and run
However, issues arise when we try to generate llvm debuginfo for such a
type. All 'impl trait' types (e.g. ty::Opaque) are resolved when we
generate debuginfo, which can lead to us recursing back to the original
'fn' type when we try to process its return type.
To resolve this, I've modified debuginfo generation to account for these
kinds of weird types. Unfortunately, there's no 'correct' debuginfo that
we can generate - 'impl trait' does not exist in debuginfo, and this
kind of recursive type is impossible to directly represent.
To ensure that we emit *something*, this commit emits dummy
debuginfo/type names whenever it encounters a self-reference. In
practice, this should never happen - it's just to ensure that we can
emit some kind of debuginfo, even if it's not particularly meaningful
Fixes #58463
|
|
Optimize indentation in the pretty printer.
Currently the pretty-printer calls `write!` for every space of
indentation. On some workloads the indentation level can exceed 100, and
a faster implementation reduces instruction counts by up to 7% on a few
workloads.
|
|
Currently the pretty-printer calls `write!` for every space of
indentation. On some workloads the indentation level can exceed 100, and
a faster implementation reduces instruction counts by up to 7% on a few
workloads.
|
|
Fix LLVM IR generated for C-variadic arguments
It is possible to create malformed LLVM IR given variadic arguments that
are aggregate types. This occurs due to improper tracking of the current
argument in the functions list of arguments.
Fixes: #58881
|
|
Uses relative libdir to place libraries on all stages.
Adds verbose installation output.
|
|
It is possible to create malformed LLVM IR given variadic arguments that
are aggregate types. This occurs due to improper tracking of the current
argument in the functions list of arguments.
|
|
Remove #[doc(hidden)] from Error::type_id
Nominating this for beta so that `Error::type_id` has documentation in time for release.
cc @rust-lang/release @rust-lang/docs
|
|
match match match match match
|
|
Stabilize refcell_replace_swap feature
Please be kind, this is my first time contributing. :smile:
I noticed #43570 only needs stabilizing (and I need it for a side project I'm working on), so I followed the [guide](https://rust-lang.github.io/rustc-guide/stabilization_guide.html#stabilization-pr) to move things forward.
I'm happy to amend things if needed, let me know!
|
|
Allow closure to unsafe fn coercion
Closes #57883
|
|
rustc_target: factor out common fields of non-Single Variants.
@tmandry and I were discussing ways to generalize the current variants/discriminant layout to allow more fields in the "`enum`" (or another multi-variant types, such as potentially generator state, in the future), shared by all variants, than just the tag/niche discriminant.
This refactor should make it easier to extend multi-variant layouts, as nothing is duplicating anymore between "tagged enums" and "niche-filling enums".
r? @oli-obk
|
|
Use platform dependent mcount function
close #59097
This pull-request is based on #57244 and [here](https://github.com/llvm-mirror/clang/search?q=MCountName&unscoped_MCountName).
r? @nagisa
|
|
Lint for redundant imports
Add lint for redundant imports. The changes are suggested by @petrochenkov.
Closes #10178.
|
|
Fallback to `static_impl_trait` for nice error message by peeking at the
return type and the lifetime type. Point at the return type instead of
the return expr/stmt in NLL mode.
|
|
|
|
|
|
|
|
|
|
* Don't promote these borrows if we're going to remove them before
codegen
* Correctly mark unreachable code
|
|
Distinguish message for external macros depending on error level
fixes #57716
(I picked you because assigned to this issue.)
r? @estebank
|
|
Include bounds in generic re-ordering diagnostic
Fixes #59508.
r? @estebank
cc @varkor
|
|
|
|
|
|
|