Commit Graph

1249 Commits

Author SHA1 Message Date
John Clements
c73a9c9cd0 refactoring mod.rs 2013-04-28 09:49:20 -07:00
John Clements
a2493ad048 change stage1,stage2,stage2 into not(stage0)
With luck, this will allow rust to compile itself without --cfg flags again...
2013-04-28 09:49:20 -07:00
Daniel Micay
f792baba42 only use #[no_core] in libcore 2013-04-27 21:34:24 -04:00
bors
46806b7ae0 auto merge of #6059 : Kimundi/rust/nice-fail, r=pcwalton
r? @brson

Unwinding through macros now happens as a call to the trait function `FailWithCause::fail_with()`, which consumes self, allowing to use a more generic failure object in the future.
2013-04-26 22:45:36 -07:00
Marvin Löbel
e1be9ae224 Made fail! and assert! accept both &'static str and ~str, as well as a fmt! like format list.
Unwinding through macros now happens as a call to the trait function `FailWithCause::fail_with()`, which consumes self, allowing to use a more generic failure object in the future.
2013-04-25 17:32:25 +02:00
Corey Richardson
d53e686f4f Rename vec::mod2 to vec::mod_zip 2013-04-25 01:38:44 -04:00
Niko Matsakis
a74aca5482 Remove needless FIXME. Fixes #2811. 2013-04-24 20:39:29 -04:00
bors
da601be9f2 auto merge of #6017 : brson/rust/revert-span-merge, r=catamorphism
This reverts commit 6030e3982a.

This reorders error messages in ways that aren't intended. A more satisfying solution will require an interface that allows diagnostics to be grouped together, so that messages that logically belong together aren't reordered.

#4569
2013-04-22 23:09:51 -07:00
bors
b8441ca8a6 auto merge of #6007 : pcwalton/rust/use-mod, r=brson
r? @brson
2013-04-22 18:36:50 -07:00
Brian Anderson
81110c55e8 Revert "Errors with the same span print the span once"
This reverts commit 6030e3982a.
2013-04-22 17:47:49 -07:00
bors
aba93c6b60 auto merge of #5966 : alexcrichton/rust/issue-3083, r=graydon
Closes #3083.

This takes a similar approach to #5797 where a set is present on the `tcx` of used mutable definitions. Everything is by default warned about, and analyses must explicitly add mutable definitions to this set so they're not warned about.

