Commit Graph

16161 Commits

Author SHA1 Message Date
Jed Davis
9eaa608b04 Get rid of the Unit enum representation.
The only thing we really lose is that C-like enums with one variant and a
non-zero discriminant now take up space, but I do not think this is a
common usage.  As previously noted, that was mostly there for
transitional compatibility with the pre-adt.rs codebase.
2013-03-11 00:01:04 -07:00
Jed Davis
e6b5e00ea2 Simplify struct representation.
Out goes the extra layer of struct wrapping; the destructedness flag is
added to the end of the struct.  This means that, if the struct
previously had alignment padding at the end, the flag will live there
instead of increasing the struct size.
2013-03-10 23:57:38 -07:00
bors
58618fb8cf auto merge of #5308 : wanderview/rust/std-getopts-rustdoc-fix, r=luqmana
There were three issues effecting the example in the getopts rustdoc:

1. The blockquote was incorrectly formatted.  Fixed by switching to using
   an explicit markdown code section with ```.
2. The `fail fail_str(f)` would not compile.  Fixed by using `fail!()` instead
   of `fail`.
3. The line `matches.free[0]` produced a compile error about moving from
   an immutable vector.  Fix by using `copy`.
2013-03-10 21:39:46 -07:00
Ben Kelly
13e58597a1 Correct copyright year to be 2012-2013.
Previous year range of 2011-2013 was based on file creation date.  The
check_license python script, however, only accepts copyrights starting
in 2012 or later.
2013-03-10 20:47:28 -04:00
Ben Kelly
a363862102 Fix formatting and errors in std::getopts example.
There were three issues effecting the example in the getopts rustdoc:

1. The blockquote was incorrectly formatted.  Fixed by switching to using
   an explicit markdown code section with ```.
2. The `fail fail_str(f)` would not compile.  Fixed by using `fail!()` instead
   of `fail`.
3. The line `matches.free[0]` produced a compile error about moving from
   an immutable vector.  Fix by using `copy`.
2013-03-10 17:27:31 -04:00
bors
1d8596d400 auto merge of #5309 : nikomatsakis/rust/simplify_check_fn, r=nikomatsakis
Simplify the interface to check_fn by pulling some of the madness out to its callers.

rs=refactor
2013-03-10 12:36:45 -07:00
Niko Matsakis
62aa8d7de9 Simplify the interface to check_fn by pulling some of the madness out to its callers 2013-03-10 15:05:22 -04:00
Daniel Micay
80c71c839a add a TotalOrd impl for the unit type 2013-03-10 13:54:51 -04:00
bors
267f6c212f auto merge of #5285 : jld/rust/emacs-refix, r=brson
Without this change, rust-mode doesn't work if 'cl hasn't been required
by something else, apparently.  I'm not entirely sure what changed such
that I started seeing this problem instead of not, but maybe the emacs
world has been making progress towards not loading 'cl at runtime if
it's only needed at compile time.

(This change was previously submitted as e93a58d52 and accidentally reverted by ad8b437ad.)
2013-03-09 18:42:43 -08:00
Jed Davis
1df0a0ba0f Const dereference works now, so allow it. 2013-03-09 17:40:59 -08:00
Jed Davis
122e4a28b8 Don't copy const data to do an autoderef+autoref. 2013-03-09 17:40:59 -08:00
Jed Davis
c929ddde16 Add some tests for const auto-deref.
const-autoderef.rs is based on an example from jdm in IRC (but the
quadruple-pointer part is entirely my fault).
2013-03-09 17:40:59 -08:00
Jed Davis
5066bc9ff4 Don't print addr_of(addr_of(e)) as &&e, which means something else. 2013-03-09 17:40:59 -08:00
Jed Davis
2e29f97423 Make a const translation test match TESTNAME=const 2013-03-09 17:40:59 -08:00
Jed Davis
e42afd3129 Let const_deref "dereference" newtypes. 2013-03-09 17:40:59 -08:00
Jed Davis
5ca1d353de Implement most of adjustment handling for consts.
Changes the ad-hoc closure adjustment into using adjustment info instead
of being separately driven from types, and likewise for autoderef.

Also takes care of autoref (the cases we should be seeing in consts,
at least, since we can't be doing method calls which would need the
ref-to-vec mode), which didn't quite work right previously.

However, "dereference" of a newtype isn't handled yet....
2013-03-09 17:40:59 -08:00
Jed Davis
5571ca9b21 Break out const_addr_of. 2013-03-09 17:40:59 -08:00
bors
a90551b711 auto merge of #5302 : thestinger/rust/vec, r=nikomatsakis 2013-03-09 17:39:42 -08:00
bors
a347e9d635 auto merge of #5296 : nikomatsakis/rust/region-syntax-expl-lifetimes-2, r=nikomatsakis
Modify pretty-printer to emit lifetimes and fix a few minor
parser bugs that this uncovered.

