Commit Graph

817 Commits

Author SHA1 Message Date
Brian Anderson 04f93be158 Fix breakage 2013-02-01 15:24:16 -08:00
Brian Anderson 9dc6938292 Merge remote-tracking branch 'nickdesaulniers/issue4524' into nocomm1 2013-02-01 11:18:58 -08:00
Nick Desaulniers 7868b6bf55 Remove fail keyword from lexer & parser and clean up remaining calls to
fail

Fix merge conflicts - Issue 4524
2013-02-01 00:15:42 -08:00
John Clements a2839246be cleanup for make check 2013-01-31 23:05:12 -08:00
John Clements 4af7c643f2 more cleanup 2013-01-31 23:05:12 -08:00
John Clements 53688addaa test cases, cleanup 2013-01-31 23:05:12 -08:00
Nick Desaulniers aee7929469 Replace most invocations of fail keyword with die! macro 2013-01-31 20:12:49 -08:00
Niko Matsakis 71478f9ce3 Workaround for #4717: pad contents of ast. rs=breakage 2013-01-31 16:56:12 -08:00
Niko Matsakis 0682ad0eb9 Finalize moves-based-on-type implementation.
Changes:

- Refactor move mode computation
- Removes move mode arguments, unary move, capture clauses
  (though they still parse for backwards compatibility)
- Simplify how moves are handled in trans
- Fix a number of illegal copies that cropped up
- Workaround for bug involving def-ids in params
  (see details below)

