Commit Graph

16454 Commits

Author SHA1 Message Date
John Clements ab8e46b066 add assert_eq! macro
the assert_eq! macro compares its arguments and fails if they're not
equal. It's more informative than fail_unless!, because it explicitly
writes the given and expected arguments on failure.
2013-03-20 13:27:45 -07:00
bors 99ac243e7b auto merge of #5445 : nikomatsakis/rust/issue-3678-refactor-trans_call, r=graydon
Refactor trans_call to separate out the translation of the arguments, environment, and return pointer.  Towards #3678.  r? @brson
2013-03-20 13:15:58 -07:00
bors 0847d52a86 auto merge of #5450 : pcwalton/rust/warnings, r=graydon
r? @graydon
2013-03-20 11:52:09 -07:00
Patrick Walton e72d011f68 librustc: Remove debug code and add scary warnings for rusti/rustpkg 2013-03-20 11:44:01 -07:00
Erick Tryzelaar cefecd8601 core: add str::each{,i}_reverse 2013-03-20 07:53:23 -07:00
Erick Tryzelaar 8d5ab3061a core: add char_len method 2013-03-20 07:53:23 -07:00
Erick Tryzelaar 4b0f29a466 core: add char_at_reverse 2013-03-20 07:53:23 -07:00
bors 63a292fd86 auto merge of #5434 : apasel422/rust/deriving, r=nikomatsakis
This is the first step in refactoring the deriving code in libsyntax. No code is changed, just rearranged.
2013-03-20 06:45:51 -07:00
bors c202430687 auto merge of #5435 : nikomatsakis/rust/issue-4846-refactor-self_info, r=nikomatsakis
Refactor the self-info so that the def-id is carried in ty_self()and the fn_ctxt doesn't need any self_info field at all. Pull out explicit self transformation into `check_method`. Step towards fixing `fn(&self)` to have a distinct lifetime. (cc #4846) 

r? @catamorphism
2013-03-20 03:18:45 -07:00
Niko Matsakis ad70c748c3 Apply explicit self transformation before we enter check_fn 2013-03-20 06:17:03 -04:00
Niko Matsakis 00f97b9fb0 Refactor the self-info so that the def-id is carried in ty_self()
and the fn_ctxt doesn't need any self_info field at all.

