Commit Graph

271 Commits

Author SHA1 Message Date
Alex Crichton df1cddf20a rollup merge of #20179: eddyb/blind-items
Conflicts:
	src/librustc/diagnostics.rs
	src/librustdoc/clean/mod.rs
	src/librustdoc/html/format.rs
	src/libsyntax/parse/parser.rs
2015-01-21 11:56:00 -08:00
Eduard Burtescu 139346adb6 tests: fix fallout of merging ast::ViewItem into ast::Item. 2015-01-21 20:05:16 +02:00
Alex Crichton 9c999c797c rollup merge of #21463: sanxiyn/demut 2015-01-21 09:21:09 -08:00
Alex Crichton 0c981875e4 rollup merge of #21340: pshc/libsyntax-no-more-ints
Collaboration with @rylev!

I didn't change `int` in the [quasi-quoter](https://github.com/pshc/rust/blob/99ae1a30f3ca28c0f7e431620560d30e44627124/src/libsyntax/ext/quote.rs#L328), because I'm not sure if there will be adverse effects.

Addresses #21095.
2015-01-21 09:13:51 -08:00
Eduard Burtescu 7cece8725b syntax: fix fallout of merging ast::ViewItem into ast::Item. 2015-01-21 16:27:26 +02:00
Seo Sanghyeon d4ced7b468 De-mut the parser 2015-01-21 20:44:49 +09:00
Alex Crichton 631896dc19 Test fixes and rebase conflicts 2015-01-20 12:35:51 -08:00
Barosl LEE fa0c2c5e46 Rollup merge of #21336 - rylev:better-nofile-error, r=brson
Contribution from @look!

Addresses https://github.com/rust-lang/rust/issues/21329
2015-01-21 02:16:48 +09:00
Paul Collier 3c32cd1be2 libsyntax: 0u -> 0us, 0i -> 0is 2015-01-18 19:43:44 -08:00
Paul Collier 7a24b3a4d7 libsyntax: int => i32 in appropriate places 2015-01-18 19:43:44 -08:00
Seo Sanghyeon 3f0cc8011a Make output type in ast::FnDecl optional 2015-01-18 22:49:19 +09:00
Paul Collier d5c83652b3 libsyntax: rename functions from uint to usize 2015-01-17 20:47:30 -08:00
Ryan Levick b6b8880f0e Improve the error message when source file cannot be read
Contribution from @look!
2015-01-18 00:49:50 +01:00
Paul Collier a32249d447 libsyntax: uint types to usize 2015-01-17 23:45:29 +00:00
Huon Wilson e95779554e Store deprecated status of i/u-suffixed literals. 2015-01-08 11:02:23 -05:00
Jorge Aparicio 517f1cc63c use slicing sugar 2015-01-07 17:35:56 -05:00
Alex Crichton a64000820f More test fixes 2015-01-06 21:26:48 -08:00
Alex Crichton 0631b466c2 rollup merge of #19430: pczarn/interp_tt-cleanup
Conflicts:
	src/libsyntax/parse/parser.rs
2015-01-06 15:38:10 -08:00
Piotr Czarnecki d85c017f92 Cleanup and followup to PR #17830: parsing changes
Prevents breaking down `$name` tokens into separate `$` and `name`.
Reports unknown macro variables.

Fixes #18775
Fixes #18839
Fixes #15640
2015-01-07 00:24:48 +01:00
Alex Crichton e2f97f51ad Register new snapshots
Conflicts:
	src/librbml/lib.rs
	src/libserialize/json_stage0.rs
	src/libserialize/serialize_stage0.rs
	src/libsyntax/ast.rs
	src/libsyntax/ext/deriving/generic/mod.rs
	src/libsyntax/parse/token.rs