Future work (I'll open bugs for these...):

- Improve error messages for moves that are due
  to bindings
- Add support for moving owned content like a.b.c
  to borrow check, test in trans (but I think it'll
  "just work")
- Proper fix for def-ids in params

Def ids in params:

Move captures into a map instead of recomputing.

This is a workaround for a larger bug having to do with the def-ids associated
with ty_params, which are not always properly preserved when inlining.  I am
not sure of my preferred fix for the larger bug yet.  This current fix removes
the only code in trans that I know of which relies on ty_param def-ids, but
feels fragile.
2013-01-31 12:09:00 -08:00
Patrick Walton 366812a5c3 librustc: Change self as a type to Self everywhere. r=brson 2013-01-30 19:52:45 -08:00
Patrick Walton 49472ec4c9 librustc: Remove legacy exports from the language. r=brson 2013-01-30 18:11:43 -08:00
Tim Chevalier 0aef28dd6d De-capitalize "note" to get rid of spurious tidy warnings 2013-01-29 19:26:55 -08:00
Patrick Walton b070590564 libsyntax: De-export libsyntax. rs=deexporting 2013-01-29 14:42:23 -08:00
Patrick Walton 95b892c8a7 libsyntax: De-export a lot of libsyntax. rs=deëxporting 2013-01-29 13:55:30 -08:00
Patrick Walton 4ead38bae7 libsyntax: Implement the impl Trait for Type syntax 2013-01-29 11:48:21 -08:00
Patrick Walton 226cd68f13 librustc: De-implicit-self the visitor. r=graydon 2013-01-29 10:43:12 -08:00
Patrick Walton 6ce74460e6 librustc: Disallow trait bounds in types, enumerations, and structure definitions. r=tjc 2013-01-29 10:42:58 -08:00
Patrick Walton eb4d39e1fe libstd: Remove "dual impls" from the language and enforce coherence rules. r=brson
"Dual impls" are impls that are both type implementations and trait
implementations. They can lead to ambiguity and so this patch removes them
from the language.

This also enforces coherence rules. Without this patch, records can implement
traits not defined in the current crate. This patch fixes this, and updates
all of rustc to adhere to the new enforcement. Most of this patch is fixing
rustc to obey the coherence rules, which involves converting a bunch of records
to structs.
2013-01-29 10:42:45 -08:00
Tim Chevalier 91676f3fa6 syntax: Don't add an extra space before the last comma...
...when printing struct update expressions.
2013-01-28 19:41:56 -08:00
Tim Chevalier 31d78b2f07 Add #[legacy_records] crate attribute
In rustc, rustdoc, rusti, syntax, and std.
2013-01-28 19:41:56 -08:00
Niko Matsakis 19e015c44a Add to_str() definitions for some AST types
r=brson
2013-01-28 10:01:59 -08:00
Niko Matsakis d4fd30c6ac Link the lifetimes of regions resulting from borrows of the
contents of other borrowed pointers to the lifetimes of the
borrowed value.  Fixes #3148.

r=catamorphism
2013-01-28 10:00:23 -08:00
Daniel Micay e4337a9def remove remaining is_not_empty functions/methods 2013-01-24 23:24:57 -05:00
Daniel Micay d95c9cbe38 replace ConstVector trait with the Container trait 2013-01-24 23:02:44 -05:00
Tim Chevalier 9898485d4f Merge pull request #4613 from erickt/incoming
convert most of libcore and libstd to structs, work around tzset race
2013-01-24 17:24:45 -08:00
Tim Chevalier f19e16881e syntax/rustc: Less copy 2013-01-24 16:45:20 -08:00
Erick Tryzelaar 5085eb3c28 Convert pipes::Buffer into a struct 2013-01-24 16:24:31 -08:00
Erick Tryzelaar 90734a0d33 Convert extfmt::rt::Conv into a struct 2013-01-24 16:24:31 -08:00
Erick Tryzelaar 6e2ae2c2c1 remove support for records from auto_encode 2013-01-24 16:24:30 -08:00
John Clements cb504f5404 unit test cases now pass, added a few to the interner 2013-01-24 14:20:57 -08:00
Tim Chevalier f3ec278e46 Merge pull request #4609 from sonwow/keyword-super
Make `super` a keyword
2013-01-24 11:17:52 -08:00
Tim Chevalier 5b64c796a4 syntax/rustc: Improve error message for misuse of for loop
Print out a clearer error message when a `for` gets
used with the wrong type of iterator. Also fix spans on `for` loop
bodies, and suppress some more derived errors.

r=brson

Closes #3651
2013-01-24 11:04:54 -08:00
Youngsoo Son 4b2aa286d8 Make super a keyword 2013-01-24 16:07:04 +09:00
John Clements b635f1e63a fix trailing whitepace 2013-01-23 17:42:05 -08:00
John Clements 8716005581 cleaning up, adding tests 2013-01-23 17:31:12 -08:00
Patrick Walton d9c842847d libsyntax: Fix parsing of pub unsafe fn inside extern blocks. rs=bugfix 2013-01-23 15:14:12 -08:00
Patrick Walton 154488df19 libsyntax: Implement assert as a macro (called fail_unless! on a transitionary basis to avoid conflicting with the keyword right now). r=brson 2013-01-23 14:46:24 -08:00
Patrick Walton 54b2cad8b3 libsyntax: Remove fn() unsafe { ... }. r=graydon 2013-01-23 14:41:08 -08:00
Tim Chevalier d77f8d5554 Long lines 2013-01-23 13:34:22 -08:00
John Clements 0b958e74ac renaming to adhere to conventions 2013-01-23 11:46:19 -08:00
Patrick Walton 778aec998b libsyntax: Implement the + syntax for multiple trait bounds. r=tjc 2013-01-23 11:15:10 -08:00
Tim Chevalier 995ccc0d82 Merge pull request #4596 from Trinick/tomutrename
core: Rename to_mut and from_mut to cast_to_mut and cast_from_mut
2013-01-23 10:56:08 -08:00
Trinick 9dc8e96c5f core: Rename to_mut and from_mut to cast_to_mut and cast_from_mut 2013-01-23 10:09:45 +00:00
Tim Chevalier 83ddb55e8f syntax: Pretty-print mut qualifiers on args 2013-01-22 23:34:35 -08:00
Tim Chevalier a7eaa1f5e4 syntax: Allow closure args to be mutable 2013-01-22 23:34:34 -08:00
Seo Sanghyeon d10b5c725b Add is_mutbl field to def_arg 2013-01-22 23:34:34 -08:00
Seo Sanghyeon 4dd29dee57 Parse mut in arguments 2013-01-22 23:34:33 -08:00
Seo Sanghyeon 9a5d617092 Add is_mutbl field to arg 2013-01-22 23:34:33 -08:00
Tim Chevalier 10260bee38 Change debuginfo to not use an option for the output type...
...now without a random libuv change.
2013-01-22 15:13:23 -08:00
Tim Chevalier a36eacc4f9 Revert "Clean up previous commit to not require an Option"
I made a mistake and included some submodule weirdness.
About to re-push the patch without that.

This reverts commit 17ea548275.
2013-01-22 15:12:35 -08:00