Commit Graph

18953 Commits

Author SHA1 Message Date
Brendan Zabarauskas dee7c5af69 Add traits for concat and connect methods 2013-06-03 13:19:37 +10:00
Tim Chevalier 5b09dca90b docs: Mention recently-added rustpkg features in the rustpkg manual 2013-06-02 17:21:01 -07:00
bors c40baf68cb auto merge of #6905 : thestinger/rust/ptr, r=catamorphism
The ptr module is intended to be for raw pointers.

Closes #3111
2013-06-02 16:55:33 -07:00
Daniel Micay 454133127a ptr: split out borrowed pointer utilities
The ptr module is intended to be for raw pointers.

Closes #3111
2013-06-02 19:24:33 -04:00
bors dad945646f auto merge of #6879 : yichoi/rust/arm-test, r=brson
Fix #6353 and better support for ARM Test
2013-06-02 15:49:30 -07:00
Björn Steinbrink b51f44e21b Fix passing self by value for types passed by value
For types that are passed by value, we can't just cast the value to a
pointer, but have to use an alloca and copy the value there. This
handling is already present for all other arguments, but was missing
for "self".

Fixes #6682, #4850 and #4878
2013-06-03 00:06:09 +02:00
bors 63b11e48e5 auto merge of #6866 : pcwalton/rust/pub-extern, r=brson
r? @brson
2013-06-02 14:55:33 -07:00
bors 077ca79941 auto merge of #6867 : Dretch/rust/hashmap_get_mut, r=nikomatsakis 2013-06-02 09:16:40 -07:00
gareth d443fc6d90 Add a get_mut method to accompany the get method. 2013-06-02 16:22:43 +01:00
bors c354a0c7eb auto merge of #6896 : nickdesaulniers/rust/issue4501, r=brson
review? @brson
2013-06-01 22:37:35 -07:00
bors 14c331053e auto merge of #6815 : kballard/rust/hashmap-insert_or_modify_with, r=erickt
`std::hashmap::HashMap.insert_or_update_with()` is basically the opposite
of `find_or_insert_with()`. It inserts a given key-value pair if the key
does not already exist, or replaces the existing value with the output
of the passed function if it does.

This is useful because replicating this with existing functionality is awkward, especially with the current borrow-checker. In my own project I have code that looks like

	if match map.find_mut(&key) {
		None => { true }
		Some(x) => { *x += 1; false }
	} {
		map.insert(key, 0);
	}

and it took several iterations to make it look this good. The new function turns this into

    map.insert_or_update_with(key, 0, |_,x| *x += 1);
2013-06-01 21:31:36 -07:00
bors 96f6f29477 auto merge of #6891 : luqmana/rust/unit-struct-drop, r=catamorphism 2013-06-01 20:16:39 -07:00
Luqman Aden 101e3872fe Mark run-pass/unit-like-struct-drop-run.rs as xfast-fail. 2013-06-01 22:35:55 -04:00
bors fc5debd8fd auto merge of #6807 : catamorphism/rust/rustpkg-extern-mod, r=catamorphism
r? @graydon Addresses #5681
2013-06-01 19:22:42 -07:00
Tim Chevalier 60126e9365 testsuite: Add an xfailed test case for the new `extern mod` syntax 2013-06-01 18:48:07 -07:00
Tim Chevalier c120464be0 rustc/rusti/rustpkg: Infer packages from `extern mod` directives
This commit won't be quite as useful until I implement RUST_PATH and
until we change `extern mod` to take a general string instead of
an identifier (#5682 and #6407).

With that said, now if you're using rustpkg and a program contains:

extern mod foo;

rustpkg will attempt to search for `foo`, so that you don't have to
provide a -L directory explicitly. In addition, rustpkg will
actually try to build and install `foo`, unless it's already
installed (specifically, I tested that `extern mod extra;` would
not cause it to try to find source for `extra` and compile it
again).

This is as per #5681.

Incidentally, I changed some driver code to infer the link name
from the crate link_meta attributes. If that change isn't ok, say
something. Also, I changed the addl_lib_search_paths field in the
session options to be an @mut ~[Path] so that it can be modified
after expansion but before later phases.
2013-06-01 18:48:07 -07:00
Tim Chevalier 341678b815 rustc: Call str::is_empty 2013-06-01 18:48:07 -07:00
Tim Chevalier 760c71dc4f syntax: Add an each_view_item method on traits 2013-06-01 18:48:07 -07:00
Tim Chevalier 231aea6d6e rustc: Improve astconv error message 2013-06-01 18:48:07 -07:00
Nick Desaulniers ecd08b989a Swap return value of pipes::init Fixes #4501 2013-06-01 18:19:16 -07:00
Kevin Ballard 75f1b7f96f Add new function hashmap.insert_or_update_with()
fn insert_or_update_with<'a>(&'a mut self,
                             k: K,
                             f: &fn(&K, &mut V)) -> &'a V