2015-01-06 15:24:24 -08:00
Alex Crichton 5c3ddcb15d rollup merge of #20481: seanmonstar/fmt-show-string
Conflicts:
	src/compiletest/runtest.rs
	src/libcore/fmt/mod.rs
	src/libfmt_macros/lib.rs
	src/libregex/parse.rs
	src/librustc/middle/cfg/construct.rs
	src/librustc/middle/dataflow.rs
	src/librustc/middle/infer/higher_ranked/mod.rs
	src/librustc/middle/ty.rs
	src/librustc_back/archive.rs
	src/librustc_borrowck/borrowck/fragments.rs
	src/librustc_borrowck/borrowck/gather_loans/mod.rs
	src/librustc_resolve/lib.rs
	src/librustc_trans/back/link.rs
	src/librustc_trans/save/mod.rs
	src/librustc_trans/trans/base.rs
	src/librustc_trans/trans/callee.rs
	src/librustc_trans/trans/common.rs
	src/librustc_trans/trans/consts.rs
	src/librustc_trans/trans/controlflow.rs
	src/librustc_trans/trans/debuginfo.rs
	src/librustc_trans/trans/expr.rs
	src/librustc_trans/trans/monomorphize.rs
	src/librustc_typeck/astconv.rs
	src/librustc_typeck/check/method/mod.rs
	src/librustc_typeck/check/mod.rs
	src/librustc_typeck/check/regionck.rs
	src/librustc_typeck/collect.rs
	src/libsyntax/ext/format.rs
	src/libsyntax/ext/source_util.rs
	src/libsyntax/ext/tt/transcribe.rs
	src/libsyntax/parse/mod.rs
	src/libsyntax/parse/token.rs
	src/test/run-pass/issue-8898.rs
2015-01-06 15:22:24 -08:00
Alex Crichton 5f27b50080 rollup merge of #20609: cmr/mem 2015-01-06 15:07:48 -08:00
Nick Cameron 0c7f7a5fb8 fallout 2015-01-07 12:02:52 +13:00
Sean McArthur 44440e5c18 core: split into fmt::Show and fmt::String
fmt::Show is for debugging, and can and should be implemented for
all public types. This trait is used with `{:?}` syntax. There still
exists #[derive(Show)].

fmt::String is for types that faithfully be represented as a String.
Because of this, there is no way to derive fmt::String, all
implementations must be purposeful. It is used by the default format
syntax, `{}`.

This will break most instances of `{}`, since that now requires the type
to impl fmt::String. In most cases, replacing `{}` with `{:?}` is the
correct fix. Types that were being printed specifically for users should
receive a fmt::String implementation to fix this.

Part of #20013

[breaking-change]
2015-01-06 14:49:42 -08:00
Nick Cameron f7ff37e4c5 Replace full slice notation with index calls 2015-01-07 10:46:33 +13:00
Corey Richardson abcbe27695 syntax/rustc: implement isize/usize 2015-01-06 15:15:07 -05:00
Keegan McAllister 677b7cad3d Reformat metadata for exported macros
Instead of copy-pasting the whole macro_rules! item from the original .rs file,
we serialize a separate name, attributes list, and body, the latter as
pretty-printed TTs.  The compilation of macro_rules! macros is decoupled
somewhat from the expansion of macros in item position.

This filters out comments, and facilitates selective imports.
2015-01-05 12:00:57 -08:00
Keegan McAllister 5bf385be6a Rename macro_escape to macro_use
In the future we want to support

    #[macro_use(foo, bar)]
    mod macros;

