Commit graph

4981 commits

Author SHA1 Message Date
Huon Wilson
de2b5c50cd test/run-fail: Un-xfail a test, make some other xfailed ones compile (they still don't work). 2013-07-23 18:55:15 +10:00
Alex Crichton
5c6069141b Add a test for #5844 (a closed issue now) 2013-07-22 23:09:21 -07:00
Brian Anderson
219c1c71da extra: Remove uv, net, timer code
This will all be reimplemented in the new runtime.
2013-07-22 14:16:33 -07:00
Michael Woerister
4bd1424622 Ast spanned<T> refactoring, renaming: crate, local, blk, crate_num, crate_cfg.
`crate => Crate`
`local => Local`
`blk => Block`
`crate_num => CrateNum`
`crate_cfg => CrateConfig`

Also, Crate and Local are not wrapped in spanned<T> anymore.
2013-07-22 15:35:28 +02:00
bors
7b2218d248 auto merge of #7926 : brson/rust/issue-4116, r=graydon
When loading a module the parser will look for either foo.rs or foo/mod.rs and generate
an error when both are found.
2013-07-22 04:37:36 -07:00
Daniel Micay
fc05819181 Merge pull request #7936 from thestinger/cleanup
rm obsolete no-op lints
2013-07-21 20:04:15 -07:00
Brian Anderson
a74d92e8ab syntax: Bless mod.rs. #4116
When loading a module the parser will look for either foo.rs or foo/mod.rs and generate
an error when both are found.
2013-07-21 19:32:24 -07:00
bors
e336cbf8f9 auto merge of #7923 : alexcrichton/rust/add-tests, r=graydon
Closes #5275, #4547
2013-07-21 13:07:45 -07:00
Patrick Walton
06594ed96b librustc: Remove pub extern and priv extern from the language.
Place `pub` or `priv` on individual items instead.
2013-07-20 17:39:38 -07:00
Daniel Micay
13b474dcbb rm obsolete no-op lints 2013-07-20 20:17:08 -04:00
bors
5c999d4eca auto merge of #7894 : pcwalton/rust/and-pointers-in-at-boxes, r=brson
r? @brson
2013-07-20 10:55:34 -07:00
bors
8aae6edce0 auto merge of #7710 : michaelwoerister/rust/WP4, r=jdm
This pull request includes various improvements:

+ Composite types (structs, tuples, boxes, etc) are now handled more cleanly by debuginfo generation. Most notably, field offsets are now extracted directly from LLVM types, as opposed to trying to reconstruct them. This leads to more stable handling of edge cases (e.g. packed structs or structs implementing drop).

+ `debuginfo.rs` in general has seen a major cleanup. This includes better formatting, more readable variable and function names, removal of dead code, and better factoring of functionality.

+ Handling of `VariantInfo` in `ty.rs` has been improved. That is, the `type VariantInfo = @VariantInfo_` typedef has been replaced with explicit uses of @VariantInfo, and the duplicated logic for creating VariantInfo instances in `ty::enum_variants()` and `typeck::check::mod::check_enum_variants()` has been unified into a single constructor function. Both function now look nicer too :)

+ Debug info generation for enum types is now mostly supported. This includes:
  + Good support for C-style enums. Both DWARF and `gdb` know how to handle them.
  + Proper description of tuple- and struct-style enum variants as unions of structs.
  + Proper handling of univariant enums without discriminator field.
  + Unfortunately `gdb` always prints all possible interpretations of a union, so debug output of enums is verbose and unintuitive. Neither `LLVM` nor `gdb` support DWARF's `DW_TAG_variant` which allows to properly describe tagged unions. Adding support for this to `LLVM` seems doable. `gdb` however is another story. In the future we might be able to use `gdb`'s Python scripting support to alleviate this problem. In agreement with @jdm this is not a high priority for now.

+ The debuginfo test suite has been extended with 14 test files including tests for packed structs (with Drop), boxed structs, boxed vecs, vec slices, c-style enums (standalone and embedded), empty enums, tuple- and struct-style enums, and various pointer types to the above.

~~What is not yet included is DI support for some enum edge-cases represented as described in `trans::adt::NullablePointer`.~~

Cheers,
Michael

