bors
4e3dbf959a
auto merge of #8666 : nikomatsakis/rust/issue-3678-extern-fn-types, r=pcwalton
...
Change the type of crust fns like this one:
extern fn foo() { ... }
from `*u8` to `extern "C" fn()`.
r? @pcwalton (or whomever)
2013-08-22 07:01:27 -07:00
bors
3ddfb72512
auto merge of #8562 : bblum/rust/superkinds, r=nikomatsakis
...
For #7083 .
The metadata issue with the old version is now fixed. Ready for review.
This is also not the full solution to #7083 , because this is not supported yet:
```
trait Foo : Send { }
impl <T: Send> Foo for T { }
fn foo<T: Foo>(val: T, chan: std::comm::Chan<T>) {
chan.send(val);
}
```
cc @nikomatsakis
2013-08-21 18:51:42 -07:00
bors
9feaf1d023
auto merge of #8594 : bytewiseand/rust/static-fn-ptr, r=pcwalton
...
Fixes #8588
2013-08-21 15:51:34 -07:00
Andreas Martens
0f6dd53948
Split cross-crate test into own test and xfail-fast it
2013-08-21 17:29:47 +02:00
Niko Matsakis
82a9abbf62
Change type of extern fns from *u8
to extern "ABI" fn
...
cc #3678
2013-08-21 10:50:37 -04:00
Ben Blum
4fd404f2ca
Fixup style of test cases for #7083
2013-08-20 13:28:51 -04:00
Ben Blum
4ca2e55adb
Add tests for #7083 .
2013-08-20 13:28:50 -04:00
Graydon Hoare
29a449aae3
Add tests for cross-crate condition handling. Close #5446 .
2013-08-19 15:09:20 -07:00
Niko Matsakis
0479d946c8
Add externfn macro and correctly label fixed_stack_segments
2013-08-19 07:13:15 -04:00
Andreas Martens
cc0c6fd43c
Add assertions and cross crate tests
2013-08-18 22:17:47 +02:00
Erick Tryzelaar
ad5c676853
Fix warnings it tests
2013-08-17 08:42:35 -07:00
Alex Crichton
1764e207fb
Add even more tests
...
Closes #8248
Closes #8249
Closes #8398
Closes #8401
2013-08-15 14:22:36 -07:00
Alex Crichton
443bf93e48
Fix a typo in the ifmt dox
2013-08-15 14:19:09 -07:00
Alex Crichton
783c6a1fbf
Add a bunch of tests for closed issues
...
Closes #3907
Closes #5493
Closes #4464
Closes #4759
Closes #5666
Closes #5884
Closes #5926
Closes #6318
Closes #6557
Closes #6898
Closes #6919
Closes #7222
2013-08-13 21:32:34 -07:00
Alex Crichton
930885d5e5
Forbid pub/priv where it has no effect
...
Closes #5495
2013-08-12 23:20:46 -07:00
Erick Tryzelaar
09f4c9af13
Merge branch 'enum-method-privacy' of https://github.com/michaelwoerister/rust into rollup
...
Conflicts:
src/libsyntax/opt_vec.rs
2013-08-10 12:59:52 -07:00
Corey Richardson
0627089bba
Fix fallout
2013-08-07 23:20:06 -04:00
Alex Crichton
ffd80aa276
Fix unit structs in cross-crate situtations
2013-08-07 22:41:13 -04:00
Michael Woerister
2c9922aa49
Enable privacy check for enum methods.
2013-08-07 14:30:00 +02:00
Daniel Micay
1008945528
remove obsolete foreach
keyword
...
this has been replaced by `for`
2013-08-03 22:48:02 -04:00
bors
bbcce8d95c
auto merge of #8216 : thestinger/rust/range, r=huonw
2013-08-01 22:10:45 -07:00
Daniel Micay
234acad404
replace range
with an external iterator
2013-08-02 00:51:14 -04:00
bors
ecefeb03cc
auto merge of #8185 : alexcrichton/rust/issue-8179, r=pcwalton
...
* All globals marked as `pub` won't have the `internal` linkage type set
* All global references across crates are forced to use the address of the
global in the other crate via an external reference.
r? @graydon
Closes #8179
2013-08-01 19:46:47 -07:00
Daniel Micay
1fc4db2d08
migrate many for
loops to foreach
2013-08-01 05:34:55 -04:00
Alex Crichton
ea5f829307
Resolve globals having different addresses across crates
...
* All globals marked as `pub` won't have the `internal` linkage type set
* All global references across crates are forced to use the address of the
global in the other crate via an external reference.
2013-08-01 01:54:34 -07:00
Brian Anderson
11fc1fd485
test: Use a test extern in various foreign fn tests
2013-07-30 21:13:55 -07:00
Alex Crichton
09e49a8e6c
Allow linking against crates with #[no_std]
...
Previously having optional lang_items caused an assertion failure at
compile-time, and then once that was fixed there was a segfault at runtime of
using a NULL crate-map (crates with no_std)
2013-07-25 19:23:17 -07:00
bors
906264b50f
auto merge of #8015 : msullivan/rust/default-methods, r=nikomatsakis
...
Lots of changes to vtable resolution, handling of super/self method calls in default methods. Fix a lot of trait inheritance bugs.
r? @nikomatsakis
2013-07-25 03:07:44 -07:00
Michael Sullivan
387df4e127
Fix the issue-3979 tests and add a new test.
2013-07-23 17:06:56 -07:00
Alex Crichton
5c6069141b
Add a test for #5844 (a closed issue now)
2013-07-22 23:09:21 -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
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
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
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
Huon Wilson
e4f7561bcd
Clean-up tests after debug!/std-macros change.
...
The entire testsuite is converted to using info! rather than debug!
because some depend on the code within the debug! being trans'd.
2013-07-17 03:10:13 +10:00
Michael Sullivan
3fa5203273
Take default methods out from behind the flag.
2013-07-11 15:51:10 -07:00
Michael Sullivan
186f6faf1e
Get cross crate static default methods working. Closes #7569 .
2013-07-11 15:51:10 -07:00
Michael Sullivan
7238d5a141
Make privacy checking on default methods for cross crate structs not fail. Closes #7481 .
...
It is unclear to me that the way method call privacy checking is done
makes any sense, though. It is only performed if the type is a
struct...
2013-07-03 09:59:45 -07:00
Patrick Walton
1c0aa78481
librustc: Change "Owned" to "Send" everywhere
2013-06-28 10:44:15 -04:00
Patrick Walton
1eec3bba13
librustc: Rename Const to Freeze
2013-06-28 10:44:15 -04:00
Luqman Aden
ca2966c6d0
Change finalize -> drop.
2013-06-25 21:14:39 -04:00
Alex Crichton
1841b31c61
Add 'static mut' items to the language
2013-06-23 17:59:35 -07:00
Daniel Micay
d2e9912aea
vec: remove BaseIter implementation
...
I removed the `static-method-test.rs` test because it was heavily based
on `BaseIter` and there are plenty of other more complex uses of static
methods anyway.
2013-06-23 02:05:20 -04:00
Michael Sullivan
1a8969f64b
Get cross crate default methods working.
...
This fixes the large number of problems that prevented cross crate
methods from ever working. It also fixes a couple lingering bugs with
polymorphic default methods and cleans up some of the code paths.
Closes #4102 . Closes #4103 .
2013-06-20 15:42:16 -07:00
Niko Matsakis
eb48c29681
Add copies to type params with Copy bound
2013-06-16 12:47:36 -04:00
Daniel Micay
ec27644870
automated whitespace fixes
2013-06-13 18:03:08 -04:00
Patrick Walton
16086ecff7
libsyntax: Remove pub impl
from the language
2013-06-04 21:45:42 -07: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
Patrick Walton
5fb254695b
Remove all uses of pub impl
. rs=style
2013-06-01 09:18:27 -07:00
Tom Lee
f6fa5b91e2
Reexport static methods on structs & enums.
2013-06-01 04:14:58 -07:00
Patrick Walton
206ab89629
librustc: Stop reexporting the standard modules from prelude.
2013-05-29 19:04:53 -07:00
Patrick Walton
ee52865c88
test: Update tests and import the prelude in some more places.
2013-05-22 21:57:10 -07:00
Patrick Walton
1be40be613
test: Update tests to use the new syntax.
2013-05-22 21:57:10 -07:00
Patrick Walton
565942b145
librustc: Fix privacy checking for cross-crate variants
2013-05-22 21:57:03 -07:00
Patrick Walton
db518ef68a
test: Fix tests.
2013-05-22 21:57:02 -07:00
Patrick Walton
ca9bb2d9ac
librustc: Disallow use
from reaching into impls or traits.
...
This can perhaps be restored in the future. For now this is a precursor to
making typedefs work as expected.
2013-05-22 21:57:02 -07:00
Tom Lee
e02716e6d3
Reexport static trait methods on traits in the same module.
2013-05-19 17:07:18 -07:00
Daniel Micay
1789174541
minor automated whitespace fixes
2013-05-18 22:40:12 -04:00
Youngmin Yoo
a2a8596c3d
Rename vec::len(var) to var.len()
2013-05-15 11:05:28 +09:00
Björn Steinbrink
bdc182cc41
Use static string with fail!() and remove fail!(fmt!())
...
fail!() used to require owned strings but can handle static strings
now. Also, it can pass its arguments to fmt!() on its own, no need for
the caller to call fmt!() itself.
2013-05-14 16:36:23 +02:00
Tom Lee
1e241ce52b
Test case for issue #4202
2013-05-10 21:33:58 -07:00
Patrick Walton
9d011ebf67
test: Fix tests.
2013-05-08 17:04:02 -07:00
Brian Anderson
1755eec87f
test: Replace Durable with 'static
2013-05-07 17:50:27 -07:00
Seo Sanghyeon
502817a9c1
Fix cross-crate packed structs
2013-05-06 23:35:27 +09:00
Daniel Micay
86efd97a10
add gitattributes and fix whitespace issues
2013-05-03 20:01:42 -04:00
John Clements
dd310d6c3b
Got test cases to pass, after some major surgery
2013-04-30 16:31:45 -07:00
John Clements
5d8db6fd37
remove (non-parsing) test related to impl d for d feature
2013-04-30 10:12:03 -07:00
Patrick Walton
37abf4bad0
librustc: Forbid type implementations on typedefs.
2013-04-29 14:30:57 -07:00
Patrick Walton
17723d18de
test: Remove #[legacy_modes] from the test suite.
2013-04-29 14:30:55 -07:00
Daniel Micay
cc148b58ff
rename Linear{Map,Set} => Hash{Map,Set}
2013-04-03 10:30:36 -04:00
Daniel Micay
44029a5bbc
hashmap: rm linear namespace
2013-04-03 10:30:18 -04:00
Niko Matsakis
6965fe4bce
Add AbiSet and integrate it into the AST.
...
I believe this patch incorporates all expected syntax changes from extern
function reform (#3678 ). You can now write things like:
extern "<abi>" fn foo(s: S) -> T { ... }
extern "<abi>" mod { ... }
extern "<abi>" fn(S) -> T
The ABI for foreign functions is taken from this syntax (rather than from an
annotation). We support the full ABI specification I described on the mailing
list. The correct ABI is chosen based on the target architecture.
Calls by pointer to C functions are not yet supported, and the Rust type of
crust fns is still *u8.
2013-03-29 18:36:20 -07:00
Tim Chevalier
e01cf3caf5
testsuite: Add various test cases
...
Some are xfailed, some not, some existing ones get un-xfailed.
2013-03-27 10:09:02 -07:00
Patrick Walton
b07b36bbf3
test: Fix tests
2013-03-26 22:45:22 -07:00
Patrick Walton
0a4d0f37ca
librustc: Enforce that extern mod
directives come first, then use
directives, then items.
...
Resolve them in this order as well.
2013-03-26 21:30:17 -07:00
Alex Crichton
b53057f49d
test: Remove uses of oldmap::HashMap
2013-03-26 19:21:04 -04:00
Patrick Walton
85c9fc6f8f
librustc: Remove the const
declaration form everywhere
2013-03-22 22:24:35 -07:00
Patrick Walton
fa70709e07
libsyntax: Stop parsing pure
and static
2013-03-22 22:24:33 -07:00
Patrick Walton
3eda11a4f7
test: Remove pure
from the test suite
2013-03-22 12:57:28 -07:00
Patrick Walton
4634f7edae
librustc: Remove all uses of static
from functions. rs=destatic
2013-03-22 10:27:39 -07:00
bors
d52408d46a
auto merge of #5480 : pcwalton/rust/at-const, r=pcwalton
...
r? @catamorphism
2013-03-21 20:39:51 -07:00
Patrick Walton
d4fee24c7c
librustc: Forbid destructors from being attached to any structs that might contain non-Owned fields. r=nmatsakis
2013-03-21 17:31:34 -07:00
bors
6aa612a909
auto merge of #5461 : catamorphism/rust/flagless, r=nikomatsakis
...
r? @nikomatsakis The typechecker previously passed around a boolean return flag to
indicate whether it saw something with type _|_ (that is, something
it knows at compile-time will definitely diverge) and also had some
manual checks for the `ty_err` pseudo-type that represents a previous
type error. This was because the typing rules implemented by the
typechecker didn't properly propagate _|_ and ty_err. I fixed it.
This also required changing expected error messages in a few tests,
as now we're printing out fewer derived errors -- in fact, at this
point we should print out no derived errors, so report any that
you see (ones that include "[type error]") as bugs.
2013-03-21 11:46:00 -07:00
Patrick Walton
5726fd4526
librustc: Forbid access to cross-crate private static methods
2013-03-21 09:47:17 -07:00
Tim Chevalier
db00362313
Make typechecker compositional
...
The typechecker previously passed around a boolean return flag to
indicate whether it saw something with type _|_ (that is, something
it knows at compile-time will definitely diverge) and also had some
manual checks for the `ty_err` pseudo-type that represents a previous
type error. This was because the typing rules implemented by the
typechecker didn't properly propagate _|_ and ty_err. I fixed it.
This also required changing expected error messages in a few tests,
as now we're printing out fewer derived errors -- in fact, at this
point we should print out no derived errors, so report any that
you see (ones that include "[type error]") as bugs.
2013-03-20 19:44:38 -07:00
Patrick Walton
352c070365
librustc: Convert all uses of old lifetime notation to new lifetime notation. rs=delifetiming
2013-03-18 17:21:14 -07:00
Patrick Walton
58f248d923
test: Fix tests. rs=tests
2013-03-13 20:08:35 -07:00
Patrick Walton
ac60d53c65
test: Some test fixes
2013-03-13 20:07:11 -07:00
Patrick Walton
8fa66e8e07
librustc: Remove implicit self from the language, except for old-style drop blocks.
2013-03-13 20:07:10 -07:00
Patrick Walton
b1c699815d
librustc: Don't accept as Trait
anymore; fix all occurrences of it.
2013-03-13 20:07:09 -07:00
Niko Matsakis
852619d5d7
Remove ++
mode from the compiler (it is parsed as +
mode)
...
and obsolete `-` mode altogether (it *was* parsed as `+` mode).
2013-03-13 17:00:09 -04:00
Patrick Walton
1274d4a006
test: Fix tests. rs=tests
2013-03-11 09:36:00 -07:00
Patrick Walton
e48446d060
test: Remove newtype enums from the test suite. rs=deenum
2013-03-11 09:35:58 -07:00
Patrick Walton
d18f785457
librustc: Replace all uses of fn()
with &fn()
. rs=defun
2013-03-11 09:35:58 -07:00
Alex Crichton
2c87920f52
test: Removing dvec uses
2013-03-08 09:54:41 -05:00
Patrick Walton
6b5d1afeec
librustc: Remove "extern mod { ... }" from librustc, librustdoc, and tests. rs=deexterning
2013-03-07 22:32:52 -08:00
Josh Matthews
7bb03345cf
Inline constants across crates.
2013-03-07 15:34:52 -05:00
Niko Matsakis
6267339d68
Fix bug in coherence that causes all cross-crate impls to be regarded as
...
inherent impls, not just those of the `impl Type` variety.
2013-03-06 11:02:19 -05:00