but it's not an essential part of macro reform.  Reserve the syntax for now.
2015-01-05 12:00:57 -08:00
Keegan McAllister fc58479323 Stop using macro_escape as an inner attribute
In preparation for the rename.
2015-01-05 12:00:57 -08:00
Keegan McAllister ad7c647773 Add a special macro nonterminal $crate 2015-01-05 11:38:12 -08:00
Jorge Aparicio 6b19a02080 syntax: fix fallout 2015-01-03 09:34:05 -05:00
Jorge Aparicio ab402c0744 syntax: unbox closures used in let bindings 2014-12-31 22:50:27 -05:00
Alex Crichton 082bfde412 Fallout of std::str stabilization 2014-12-21 23:31:42 -08:00
Eduard Burtescu b45d30da34 Fix fallout of removing import_shadowing in tests. 2014-12-20 07:49:37 +02:00
Niko Matsakis 092d04a40a Rename FnStyle trait to Unsafety. 2014-12-14 11:11:55 -05:00
Jorge Aparicio c434954b27 libsyntax: use tuple indexing 2014-12-13 20:04:40 -05:00
Jorge Aparicio 93e99b55f8 libsyntax: remove unnecessary to_string() calls 2014-12-06 23:53:02 -05:00
Corey Richardson 2e1a50121e syntax: support ES6-style unicode escapes
First half of bootstrapping https://github.com/rust-lang/rfcs/pull/446
2014-12-03 15:10:51 -08:00
Niko Matsakis 74a1041a4d Implement the new parsing rules for types in the parser, modifying the AST appropriately. 2014-11-26 11:42:05 -05:00
Jakub Bukaj f71b852d38 rollup merge of #19103: huonw/literal-suffixes
Futureproof Rust for fancier suffixed literals. The Rust compiler tokenises a literal followed immediately (no whitespace) by an identifier as a single token: (for example) the text sequences `"foo"bar`, `1baz` and `1u1024` are now a single token rather than the pairs `"foo"` `bar`, `1` `baz` and `1u` `1024` respectively.

The compiler rejects all such suffixes in the parser, except for the 12 numeric suffixes we have now.

I'm fairly sure this will affect very few programs, since it's not currently legal to have `<literal><identifier>` in a Rust program, except in a macro invocation. Any macro invocation relying on this behaviour can simply separate the two tokens with whitespace: `foo!("bar"baz)` becomes `foo!("bar" baz)`.

This implements [RFC 463](https://github.com/rust-lang/rfcs/blob/master/text/0463-future-proof-literal-suffixes.md), and so closes https://github.com/rust-lang/rust/issues/19088.
2014-11-19 22:41:05 +01:00
Huon Wilson 606a309d4a Switch numeric suffix parsing to use the new system.
This moves errors and all handling of numeric suffixes into the parser
rather than the lexer.
2014-11-20 00:02:42 +11:00
Murarth 2293a04b49 libsyntax: Add tests for parse_view_item 2014-11-17 20:26:21 -07:00
Jakub Bukaj eb01b17b06 Complete the removal of ty_nil, ast::LitNil, ast::TyBot and ast::TyUniq
[breaking-change]

This will break any uses of macros that assumed () being a valid literal.
2014-11-16 14:23:15 +01:00
Brendan Zabarauskas e965ba85ca Remove lots of numeric traits from the preludes
Num, NumCast, Unsigned, Float, Primitive and Int have been removed.
2014-11-13 03:46:03 +11:00
Brendan Zabarauskas e51cc089da Move checked arithmetic operators into Int trait 2014-11-13 02:02:44 +11:00
Niko Matsakis 221edbae38 Support parenthesized paths Foo(A,B) -> C that expand to Foo<(A,B),C>. These paths also bind anonymous regions (or will, once HRTB is fully working).
Fixes #18423.
2014-11-06 06:48:23 -05:00
Brendan Zabarauskas 936d999b52 Use common variants for open and close delimiters
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.
2014-10-30 09:35:52 +11:00
Steve Klabnik 7828c3dd28 Rename fail! to panic!
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]
2014-10-29 11:43:07 -04:00
Brendan Zabarauskas cd049591a2 Use an enum rather than a bool in token::Ident 2014-10-28 15:55:37 +11:00
Brendan Zabarauskas d8b1fa0ae0 Use PascalCase for token variants 2014-10-28 15:55:37 +11:00