Step towards fixing `fn(&self)` (cc #4846) to have a distinct
lifetime.
2013-03-20 06:14:53 -04:00
bors db4dc1ffe2 auto merge of #5443 : alexcrichton/rust/less-bad-copy, r=catamorphism
Removes a lot of instances of `/*bad*/ copy` throughout libsyntax/librustc. On the plus side, this shaves about 2s off of the runtime when compiling `librustc` with optimizations.

Ideally I would have run a profiler to figure out which copies are the most critical to remove, but in reality there was a liberal amount of `git grep`s along with some spot checking and removing the easy ones.
2013-03-20 00:09:47 -07:00
bors 01e179840f auto merge of #5432 : ILyoan/rust/arm_use_ndk_rebase, r=sanxiyn
Partial Fix for #5265

- Enabling LLVM ARM ehabi option.
- Add ARM debug information manually for ccall.s
- Compile object file using Android-NDK.

Current LLVM trunk version can generate ARM debug information for assembly files but it is incomplete for object files. Unwinding on ARM can be done with LLVM trunk(the LLVM submodule of rust has problem on generating ARM debug information). See #5368

The Android-NDK detour(0f89eab) can be removed after LLVM has complete feature of generating ARM debug information for object file.
2013-03-19 23:12:46 -07:00
Alex Crichton 3fac7cce8f rustc: Remove some bad copies throughout 2013-03-20 01:28:32 -04:00
bors f3c879fdd8 auto merge of #5442 : pcwalton/rust/extern-block-restriction, r=pcwalton
r? @graydon
2013-03-19 21:57:49 -07:00
Patrick Walton f8dab3a6c0 test: Fix test. rs=test 2013-03-19 21:55:23 -07:00
Alex Crichton cd7f3ad22e syntax: Removing some bad copies 2013-03-20 00:33:15 -04:00
Patrick Walton ca3bc644f4 libcore: Make a couple of constructors public. rs=testfixing 2013-03-19 20:37:53 -07:00
Erick Tryzelaar fe74a1c9a2 core: rename vec::rev_each{,i} to vec::each{,i}_reverse
I'm making this change because the _reverse suffix is more commonly
used in libcore/libstd.
2013-03-19 20:24:04 -07:00
bors 4cb9ca9296 auto merge of #5410 : luqmana/rust/cfg-and, r=graydon
This adopts the syntax from #2119. No more annoying workarounds involving wrapping in mods!
2013-03-19 18:39:50 -07:00
Patrick Walton e6f53c091e libsyntax: Forbid `use` (and most other things) within `extern { ... }` blocks 2013-03-19 18:00:18 -07:00
bors 251d0c4557 auto merge of #5350 : yichoi/rust/pull-0313-2, r=graydon,pcwalton
FIX #5330

rename arm-unknown-android to arm-linux-androideabi
2013-03-19 17:06:55 -07:00
Luqman Aden 811d88024f Mark cfg test xfail-fast since check-fast doesn't understand compile-flags. 2013-03-19 16:50:07 -07:00
Luqman Aden 480e9ff8df compiletest: Make pretty tests actually use compile-flags. 2013-03-19 16:36:06 -07:00
Luqman Aden 6450ee91be Fix pretty printing for cfg test. 2013-03-19 16:26:23 -07:00
Andrew Paseltiner 3042321b3b syntax: split deriving module into submodules for each trait 2013-03-19 18:44:41 -04:00
bors bc211f5032 auto merge of #5436 : alexcrichton/rust/assert-message, r=pcwalton
This would close #2761. I figured that if you're supplying your own custom message, you probably don't mind the stringification of the condition to not be in the message.
2013-03-19 15:43:02 -07:00
Andrew Paseltiner 18a594f49a syntax: move ext/deriving.rs to ext/deriving/mod.rs 2013-03-19 18:41:19 -04:00
Patrick Walton b0bea10898 libsyntax: Accept the new `[T, ..N]` style for vec. 2013-03-19 15:40:04 -07:00
Patrick Walton 049e1f9a1f libsyntax: Accept `static` instead of `const` for globals 2013-03-19 14:46:27 -07:00
Luqman Aden b9fc773649 Update run-pass/cfg-on-items.rs
Make comment describe actual behaviour.
2013-03-19 14:25:48 -07:00
bors 5ae76b5bab auto merge of #5428 : thestinger/rust/tutorial, r=catamorphism
My goal is to explain the underlying concepts first (destructors and then ownership) with plenty of step-by-step examples, so that thoroughly explaining the semantics of mutability, boxes, moves, etc. is a breeze. I'm trying to avoid the comparisons with C++ that were done before, because this should be approachable for people coming from any language. C++ programmers already know these concepts so they aren't the audience that needs to be catered to. Comparisons with other languages can be done in separate documents (like [this one](https://github.com/mozilla/rust/wiki/Rust-for-CXX-programmers)).

This still needs examples for ownership (inherited mutability), owned boxes and managed boxes.
2013-03-19 13:58:06 -07:00
Patrick Walton 2e7ec80bcc librustc: Enforce privacy for static methods.
This starts moving a bunch of privacy checks into the privacy
checking phase and out of resolve.
2013-03-19 13:40:48 -07:00
Daniel Micay 9967dc81fe rewrite the tutorial section on boxes 2013-03-19 16:27:08 -04:00
Luqman Aden 1e16edd995 Tests for cfg attribute. 2013-03-19 13:00:51 -07:00
Luqman Aden 429fed0c8b librustc: adjust logic for cfg attribute and add not predicate. 2013-03-19 13:00:51 -07:00
bors e1888948c6 auto merge of #5426 : nikomatsakis/rust/issue-4846-lifetimes-in-expl-self, r=pcwalton
(this will be needed for snapshotting at some point)

r? @pcwalton
2013-03-19 12:43:14 -07:00
bors a14ec73cd2 auto merge of #5356 : jld/rust/enum-less-magic, r=graydon
Fixes #1645.
2013-03-19 11:43:10 -07:00
Niko Matsakis e821671989 Refactor trans_call to separate out the translation of the arguments, environment, and return pointer 2013-03-19 14:40:34 -04:00
Alex Crichton 14df844744 Allow custom messages on assert statements 2013-03-19 14:07:00 -04:00
bors 58209910bd auto merge of #5433 : lucab/rust/lucab/cfgspec, r=graydon
All current meta items types (word, name-value, list) are now
properly parsed by rustc --cfg command line. Fixes #2399
2013-03-19 10:43:24 -07:00
bors 3c84bac946 auto merge of #5112 : luqmana/rust/3469, r=graydon
So this is a partial fix for #3469. Partial because it only works for simple constant expressions like `32/2` and `2+2` and not for any actual constants.

For example:
```
const FOO: uint = 2+2;
let v: [int * FOO];
```

results in:
```
error: expected constant expr for vector length: Non-constant path in constant expr
```

This seems to be because at the point of error (`typeck::astconv`) the def_map doesn't contain the constant and thus it can't lookup the actual expression (`2+2` in this case).

So, feedback on what I have so far and suggestions for how to address the constant issue?
2013-03-19 09:52:17 -07:00
Luca Bruno 0a34a3f0f5 Make driver::driver::parse_cfgspecs parse any variety of meta_item
All current meta items types (word, name-value, list) are now
properly parsed by rustc --cfg command line. Fixes #2399

Signed-off-by: Luca Bruno <lucab@debian.org>
2013-03-19 14:02:59 +01:00
ILyoan c1cacc3667 Rewrite arm/ccall.s 2013-03-19 17:23:41 +09:00
ILyoan 0f89eab89d Use NDK for building android target objects 2013-03-19 17:23:31 +09:00
ILyoan 1ded138851 Enable arm error handling abi 2 2013-03-19 17:23:18 +09:00
ILyoan f581b2f9dd Enable arm error handling abi 2013-03-19 17:23:08 +09:00
Luqman Aden d7d17dc14e Add tests for const exprs in fixed vec length type and vec repeat. 2013-03-18 17:31:42 -07:00
Luqman Aden da64994f18 Fix pretty printer for fixed length vectors. 2013-03-18 17:31:42 -07:00
Luqman Aden 8b66578e66 Allow expressions that are not just a single value for repeated fixed length vector syntax. 2013-03-18 17:31:41 -07:00