PS: closes #7819,  fixes #7712
2013-07-20 09:10:34 -07:00
bors
3a1db2d1e6 auto merge of #7886 : msullivan/rust/default-methods, r=pcwalton
This does a bunch of cleanup on the data structures for the trait system. (Unfortunately it doesn't remove `provided_method_sources`. Maybe later.)

It also changes how cross crate methods are handled, so that information about them is exported in metadata, instead of having the methods regenerated by every crate that imports an impl.

r? @nikomatsakis, maybe?
2013-07-20 07:28:36 -07:00
Ben Blum
4bcda7148d Fix warnings in src/test/bench tests. Nobody will ever care. 2013-07-20 05:12:04 -04:00
Michael Woerister
a1303cc815 debuginfo: Removed some test relying on data structure sizes hard to predict for all possible platforms and configurations. 2013-07-20 10:47:24 +02:00
Alex Crichton
0bba8f4b74 Add tests for issues which can be closed
Closes #5275, $4547
2013-07-19 19:01:46 -07:00
bors
06fec5243b auto merge of #7863 : catamorphism/rust/issue-5883, r=catamorphism 2013-07-19 00:25:36 -07:00
Michael Woerister
72cf2ee136 debuginfo: Implemented trait_method branch in create_function_metadata(). 2013-07-19 07:58:28 +02:00
Michael Woerister
e9baeab695 debuginfo: Adapted DI generation to new memory layout of unique vecs. 2013-07-19 07:58:28 +02:00
Michael Woerister
b2aeb4b04b debuginfo: Cleaned up style issues for pull request. 2013-07-19 07:58:28 +02:00
Michael Woerister
eed2d0e1f2 debuginfo: Added support for Option<T>-like enums. 2013-07-19 07:57:39 +02:00
Michael Woerister
7af2e6ee45 debuginfo: Fixed unique pointers to data containing managed pointers. 2013-07-19 07:57:39 +02:00
Michael Woerister
e0108a47ab debuginfo: DI generation for enums uses adt::represent_type() now. 2013-07-19 07:57:38 +02:00
Michael Woerister
70e5c08e39 debuginfo: Extended test suite with various tests for enums. 2013-07-19 07:57:38 +02:00
Michael Woerister
77a00cca03 debuginfo: Fixes related to changed memory layout of unique allocations 2013-07-19 07:55:25 +02:00
Michael Woerister
3b06df4e35 debuginfo: Added support for struct-style enums. 2013-07-19 07:55:25 +02:00
Michael Woerister
7cf0aac6cf debuginfo: Better support for univariant tuple-style enums. 2013-07-19 07:55:24 +02:00
Michael Woerister
f389bd8f2a debuginfo: Support for tuple-style enums (WIP) 2013-07-19 07:55:24 +02:00
Michael Woerister
739f3eece9 debuginfo: Added support for c-style enums. 2013-07-19 07:55:24 +02:00
Michael Woerister
99ebb816cf debuginfo: Added test cases for packed structs (/w drop) 2013-07-19 07:55:24 +02:00
Michael Woerister
f424e931da debuginfo: Refactoring of composite type info generation done.
There is no more StructContext now. Better support for boxed vectors in there too.
2013-07-19 07:55:24 +02:00
Michael Woerister
36ea756831 debuginfo: Refactored vec slice code to use the new infrastructure. Added test cases for vec slices. 2013-07-19 07:53:58 +02:00
Michael Woerister
7a31a3e071 debuginfo: Removed some misleading comments from test cases. 2013-07-19 07:53:57 +02:00
Michael Woerister
1b20831c1e debuginfo: Renamed *reference-to-* test cases to *borrowed-* 2013-07-19 07:53:57 +02:00
Michael Woerister
976d7a53cb debuginfo: Began refactoring of composite type handling. 2013-07-19 07:53:57 +02:00
Patrick Walton
9089cf2ec9 librustc: Forbid & pointers (other than &'static) inside @ boxes.
This makes custom borrowing implementations for custom smart pointers
sound.
2013-07-18 17:12:46 -07:00
Michael Sullivan
002bfd7966 Export information about used default methods instead of regenerating it. Closes #7862. 2013-07-18 13:56:15 -07:00
bors
f83c118f42 auto merge of #7833 : blake2-ppc/rust/hashmap-consume, r=alexcrichton
Updated all users of HashMap, HashSet ::consume() to use
.consume_iter().

Since .consume_iter() takes the map or set by value, it needs awkward
extra code to in librusti's use of @mut HashMap, where the map value can
not be directly moved out.

Addresses issue #7719
2013-07-18 10:19:44 -07:00
bors
559d2ef925 auto merge of #7842 : thestinger/rust/closure, r=huonw 2013-07-18 08:37:39 -07:00
blake2-ppc
7ef9e722b8 hashmap: Remove .consume() has rename .consume_iter() to .consume()
Updated all users of HashMap, HashSet old .consume() to use .consume()
with a for loop.

Since .consume() takes the map or set by value, it needs awkward
extra code to in librusti's use of @mut HashMap, where the map value can
not be directly moved out.
2013-07-18 15:03:59 +02:00
bors
cee5c4ad11 auto merge of #7849 : nikomatsakis/rust/issue-7444-capture-moved-value, r=bblum
This code looks like it was just wrong. r? @bblum
2013-07-18 01:37:44 -07:00
Tim Chevalier
0ce9135d71 testsuite: Test for #6153, closes #6153 2013-07-17 16:58:43 -07:00
Tim Chevalier
2fbd9f0cb2 testsuite: Add compile-fail test for #5883 2013-07-17 15:32:02 -07:00
Patrick Walton
3f8d548914 librustc: Remove some extra "copy" keywords that came in before this change merged. 2013-07-17 14:58:12 -07:00
Patrick Walton
dc4bf173f8 test: Fix tests. 2013-07-17 14:57:55 -07:00
Patrick Walton
2dbb3c3887 test: Fix tests. 2013-07-17 14:57:54 -07:00
Patrick Walton
e20549ff19 librustc: Remove all uses of the Copy bound. 2013-07-17 14:57:53 -07:00
Patrick Walton
99b33f7219 librustc: Remove all uses of "copy". 2013-07-17 14:57:51 -07:00
Patrick Walton
b4e674f6e6 librustc: Add a lint mode for unnecessary copy and remove a bunch of them. 2013-07-17 14:56:42 -07:00
bors
060de1016b auto merge of #7844 : huonw/rust/no-implicit-prelude, r=alexcrichton
It disables the insertion of `use std::prelude::*;` into the top of
all the modules below the item on which it is placed (including that
item itself).

(Similar to GHC's `-XNoImplicitPrelude`.)
2013-07-17 11:28:46 -07:00