| Age | Commit message (Collapse) | Author | Lines |
|
Make struct variant syntax more consistent with struct syntax and fix an
assert in middle::typeck.
Fix #19003
|
|
Struct variant field visibility is now inherited. Remove `pub` keywords
from declarations.
Closes #18641
[breaking-change]
r? @alexcrichton
|
|
[breaking-change]
This will break any uses of macros that assumed () being a valid literal.
|
|
Struct variant field visibility is now inherited. Remove `pub` keywords
from declarations.
Closes #18641
[breaking-change]
|
|
Fix some old papercuts with diagnostics, e.g. tweaking spans, rewording messages. See individual commits.
|
|
This implements a considerable portion of rust-lang/rfcs#369 (tracked in #18640). Some interpretations had to be made in order to get this to work. The breaking changes are listed below:
[breaking-change]
- `core::num::{Num, Unsigned, Primitive}` have been deprecated and their re-exports removed from the `{std, core}::prelude`.
- `core::num::{Zero, One, Bounded}` have been deprecated. Use the static methods on `core::num::{Float, Int}` instead. There is no equivalent to `Zero::is_zero`. Use `(==)` with `{Float, Int}::zero` instead.
- `Signed::abs_sub` has been moved to `std::num::FloatMath`, and is no longer implemented for signed integers.
- `core::num::Signed` has been removed, and its methods have been moved to `core::num::Float` and a new trait, `core::num::SignedInt`. The methods now take the `self` parameter by value.
- `core::num::{Saturating, CheckedAdd, CheckedSub, CheckedMul, CheckedDiv}` have been removed, and their methods moved to `core::num::Int`. Their parameters are now taken by value. This means that
- `std::time::Duration` no longer implements `core::num::{Zero, CheckedAdd, CheckedSub}` instead defining the required methods non-polymorphically.
- `core::num::{zero, one, abs, signum}` have been deprecated. Use their respective methods instead.
- The `core::num::{next_power_of_two, is_power_of_two, checked_next_power_of_two}` functions have been deprecated in favor of methods defined a new trait, `core::num::UnsignedInt`
- `core::iter::{AdditiveIterator, MultiplicativeIterator}` are now only implemented for the built-in numeric types.
- `core::iter::{range, range_inclusive, range_step, range_step_inclusive}` now require `core::num::Int` to be implemented for the type they a re parametrized over.
|
|
This corrects the error message to point at the literal, not the next
token.
Closes #17123.
|
|
Adds a method for printing a fatal error and also a help message to the
parser and uses this in a variety of places to improve error messages.
Closes #12213.
|
|
This can crop-up with a misconfigured editor or an unexpected
interaction between version control and certain operating systems.
Closes #11669.
|
|
Num, NumCast, Unsigned, Float, Primitive and Int have been removed.
|
|
|
|
This breaks code like:
struct Foo {
x: int,
}
let f: Foo = ...;
... f.x::<int> ...
Change this code to not contain an unused type parameter. For example:
struct Foo {
x: int,
}
let f: Foo = ...;
... f.x ...
Closes #18680.
[breaking-change]
|
|
|
|
|
|
|
|
Closes #14197
Removes the `matchers` nonterminal.
If you're using `$foo:matchers` in a macro, write `$foo:tt` instead.
[breaking-change]
|
|
|
|
completely.
|
|
These paths also bind anonymous regions (or will, once HRTB is fully working).
Fixes #18423.
|
|
|
|
|
|
|
|
|
|
Unicode characters and strings.
Use `\u0080`-`\u00ff` instead. ASCII/byte literals are unaffected.
This PR introduces a new function, `escape_default`, into the ASCII
module. This was necessary for the pretty printer to continue to
function.
RFC #326.
Closes #18062.
[breaking-change]
|
|
|
|
|
|
|
|
bounds like any other "type parameter".
|
|
|
|
|
|
Closes #18126.
|
|
|
|
Conflicts:
src/libsyntax/parse/parser.rs
|
|
Conflicts:
src/libcollections/slice.rs
src/libcore/failure.rs
src/libsyntax/parse/token.rs
src/test/debuginfo/basic-types-mut-globals.rs
src/test/debuginfo/simple-struct.rs
src/test/debuginfo/trait-pointers.rs
|
|
|
|
Closes #15386.
|
|
|
|
We can simplify these usages due to the new delimiter representation. `Parser::expect_open_delim` has been added for convenience.
|
|
This common representation for delimeters should make pattern matching easier. Having a separate `token::DelimToken` enum also allows us to enforce the invariant that the opening and closing delimiters must be the same in `ast::TtDelimited`, removing the need to ensure matched delimiters when working with token trees.
|
|
https://github.com/rust-lang/rfcs/pull/221
The current terminology of "task failure" often causes problems when
writing or speaking about code. You often want to talk about the
possibility of an operation that returns a Result "failing", but cannot
because of the ambiguity with task failure. Instead, you have to speak
of "the failing case" or "when the operation does not succeed" or other
circumlocutions.
Likewise, we use a "Failure" header in rustdoc to describe when
operations may fail the task, but it would often be helpful to separate
out a section describing the "Err-producing" case.
We have been steadily moving away from task failure and toward Result as
an error-handling mechanism, so we should optimize our terminology
accordingly: Result-producing functions should be easy to describe.
To update your code, rename any call to `fail!` to `panic!` instead.
Assuming you have not created your own macro named `panic!`, this
will work on UNIX based systems:
grep -lZR 'fail!' . | xargs -0 -l sed -i -e 's/fail!/panic!/g'
You can of course also do this by hand.
[breaking-change]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This should be clearer, and fits in better with the `TTNonterminal` variant.
Renames:
- `TTTok` -> `TTToken`
- `TTDelim` -> `TTDelimited`
- `TTSeq` -> `TTSequence`
|