Most of this was pretty straightforward, although there was one caveat that I ran into when implementing it. Apparently when the old modes are used (or maybe `legacy_modes`, I'm not sure) some different code paths are taken to cause spurious warnings to be issued which shouldn't be issued. I'm not really sure how modes even worked, so I was having a lot of trouble tracking this down. I figured that because they're a legacy thing that I'd just de-mode the compiler so that the warnings wouldn't be a problem anymore (or at least for the compiler).

Other than that, the entire compiler compiles without warnings of unused mutable variables. To prevent bad warnings, #5965 should be landed (which in turn is waiting on #5963) before landing this. I figured I'd stick it out for review anyway though.
2013-04-22 15:36:51 -07:00
Patrick Walton
25129ee81c librustc: Remove use mod from the language 2013-04-22 12:32:59 -07:00
Brendan Zabarauskas
01eb5e8ad3 Rename Div operator trait to Quot and Modulo operator trait to Rem 2013-04-22 01:58:53 +10:00
Alex Crichton
fd97cac251 syntax: remove unused 'mut' variables 2013-04-20 21:03:24 -04:00
bors
4ff701b7db auto merge of #5965 : alexcrichton/rust/issue-4364, r=pcwalton
This closes #4364. I came into rust after modes had begun to be phased out, so I'm not exactly sure what they all did. My strategy was basically to turn on the compilation warnings and then when everything compiles and passes all the tests it's all good.

In most cases, I just dropped the mode, but in others I converted things to use `&` pointers when otherwise a move would happen.

This depends on #5963. When running the tests, everything passed except for a few compile-fail tests. These tests leaked memory, causing the task to abort differently. By suppressing the ICE from #5963, no leaks happen and the tests all pass. I would have looked into where the leaks were coming from, but I wasn't sure where or how to debug them (I found `RUSTRT_TRACK_ALLOCATIONS`, but it wasn't all that useful).
2013-04-20 01:00:49 -07:00
bors
ce4f73a243 auto merge of #5945 : graydon/rust/fix-unicode-tables, r=pcwalton
This switches the unicode functions in core to use static character-range tables and a binary search helper rather than open-coded switch statements. It adds about 50k of read only data to the libcore binary but cuts out a similar amount of compiled IR. Would have done it this way in the first place but we didn't have structured statics for a long time.
2013-04-19 23:03:52 -07:00
Alex Crichton
3c7aea3a6a syntax: de-mode and prepare for de-modeing rustc 2013-04-19 23:21:52 -04:00
Patrick Walton
dcea717208 librustc: Fix botched merge. rs=merge 2013-04-19 15:57:31 -07:00
Patrick Walton
4c29b4cb93 librustc: Optimize metadata::decoder::item_name. 2013-04-19 11:53:33 -07:00
Graydon Hoare
5a3d26f271 core: replace unicode match exprs with bsearch in const arrays, minor perf win. 2013-04-18 14:39:40 -07:00
Youngmin Yoo
6030e3982a Errors with the same span print the span once 2013-04-18 17:19:41 +09:00
John Clements
e7aa24de18 add self.token_to_str and is_any_keyword convenience abstractions 2013-04-16 10:06:06 -07:00
John Clements
7e4cd09e2e added MTWT functions 2013-04-16 10:06:06 -07:00
John Clements
1083ae6b06 better error message on failure to parse type 2013-04-16 10:06:06 -07:00
John Clements
313a5ab946 move interner_key macro 2013-04-16 10:06:05 -07:00
Huon Wilson
d3be98e9f5 libcore,std,syntax,rustc: move tests into mod tests, make them private (no pub mod or pub fn). 2013-04-16 09:57:47 +10:00
Alex Crichton
8978643f92 syntax: remove unnecessary unsafe blocks/functions 2013-04-14 01:15:46 -04:00
bors
76f6606a8c auto merge of #5827 : nikomatsakis/rust/issue-5656-change-meaning-of-borrowed-self, r=pcwalton
See #5656 for details.

r? @pcwalton
2013-04-12 15:14:24 -07:00
Huon Wilson
5c376e53d0 libsyntax: another fix for deriving on windows. 2013-04-12 20:19:44 +10:00
Huon Wilson
ea9bdaaed9 libsyntax: (maybe) fix deriving(TotalOrd) on windows 2013-04-12 19:00:53 +10:00
Huon Wilson
bff3748731 libsyntax: short-circuit on non-matching variants in deriving code.
Allow a deriving instance using the generic code to short-circuit for
any non-matching enum variants (grouping them all into a _ match),
reducing the number of arms required. Use this to speed up the Eq &
TotalEq implementations.
2013-04-12 17:12:02 +10:00
Huon Wilson
7906c5572a libsyntax: derive Clone, Eq, TotalEq, Ord, TotalOrd with the new generic deriving code.
Closes #4269, #5588 and #5589.
2013-04-12 17:10:27 +10:00
Huon Wilson
3698ea7e54 libsyntax: abstract most of the deriving boilerplate into a simpler(r) interface.
Pulls out many of the common patterns from the Eq and Clone deriving code (and
invents a few of its own), so that deriving instances are very easy to write
for a certain class of traits. (Basically, those which don't have parameters
and where all methods only take arguments of type `&Self` and return either
`Self` or types with no parameters.)
2013-04-12 17:10:26 +10:00
bors
2f8b36fc16 auto merge of #5819 : erickt/rust/incoming, r=erickt
Good morning,

This first patch series adds support for `#[deriving(Decodable, Encodable)]`, but does not yet remove `#[auto_encode]` and `#[auto_decode]`. I need a snapshot to remove the old code. Along the way it also extends support for tuple structs and struct enum variants.

Also, it includes a minor fix to the pretty printer. We decided a while ago to use 4 spaces to indent a match arm instead of 2. This updates the pretty printer to reflect that.
2013-04-11 06:55:01 -07:00
Niko Matsakis
49de82cdca Issue #5656: Make &self not mean "&'self self"
Fixes #5656.
Fixes #5541.
2013-04-10 17:32:02 -07:00
Erick Tryzelaar
f3ab67ec5f syntax: add {read,emit}_enum_struct_variant{,_field} 2013-04-10 16:32:09 -07:00
Erick Tryzelaar
e31f7b7c74 std: add serialize {read,emit}_tuple{,_arg,_struct,_struct_arg} 2013-04-10 16:32:09 -07:00
Erick Tryzelaar
441df26f5a syntax: add support for #[deriving(Decodable)] 2013-04-10 16:32:09 -07:00
Erick Tryzelaar
5841564bf9 syntax: add support for #[deriving(Encodable)] 2013-04-10 16:32:09 -07:00
Erick Tryzelaar
f50a8e2833 syntax: Simplify deriving to handle classes that take generics, like Encodable 2013-04-10 16:32:09 -07:00
Erick Tryzelaar
419f6acf0e std: rename {read,emit}_field to {read,emit}_struct_field 2013-04-10 16:08:22 -07:00
Erick Tryzelaar
97cc571358 std: clean up the order of {De,En}codable methods 2013-04-10 16:08:22 -07:00
Erick Tryzelaar
4464e44750 syntax: update a deriving error message to use the new syntax 2013-04-10 16:08:22 -07:00
Erick Tryzelaar
74807b1594 syntax: match variants use 4 space indent by default 2013-04-10 16:08:22 -07:00
Brian Anderson
23e44a529b Bump version to 0.7-pre 2013-04-10 13:12:53 -07:00
John Clements
9deb2f2dfa libsyntax comments only 2013-04-10 09:15:08 -07:00
John Clements
09bcd3837c unneccessary since tjc's commit 78ec6fe30c, fixing #2804 2013-04-10 09:15:08 -07:00
John Clements
27700472b9 removed eval.rs: dead code
@brson confirms that eval.rs is now dead code
2013-04-10 09:15:08 -07:00
John Clements
48e7bda826 path -> Path 2013-04-10 09:15:04 -07:00
bors
92e265cdea auto merge of #5802 : nikomatsakis/rust/issue-4183-trait-substs, r=nikomatsakis
Cleanup substitutions and treatment of generics around traits in a number of ways

- In a TraitRef, use the self type consistently to refer to the Self type:
  - trait ref in `impl Trait<A,B,C> for S` has a self type of `S`.
  - trait ref in `A:Trait` has the self type `A`
  - trait ref associated with a trait decl has self type `Self`
  - trait ref associated with a supertype has self type `Self`
  - trait ref in an object type `@Trait` has no self type

- Rewrite `each_bound_traits_and_supertraits` to perform
  substitutions as it goes, and thus yield a series of trait refs
  that are always in the same 'namespace' as the type parameter
  bound given as input.  Before, we left this to the caller, but
  this doesn't work because the caller lacks adequare information
  to perform the type substitutions correctly.

- For provided methods, substitute the generics involved in the provided
  method correctly.

- Introduce TypeParameterDef, which tracks the bounds declared on a type
  parameter and brings them together with the def_id and (in the future)
  other information (maybe even the parameter's name!).

- Introduce Subst trait, which helps to cleanup a lot of the
  repetitive code involved with doing type substitution.

- Introduce Repr trait, which makes debug printouts far more convenient.

Fixes #4183.  Needed for #5656.

r? @catamorphism
2013-04-09 17:12:58 -07:00