2013-06-01 17:38:24 -07:00
Kevin Ballard 7bc950c43c Refactor some hashmap code into a new private function mangle()
Add new private hashmap function

    fn mangle(&mut self,
              k: K,
              not_found: &fn(&K) -> V,
              found: &fn(&K, &mut V)) -> uint

Rewrite find_or_insert() and find_or_insert_with() on top of mangle().

Also take the opportunity to change the return type of find_or_insert()
and find_or_insert_with() to &'a mut V. This fixes #6394.
2013-06-01 17:37:57 -07:00
bors 63417daea4 auto merge of #6885 : erickt/rust/move-callee_id, r=catamorphism
The `callee_id` in `ast::expr` in only used in a couple expression variants. This moves the `callee_id` into those branches to make it more clear when its should be used.

Also, it fixes a bug in a std::run test when there is a symlink in the path rust where was checked out.
2013-06-01 17:13:39 -07:00
Luqman Aden ddbd1aa883 Add test for #6861 2013-06-01 18:55:49 -04:00
bors 24e85ac82d auto merge of #6880 : thomaslee/rust/issue-6745, r=catamorphism
This fixes #6745, which itself relates to #4202. Slightly ham-fisted -- feel particularly funny about using the typeck phase to gather the base -> impl mapping, and the separate code paths for traits vs. "real" bases feels like it could be avoided -- but it seems to work.

As always, open to suggestions if there's a better way to accomplish what I'm trying to do.

@catamorphism r?
2013-06-01 15:46:40 -07:00
Erick Tryzelaar 23808efd11 syntax: move callee_id into the expr_ variants 2013-06-01 15:31:56 -07:00
bors c35b7b5d6e auto merge of #6889 : luqmana/rust/unit-struct-drop, r=catamorphism
Fixes #6861
2013-06-01 14:52:42 -07:00
Corey Richardson 2d635179f0 Windows fixes 2013-06-01 17:50:26 -04:00
Luqman Aden 64759c9f25 librustc: Have destructor run for unit-like structs. 2013-06-01 17:41:07 -04:00
Jed Davis c5d7a77a53 Fix vec::each* return values 2013-06-01 11:52:02 -07:00
Erick Tryzelaar 871684376f std: fix run tests when symlink is in the rust checkout path 2013-06-01 10:59:24 -07:00
Corey Richardson 023861cbd1 test fixes 2013-06-01 13:24:58 -04:00
bors 44af5064d0 auto merge of #6871 : pcwalton/rust/de-pub-impl, r=pcwalton 2013-06-01 09:37:39 -07:00
Patrick Walton 5fb254695b Remove all uses of `pub impl`. rs=style 2013-06-01 09:18:27 -07:00
Patrick Walton 1e52eede31 librustc: Don't require `pub extern` to make extern functions visible 2013-06-01 09:16:46 -07:00
Daniel Micay 933897c5f5 integrate jemalloc into the build 2013-06-01 11:31:44 -04:00
Daniel Micay cff203ef76 add jemalloc to the runtime 2013-06-01 10:45:11 -04:00
bors b8391ccea0 auto merge of #6881 : Aatch/rust/new-passes-2, r=thestinger
This is a better pipeline, both faster-running and produces faster code.

For some reason the `mergefunc` pass screws over resolve. I have no idea why though.
2013-06-01 06:13:40 -07:00
James Miller 6e075b6bb6 Better optimization pipeline 2013-06-02 00:08:38 +12:00
Tom Lee 42466949c2 Fix a small typo in a comment. 2013-06-01 04:24:31 -07:00
Tom Lee f6fa5b91e2 Reexport static methods on structs & enums. 2013-06-01 04:14:58 -07:00
Young-il Choi 18bee38bbe compiletest: update for language change 2013-06-01 18:09:20 +09:00
Young-il Choi 89c5ad69f0 compiletest: runtest.rs tidy 2013-06-01 17:33:11 +09:00
Young-il Choi 8b24a96e17 compiletest: runtest.rs cleanup 2013-06-01 17:30:22 +09:00
Young-il Choi c28c495414 etc: adb_run_wrapper.sh - fix to clean test (not produce Text File Busy) 2013-06-01 17:28:58 +09:00
Young-il Choi 0521d54ca1 etc: adb_run_wrapper argument change 2013-06-01 17:28:58 +09:00
Young-il Choi fe1dc3280f compiletest: improve exit code handling with adb_run_wrapper 2013-06-01 17:28:58 +09:00
Young-il Choi 0ea8274fca etc: adb_run_wrapper added 2013-06-01 17:28:57 +09:00
Young-il Choi 5076bca1ba mk: test.mk modify to better support 2013-06-01 17:28:57 +09:00
bors 2bf053c0a3 auto merge of #6851 : alexcrichton/rust/bugfixes, r=pcwalton
Closes #5090 by using the excellent new generic deriving code

Promotes the unreachable code attribute to a lint attribute (instead of always being a warning)

Fixes some edge cases when creating hashmaps/hashsets and also when consuming them. (fixes #5998)
2013-05-31 23:10:36 -07:00