r? whomever.
2013-03-09 16:48:44 -08:00
Niko Matsakis
7cbd4b20ee Remove @ast::Region and replace with @ast::Lifetime.
Modify pretty-printer to emit lifetimes and fix a few minor
parser bugs that this uncovered.
2013-03-09 19:43:59 -05:00
Daniel Micay
788de758e3 vec: cleanup 2013-03-09 16:53:39 -05:00
bors
98ce99d500 auto merge of #5295 : apasel422/rust/kate, r=brson
Two small changes: `Not` was missing from the list of core traits and `assert` was removed from the language.
2013-03-09 13:42:44 -08:00
Daniel Micay
06a336ae79 vec: renovate the BaseIter impl
* add 'self region to the borrowed pointer parameter
* rm workaround for #2263
* inline (wrappers)
* iter-trait is gone
2013-03-09 16:27:15 -05:00
bors
1cde7e6bc2 auto merge of #5294 : apasel422/rust/clone, r=nikomatsakis
This makes `#[deriving_clone]` useful.

I wasn't sure if a macro was the right way to do this, but it seems more maintainable than a series of repetitive `impl`s.
2013-03-09 11:54:44 -08:00
Andrew Paseltiner
b4f57d46e6 kate: remove assert keyword 2013-03-09 12:23:33 -05:00
Andrew Paseltiner
78b6e375df kate: add Not to list of traits 2013-03-09 12:23:33 -05:00
Andrew Paseltiner
bef5396af6 core: implement Clone for primitive types 2013-03-09 12:14:12 -05:00
bors
a5fae1dac7 auto merge of #5290 : bstrie/rust/dis, r=pcwalton 2013-03-08 18:15:40 -08:00
Ben Striegel
fdf69dd7b0 Finish de-implicit-selfing everything but the test suite 2013-03-08 19:34:39 -05:00
bors
ddecef7944 auto merge of #5287 : thestinger/rust/iter-trait, r=pcwalton
Closes #2827
2013-03-08 15:27:37 -08:00
Daniel Micay
b69fb75348 implement BaseIter for dlist (removing iter-trait)
Closes #2827
2013-03-08 18:19:30 -05:00
Jed Davis
8453f3110c rust-mode.el uses the 'cl macros, so it should actually require them
Without this change, rust-mode doesn't work if 'cl hasn't been required
by something else, apparently.  I'm not entirely sure what changed such
that I started seeing this problem instead of not, but maybe the emacs
world has been making progress towards not loading 'cl at runtime if
it's only needed at compile time.
2013-03-08 12:51:16 -08:00
bors
eaed16cea6 auto merge of #5278 : brson/rust/logplusplus, r=brson
r?

`log` can  polymorphically log anything, but debug!, etc. requires a format string. With this patch you can equivalently write `debug!(foo)` or `debug!("%?", foo)`.

I'm doing this because I was trying to remove `log` (replacing it with nothing, at least temporarily), but there are a number of logging statements that just want to print an arbitrary value and don't care about the format string.

I'm not entirely convinced this is a good change, since it overloads the implementation of these macros and makes their usage slightly more nuanced.
2013-03-08 12:27:39 -08:00
bors
ac3dc66ec1 auto merge of #5284 : thestinger/rust/iter-trait, r=brson
I missed this when I replaced iter-trait with a `BaseIter` impl.
2013-03-08 11:36:36 -08:00
Daniel Micay
cf9e958fe0 rm obsolete iter-trait/option.rs file 2013-03-08 12:34:43 -05:00
bors
3bbcac3226 auto merge of #5279 : alexcrichton/rust/no-dvec, r=pcwalton
Closes #4985 by removing the `dvec` module and all use cases throughout the compiler.

A number of uses were directly convertible to `let mut foo = ~[];`, while others in hash maps and some fields had to be converted to `@mut ~[T]`. A small number of `DVec` instances in fields were able to be converted directly to `~[T]` without the `@`, but this was a difficult thing to do.
2013-03-08 08:45:43 -08:00
Alex Crichton
62651df2b4 Fix dvec-related fallout in tests 2013-03-08 09:56:52 -05:00
Alex Crichton
59de3853be core: Remove the dvec module 2013-03-08 09:54:41 -05:00
Alex Crichton
2c87920f52 test: Removing dvec uses 2013-03-08 09:54:41 -05:00
Alex Crichton
7f99a02ddb syntax: Remove uses of DVec 2013-03-08 09:54:20 -05:00
Alex Crichton
2a72099063 rustc: Remove uses of DVec 2013-03-08 09:54:20 -05:00
Alex Crichton
87f864292d std: Remove uses of DVec 2013-03-08 09:54:20 -05:00
Alex Crichton
7ccb0e63c5 core: Remove uses of DVec in io/repr 2013-03-08 09:53:45 -05:00
bors
647a94d01a auto merge of #5260 : pcwalton/rust/assert, r=pcwalton
r? @brson
2013-03-07 23:21:39 -08:00
Patrick Walton
48b14f5562 librustc: Add #[link_args] to metadata 2013-03-07 22:37:58 -08:00
Patrick Walton
d661711cc2 test: Fix tests. 2013-03-07 22:37:58 -08:00
Patrick Walton
9a17ef9b52 librustc: Stop parsing assert. 2013-03-07 22:37:57 -08:00
Patrick Walton
d7e74b5e91 librustc: Convert all uses of assert over to fail_unless! 2013-03-07 22:37:57 -08:00
Patrick Walton
0ea031bcb8 librustc: Remove record patterns from the compiler 2013-03-07 22:37:03 -08:00
Patrick Walton
954ae9c975 libsyntax: Remove struct literal expressions from the compiler 2013-03-07 22:32:55 -08:00