Tim Chevalier
1330b1cdf5
Add test cases (one xfailed, one not)
...
as per #3601 and #3609
2013-01-03 14:55:51 -08:00
Patrick Walton
5bd8692e9d
test: Fix a bunch of compile-fail tests. rs=bustage
2012-12-28 19:36:35 -08:00
Tim Chevalier
65839fa622
Emit a type error for integer literals where the expected type is char
...
For example, in let x: char = 42; This was an ICE and is now a
proper type error, as per #3477
2012-12-22 15:58:05 -08:00
Brian Anderson
d062896a8b
Deal with test failures in various ways
2012-12-18 14:35:53 -08:00
Erick Tryzelaar
3fc74df7a4
fix warnings in vec destructuring tests
2012-12-17 22:01:38 -08:00
Jakub Wieczorek
6c83fe4c24
Add more tests
2012-12-17 16:50:40 -08:00
Jakub Wieczorek
1968cb315a
Add support for destructuring vectors in match expressions
2012-12-17 16:50:40 -08:00
Patrick Walton
ebd9ad4d04
librustc: Add a lint mode for deprecated self. r=brson
2012-12-14 19:46:55 -08:00
Patrick Walton
8a9ccf81b0
librustc: Implement a lint mode for default methods. r=brson
2012-12-14 19:28:43 -08:00
Patrick Walton
99fa9c3cab
Revert "librustc: Implement a lint mode for default methods"
...
This reverts commit 53b181dd47
.
2012-12-14 19:13:59 -08:00
Patrick Walton
53b181dd47
librustc: Implement a lint mode for default methods
2012-12-14 19:07:20 -08:00
Patrick Walton
bdb2d659ae
librustc: Ensure that no moves from the inside of @ or & boxes occur. rs=crashing-servo
2012-12-14 18:19:07 -08:00
Brian Anderson
0afe002757
Fix broken test
2012-12-14 15:38:53 -08:00
Brian Anderson
e6d1b02359
Rename core::comm to core::oldcomm
2012-12-14 14:59:32 -08:00
Patrick Walton
1b9f740f2f
librustc: Reset the mode context to MoveValue for block lambdas. rs=bugfix
2012-12-13 21:44:19 -08:00
Brian Anderson
b07a78b7cb
Fix broken tests
2012-12-13 19:06:27 -08:00
Brian Anderson
ed4fac01b5
Rename Send trait to Owned
2012-12-13 15:52:50 -08:00
Brian Anderson
a277081ee4
Rename Owned trait to Durable
2012-12-13 15:52:50 -08:00
Patrick Walton
cd120736cb
librustc: Allow moves out of self
. r=nmatsakis
2012-12-13 15:49:07 -08:00
Patrick Walton
45848b2040
librustc: Automatically move non-implicitly-copyable types into unique closures. r=nmatsakis
2012-12-13 15:33:33 -08:00
Patrick Walton
4c2e4c37ce
librustc: Make use
statements crate-relative by default. r=brson
2012-12-13 13:05:22 -08:00
Graydon Hoare
9a4c669867
syntax: remove remaining #syntaxext machinery. Close #3516 .
2012-12-12 17:08:09 -08:00
Graydon Hoare
e24ae85025
syntax: remove most code handling old-style syntax extensions.
2012-12-12 15:02:47 -08:00
Graydon Hoare
9cced55b93
syntax: remove all remaining uses of #ast, and #ast / qquote itself.
2012-12-12 15:02:47 -08:00
Tim Chevalier
38bd694df1
Reverse the order of the results of pipes::stream
...
As per #3637 .
2012-12-11 19:23:28 -08:00
Tim Chevalier
d42bdf1997
Auto-deref when checking field and method privacy
...
This disallows using pointers to sneak around priv qualifiers.
Deeming this too small for review as well. Closes #3763
2012-12-11 19:17:31 -08:00
Brian Anderson
a7159be24a
Remove old deriving
2012-12-11 18:11:14 -08:00
Tim Chevalier
6439f2d546
Avoid extra error for type mismatches in patterns
...
When a type error has already occurred, don't call ty::subst,
which may ICE due to the mismatch in the number of type params
involved.
I'm deeming this too small to review.
Closes #3680
2012-12-11 17:38:57 -08:00
Tim Chevalier
94a76843f4
Revert "Merge pull request #4144 from luqmana/deprecated-attribute"
...
This reverts commit f675b97ddc
, reversing
changes made to e7dd3af970
.
2012-12-11 12:28:30 -08:00
Tim Chevalier
f675b97ddc
Merge pull request #4144 from luqmana/deprecated-attribute
...
Add deprecated attribute.
2012-12-10 21:16:20 -08:00
Brian Anderson
3fcdb7d6a7
Adjust the die macro to only accept ~str and to work in statement position
2012-12-10 18:16:22 -08:00
Graydon Hoare
d1affff623
Reliciense makefiles and testsuite. Yup.
2012-12-10 17:32:58 -08:00
Luqman Aden
a0d7b96170
Add test case for deprecated attribute.
2012-12-09 03:20:35 -05:00
Tim Chevalier
a7f29b3498
Fix busted test case
...
My last commit made more type errors recoverable, so extra errors
that were getting suppressed before were unleashed.
2012-12-08 23:51:51 -08:00
Tim Chevalier
42f8a3366a
Print out a more helpful type error message for do-blocks/for-loops
...
If a do-block body has the wrong type, or a for-loop body has a
non-() type, suggest that the user might have meant the other one.
Closes #2817
r=brson
2012-12-08 23:04:38 -08:00
Tim Chevalier
13c7b97248
Add test for #2995
2012-12-07 21:40:42 -08:00
Tim Chevalier
8255aa1ec9
Add test case for #2828
2012-12-07 21:29:49 -08:00
Brian Anderson
10c9d7921d
Trait constraints are separated by space, not comma
2012-12-07 15:54:17 -08:00
Brian Anderson
2fcf562d16
Add an auto-slice-and-ref step to method lookup. Allows ~[T] to work with explicit self
2012-12-07 15:29:38 -08:00
Tim Chevalier
35f36808ff
Test cases, some xfailed
2012-12-06 21:53:14 -08:00
Tim Chevalier
fe9a339939
Add various test cases, mostly xfailed
2012-12-06 16:14:54 -08:00
Patrick Walton
14a7be31bb
test: Fix busted test. rs=bustage
2012-12-06 14:54:01 -08:00
Patrick Walton
e6ab0ca8b1
test: Fix more compile-fail bustage. rs=bustage
2012-12-06 12:13:30 -08:00
Patrick Walton
45052e13a5
test: Fix some compile-fail bustage. rs=bustage
2012-12-06 11:08:23 -08:00
Patrick Walton
7203be1109
librustc: Fix handling of ~
and @
unary operators in mode computation. Closes #4114 . rs=bugfix
2012-12-05 22:57:58 -08:00
Patrick Walton
33c1e47c1b
librustc: Implement moves based on type. r=nmatsakis
2012-12-04 15:38:04 -08:00
Brian Anderson
83a55ea73a
Fix some compile-fail tests
2012-12-01 15:59:04 -08:00
Tim Chevalier
daf28a421a
Disallow dereferencing enum types when the variant is private
...
If an enum type's only variant is private, disallow dereferencing
values of its type.
Due to #4082 , this only applies to enums that are in the same crate.
r=pcwalton
Closes #818
2012-11-30 12:45:10 -08:00
Brian Anderson
3ed9fbd63c
impls of traits cannot define methods on the anonymous trait
2012-11-29 22:07:49 -08:00
Brian Anderson
78ee821154
Implement trait inheritance for bounded type parameters
2012-11-29 18:10:11 -08:00
Patrick Walton
2a6c6348b7
test: Remove obsolete tests. rs=buildbot
2012-11-29 15:12:06 -08:00
Tim Chevalier
f459acc45d
Disallow importing private items
...
resolve wasn't checking that a `use` referred to a public item.
r=brson
2012-11-29 14:12:51 -08:00
Paul Stansifer
15e03e1e5e
Forbid attrs on macros, since we don't handle them properly yet.
2012-11-29 12:09:11 -08:00
Patrick Walton
9e1c9be16f
librustc: Make the Drop trait use explicit self
2012-11-29 11:06:15 -08:00
Brian Anderson
fc06114ddf
Merge remote-tracking branch 'brson/companion' into incoming
...
Conflicts:
src/compiletest/compiletest.rs
src/libcargo/cargo.rs
src/libcore/core.rs
src/librustc/rustc.rs
src/librustdoc/rustdoc.rc
2012-11-28 13:17:33 -08:00
Patrick Walton
1c348e6e38
librustc: Implement @mut [T] as the new replacement for @[mut T]
2012-11-27 09:23:31 -08:00
Brian Anderson
be6613e048
Remove the crate language
2012-11-26 18:13:54 -08:00
Niko Matsakis
117e5e3583
Implement LUB algorithm and add new unit-testing infrastructure for infer.
...
r=brson
2012-11-24 09:53:39 -05:00
Tim Chevalier
ef833d4101
Introduce a T_err type for type errors
...
This allows more errors to be non-fatal, as per #1871 .
I only went through and started changing span_fatal to span_err in
check.rs. There are probably more errors that could be made
non-fatal. So if you see derived type errors appearing from now on,
file a bug!
r=graydon
Closes #1871
2012-11-21 12:44:51 -08:00
Patrick Walton
318e534895
rustc: Implement explicit self for Eq and Ord. r=graydon
2012-11-19 15:33:11 -08:00
Brian Anderson
74b2e99797
Report errors better when failing to open files for sub-parsers
2012-11-18 18:09:41 -08:00
Brian Anderson
72cc1aca17
Parse file mods from .rs files
2012-11-18 18:09:41 -08:00
Tim Chevalier
b9b21b2614
Update test and un-xfail it
2012-11-15 19:36:48 -08:00
Tim Chevalier
9d6ab9ae23
Update error message and un-xfail test
2012-11-15 19:36:48 -08:00
Tim Chevalier
39c306eeef
Un-xfail working tests
2012-11-15 19:36:44 -08:00
Tim Chevalier
2fd2a56063
Update error message and un-xfail test
2012-11-15 18:41:17 -08:00
Tim Chevalier
f8bd95589f
Add comments explaining why these tests are xfailed
2012-11-15 18:41:17 -08:00
Tim Chevalier
d4cc7db138
Un-xfail working test
2012-11-15 18:41:17 -08:00
Tim Chevalier
2f83baf857
Check for duplicate supertraits and forbid them
...
As per #3953
2012-11-15 18:41:17 -08:00
Tim Chevalier
82017b8416
Make staticness mismatch a fatal error
...
Exit with a fatal error, instead of recording a non-fatal error,
when we encounter an impl method that's static when its corresponding
trait method isn't (or vice versa). This is because code later on in
the typechecker will expect the staticness of the two methods to be
consistent and ICE otherwise.
r=nmatsakis
Closes #3969
2012-11-15 18:14:13 -08:00
Tim Chevalier
cb355bf7ad
Update error message and un-xfail test
2012-11-15 17:14:28 -08:00
Tim Chevalier
fb47e41411
Un-xfail working tests
2012-11-15 16:59:07 -08:00
Tim Chevalier
6b65aed350
Remove test that tested behavior of unchecked blocks
...
We don't have unchecked blocks anymore.
2012-11-15 16:59:07 -08:00
Tim Chevalier
d58e0e30ed
Update error messages and un-xfail
2012-11-15 16:59:07 -08:00
Tim Chevalier
35b2960d00
Add another test for #3177
2012-11-15 16:59:07 -08:00
Tim Chevalier
1f81e4cbc6
Remove typestate test
2012-11-15 16:59:07 -08:00
Patrick Walton
adc4bed773
librustc: Implement (and require) explicit self for derivable traits. r=nmatsakis
2012-11-15 10:26:49 -08:00
Ben Striegel
f4a5a76aa4
Convert the test suite to use the Drop trait
2012-11-14 19:26:37 -08:00
Brian Anderson
8336cad95d
Move two fn assignability tests from compile-fail to run-pass
2012-11-14 12:40:23 -08:00
Brian Anderson
f14240b1c8
Remove obsolete const pattern test
2012-11-14 11:43:28 -08:00
Patrick Walton
32ad4ae4cd
librustc: Require the #[derivable] attribute, remove the significance of "impl Foo : Bar;", and allow only a subset of methods in a trait to be derived. r=brson
2012-11-14 11:36:55 -08:00
Brian Anderson
cf002e9d32
Tools should not be build prereqs of tests. Closes #3946
2012-11-13 18:35:02 -08:00
Graydon Hoare
4e1ce014c8
cleanup: convert some remaining #foo invocations to foo! form.
2012-11-13 08:57:31 -08:00
Patrick Walton
fe02814a63
rustc: Implement floating point literal inference. r=nmatsakis
2012-11-12 10:39:08 -08:00
Brian Anderson
f05e2da709
Add a test for multiple main functions
2012-11-09 12:13:55 -08:00
Patrick Walton
0fc952372a
rustc: Support irrefutable patterns in function arguments. r=nmatsakis
2012-11-07 19:29:30 -08:00
Patrick Walton
2904095570
rustc: Implement the Drop trait. r=brson
2012-11-07 12:34:32 -08:00
Niko Matsakis
b0ed151539
Cleanup how we handle proto in types, remove unsound subtyping
...
Fixes #1896 which was never truly fixed, just masked.
The given tests would have failed had they used `~fn()` and
not `@fn()`. They now result in compilation errors.
Fixes #2978 .
Necessary first step for #2202 , #2263 .
2012-11-06 08:56:29 -08:00
Patrick Walton
be93b29d30
rustc: Implement parsing and typechecking for "once fn"
2012-11-05 13:17:02 -08:00
Patrick Walton
caf68038dd
test: Fix error messages in compile-fail tests. rs=rustbot
2012-11-02 10:43:28 -07:00
Patrick Walton
0c2e6fda73
rustc: Implement ~Trait. r=nmatsakis
2012-11-02 10:15:19 -07:00
Patrick Walton
106f9976ab
rustc: Implement typechecking, exhaustiveness checking, and borrow checking for pattern matching of tuple structs. r=nmatsakis
...
Conflicts:
src/rustc/middle/typeck/check/alt.rs
2012-11-02 09:56:09 -07:00
Tim Chevalier
768247f393
Tests for #1896
2012-11-01 15:14:52 -07:00
Brian Anderson
cb4de738cf
Fix checking of duplicate and missing struct field initializers. Closes #3486 . Closes #3892
2012-10-31 13:56:41 -07:00
Tim Chevalier
165ce14f68
Remove xfail-pretty from tests that pretty-print correctly now
2012-10-30 15:06:10 -07:00
Tim Chevalier
62f98c8ff8
Preserve parenthesization in the AST
...
Maintain explicit "paren" nodes in the AST so we can pretty-print
without having to guess where parens should go. We may revisit this
in the future.
r=graydon
2012-10-30 15:05:32 -07:00
Patrick Walton
a369a7881f
rustc: Implement typechecking for automatically-derived enums
2012-10-29 14:11:56 -07:00
Tim Chevalier
5e5ea04608
Make class-cast-to-trait compile (not sure why this worked before)
2012-10-27 17:38:57 -07:00
Niko Matsakis
2093952847
Partial fix for #2687---impl method must only be subtype of trait method, not exact match.
2012-10-26 19:41:17 -07:00
Patrick Walton
57cd6b3e3f
rustc: Translate and check exhaustiveness of struct-like enum variant patterns. r=nmatsakis
2012-10-25 13:59:10 -07:00
Niko Matsakis
1a3a70760b
Implement proper subtyping for region fn types (part of #2263 )
2012-10-24 18:56:31 -07:00
Viktor Dahl
0707780eac
Added compile-fail tests
2012-10-24 19:14:50 +02:00
Tim Chevalier
11e92f37c1
Remove uses of binary move - <- - from tests and libraries
2012-10-23 12:10:03 -07:00
Tim Chevalier
46d4bbbae4
Simplify the AST representation of ty param bounds
...
Change ast::ty_param_bound so that all ty param bounds are represented
as traits, with no special cases for Copy/Send/Owned/Const.
typeck::collect generates the special cases.
A consequence of this is that code using the #[no_core] attribute
can't use the Copy kind/trait. Probably not a big deal?
As a side effect, any user-defined traits that happen to be called
Copy, etc. in the same module override the built-in Copy trait.
r=nmatsakis
Closes #2284
2012-10-22 09:01:12 -07:00
Niko Matsakis
42c05fe642
Correct propagation of mutability from components to base in borrowck
...
Fixes #3828 .
2012-10-21 23:52:36 -07:00
Brian Anderson
837875711a
Remove obsolete fixed-length string test
2012-10-20 17:50:46 -07:00
Brian Anderson
f3df50f67f
Parse and report obsolete fixed-length vector syntax
2012-10-20 17:50:46 -07:00
Ben Striegel
ac81fff229
Remove old fixed-length vector syntax
2012-10-20 17:50:46 -07:00
Patrick Walton
fa38c12901
test: Fix failing tests. r=rustbot
2012-10-18 12:09:40 -07:00
Philipp Brüschweiler
e7e1bab27f
libsyntax: refactor the parser to consider foreign items as items
...
parse_item_or_view_item() would drop visibility if none of the conditions
following it would hold. This was the case when parsing extern {} blocks,
where the function was only used to parse view items, but discarded the
visibility of the first not-view item.
2012-10-17 15:34:55 -07:00
Tim Chevalier
bbc46d527d
Add test for Issue 2823
2012-10-15 17:12:42 -07:00
Tim Chevalier
7d84505654
Error out in resolve if structs try to capture type parameters
...
Closes #3214
2012-10-15 16:27:53 -07:00
Tim Chevalier
c5b82a65e9
Add test cases for #3668
...
Previous commits fix the issue.
Closes #3668
2012-10-15 14:41:09 -07:00
Tim Chevalier
4f9e7babeb
Un-xfail test for #3521 ; it works now
...
Closes #3521
2012-10-15 14:18:15 -07:00
Niko Matsakis
2a1aa9fb53
Check whether loans conflict with old loans or with themselves.
...
Along the way, convert from dvec-of-dvec representation to track loans in scope
to just a single flattened list. It's more convenient.
Fixes #3765 . r+ pcwalton.
2012-10-15 13:37:50 -07:00
Tim Chevalier
7237268b70
Allow enum discriminator exprs to refer to declared consts
...
Also some work towards #3521
Closes #2428
2012-10-15 12:28:29 -07:00
Tim Chevalier
f6211ab187
Add various test cases (xfailed)
2012-10-15 12:00:32 -07:00
Tim Chevalier
632d60691a
Test that functional struct update exprs get rejected if...
...
...they require copying noncopyable fields.
2012-10-12 20:43:38 -07:00
Tim Chevalier
2145348090
Make moves explicit in cfail tests
2012-10-12 20:43:37 -07:00
Niko Matsakis
98887cc7ee
remove ctor from ast (take 2) (no review: just dead code removal)
2012-10-12 19:46:37 -07:00
Kevin Cantu
1bede1f5e0
Replace several common macros of the form #m[...] with m!(...)
...
This commit replaces nearly all remaining uses of #fmt, #debug, #error,
and #info, and fixes some error messages...
2012-10-12 14:14:48 -07:00
Tim Chevalier
a477c5af20
Revert "cap-clause-use-after-move: modernize error msg"
...
This reverts commit bbda995bfe
.
2012-10-08 13:11:16 -07:00
Tim Chevalier
2cee21462f
Merge branch 'incoming' into snap-2012-10-05
2012-10-08 10:48:07 -07:00
Tim Chevalier
7bdab1e4a4
Revert "remove ctor from ast"
...
This reverts commit ed3689d57c
.
2012-10-08 09:00:23 -07:00
Niko Matsakis
bbda995bfe
cap-clause-use-after-move: modernize error msg
2012-10-08 08:57:37 -07:00
Niko Matsakis
ed3689d57c
remove ctor from ast
2012-10-08 06:36:42 -07:00
Tim Chevalier
f96a2a2ca1
Remove by-mutable-ref mode from the compiler
...
and test cases. Closes #3513
2012-10-05 22:45:50 -07:00
Tim Chevalier
e16dbb7888
Demode some code using by-mutbl-ref; warn about by-mutbl-ref
...
The parser now warns about use of mutbl-ref mode, though it's kind
of a lie since this commit doesn't remove support for the mode.
Changed move_val_init to have stage0 and stage1/2 versions, the latter of
which is demoded.
Changed the type that the typechecker expects the move_val_init
intrinsic to have. After this is pushed, I can make a new snapshot,
which will remove the need for the stage0 versions.
2012-10-05 15:37:01 -07:00
Tim Chevalier
fe12da0864
De-mode comm::Chan
2012-10-04 16:48:57 -07:00
Brian Anderson
edc317b821
Remove arg vectors from main functions. Stop supporting them.
2012-10-04 15:07:49 -07:00
Patrick Walton
c2fc7316a9
test: Fix error message in vtable-res-trait-param
2012-10-03 21:13:58 -07:00
Tim Chevalier
3639d38d5c
Add a demoded version of ptr::addr_of
...
Currently, the new version is ptr::p2::addr_of and the old one is
ptr::addr_of. This is kind of cheesy, but I need a snapshot before I
can ditch the old version, since the pipe compiler generates calls to
addr_of.
core is converted over to use the new version, std is not.
2012-09-28 22:19:01 -07:00
Niko Matsakis
21519bc7e0
demode vec
2012-09-28 13:27:45 -07:00
Niko Matsakis
67a8e7128a
Demode vec::push (and convert to method)
2012-09-26 18:02:07 -07:00
Vincent Belliard
ef23d77633
fix issue #3535 and add colon between mode and type when dumping funcion prototype
2012-09-26 07:48:19 -07:00
Brian Anderson
62649f0412
Check more things with deprecated_modes
2012-09-25 17:41:29 -07:00
Niko Matsakis
267ab11cca
use + mode for (almost) everything when not using legacy modes
2012-09-25 12:47:35 -07:00
Brian Anderson
afd91f8a56
Register snapshots. Remove redundant Eq impls, Makefile hacks
2012-09-23 23:01:49 -07:00
Niko Matsakis
ba3eebd41d
Make it illegal to use modes in a fn signature with providing
...
an explicit variable name. (Step one to changing the defaults)
First step to #3535
2012-09-23 13:30:13 -05:00
Graydon Hoare
dffe188991
Install new pub/priv/export rules as defaults, old rules accessible under #[legacy_exports];
2012-09-21 18:11:43 -07:00
Graydon Hoare
6e9f997f8e
Fix ord test breakage.
2012-09-20 14:00:33 -07:00
Patrick Walton
9117dcb968
rustc: De-mode all overloaded operators
2012-09-20 09:48:05 -07:00
Niko Matsakis
cfed923600
demode the each() method on vec and other iterables.
2012-09-19 17:03:01 -07:00
Graydon Hoare
1ffd90edbc
Remove redundant hashmap constructor functions.
2012-09-19 15:51:44 -07:00
Niko Matsakis
9cf271fe96
De-mode vec::each() and many of the str iteration routines
...
Note that the method foo.each() is not de-moded, nor the other
vec routines.
2012-09-19 10:52:59 -07:00
Niko Matsakis
8d4928f780
Revert "replace explicit calls to vec::each with vec::each_ref, partially demode str"
...
This reverts commit 1be24f0758
.
Not quite ready.
2012-09-18 21:41:13 -07:00
Niko Matsakis
1be24f0758
replace explicit calls to vec::each with vec::each_ref, partially demode str
2012-09-18 21:31:00 -07:00
Patrick Walton
e653d493fb
rustc: Remove legacy mode inference, unless #[legacy_modes] is used
2012-09-18 15:53:04 -07:00
Brian Anderson
d53cfd225a
core: Move Exclusive and SharedMutableState to the private mod
2012-09-18 15:23:57 -07:00
Brian Anderson
eb35039fe8
Change 'must' to 'should' in non_camel_case_types message
2012-09-18 12:18:00 -07:00
Brian Anderson
76c8b83efa
Consolidate tests for non_camel_case_types
2012-09-18 11:56:08 -07:00
Brian Anderson
2cdb23bbc0
Replace uses of 'unchecked' with 'unsafe'
2012-09-18 11:31:57 -07:00
Brian Anderson
f563c0b525
warn(non_camel_case_types) by default
2012-09-17 18:52:50 -07:00
Brian Anderson
c7e5c870f3
Remove restricted keyword tests
2012-09-14 16:16:46 -07:00
Niko Matsakis
5d540de769
fixup mutability of vec::each, make iter_bytes pure
...
also, change DVec() to work with imm vectors rather than mut ones
2012-09-12 13:29:31 -07:00
Niko Matsakis
8a8f200d10
Introduce auto adjustment table to subsume autoderef/autoref/borrowings.
...
Fixes #3261
Fixes #3443
2012-09-11 21:25:01 -07:00
Brian Anderson
3d2a74a160
Reserve 'be' as a keyword
2012-09-11 19:26:48 -07:00
Brian Anderson
ea01ee2e9e
Convert 'use' to 'extern mod'. Remove old 'use' syntax
2012-09-11 19:25:43 -07:00
Drew Willcoxon
98bd4a992c
Improve unexpected error scanner for compile-fail tests ( Closes #1476 )
2012-09-11 17:22:24 -07:00
Brian Anderson
1203da3b9d
Remove priv sections from classes. Obsolete the syntax
2012-09-11 15:29:37 -07:00
Brian Anderson
298eb8c726
Convert 'import' to 'use'. Remove 'import' keyword.
2012-09-10 19:04:26 -07:00
Brian Anderson
6957af770b
Report obsolete trait lists on structs
2012-09-10 18:12:35 -07:00
Brian Anderson
73eb894305
Report obsolete class method syntax
2012-09-10 17:48:33 -07:00
Brian Anderson
cb7a5395dd
Convert std::map to camel case
2012-09-10 17:08:36 -07:00
Brian Anderson
93d3b8aa6b
Convert class methods to impl methods. Stop parsing class methods
2012-09-10 16:13:08 -07:00
Brian Anderson
ef9aa80438
Promote most restricted keywords to strict keywords
2012-09-10 12:07:19 -07:00
Brian Anderson
25dc59dc59
libsyntax: Parse and report errors for a few obsolete syntaxes
2012-09-08 20:04:21 -07:00
Brian Anderson
3bd1f32cd9
Convert all kind bounds to camel case. Remove send, owned keywords.
2012-09-07 18:10:11 -07:00
Brian Anderson
cd3956054d
Fix obsolete struct syntax in test
2012-09-07 17:54:47 -07:00
Graydon Hoare
5d823d46ad
Migrate std::map to use core: #️⃣ :Hash trait. Disable many hokey hashes.
2012-09-07 17:24:16 -07:00
Tim Chevalier
f5093dff7b
Remove support for multiple traits in a single impl
...
There was half-working support for them, but they were never fully
implemented or even approved. Remove them altogether.
Closes #3410
2012-09-07 17:22:04 -07:00
Graydon Hoare
e9f5a099df
Add an ignore! macro, remove support for nested block comments, re: #2755 .
2012-09-07 16:58:36 -07:00
Brian Anderson
249668f223
Remove module keyword
2012-09-07 16:53:21 -07:00
Brian Anderson
f0eae8f1c1
Convert field terminators to commas. Stop parsing semis.
2012-09-07 16:12:15 -07:00
Brian Anderson
2572e80355
Remove 'let' syntax for struct fields
2012-09-07 14:02:33 -07:00
Tim Chevalier
ac1f84c153
Don't check impl ty params for equality with trait ty params
...
This was too restrictive. We need to check the number of ty params,
and that the bounds are equal, but otherwise require_same_types does the job.
Closes #2611
2012-09-07 12:11:17 -07:00
Tim Chevalier
c6b51547c1
In typeck, don't assume traits with default methods are in the same crate
...
But note that default methods still don't work cross-crate (see #2794 ) --
this just makes it so that when a method is missing in a cross-crate impl,
the right error message gets printed.
Closes #3344
2012-09-07 10:27:29 -07:00
Tim Chevalier
8152164a34
Another test for #2587
2012-09-06 16:46:59 -07:00
Tim Chevalier
46990ad111
Use callee ID when kind-checking expressions that may be overloaded
...
And fix up test cases that should have failed if not for this bug.
Closes #2587
2012-09-06 15:44:10 -07:00
Brian Anderson
b4e547d71a
Remove struct ctors
2012-09-06 10:52:26 -07:00
Niko Matsakis
5e36a99794
Refactor trans to replace lvalue and friends with Datum.
...
Also:
- report illegal move/ref combos whether or not ref comes first
- commented out fix for #3387 , too restrictive and causes an ICE
2012-09-06 06:11:12 -07:00
Patrick Walton
0a852e0da0
rustc: Make "priv" work on enum variants
2012-09-05 17:24:28 -07:00
Graydon Hoare
81695d85dc
Mark crate metadata with a version tag. Close #3390 .
2012-09-05 16:53:55 -07:00
Patrick Walton
31af60b257
rustc: Fix double-reporting of private item errors. Un-XFAIL private-item-simple.rs.
2012-09-05 16:21:53 -07:00
Patrick Walton
f686896f60
test: "import" -> "use"
2012-09-05 12:32:05 -07:00
Patrick Walton
9b88b5fe38
rustc: Don't allow private fields to be named in constructors or destructured
2012-09-04 19:07:23 -07:00
Patrick Walton
fba673b26b
rustc: Implement private methods.
...
Doesn't work cross-crate yet.
2012-09-04 18:30:27 -07:00
Brian Anderson
200959d7ce
Remove 'with'
2012-09-04 15:47:04 -07:00
Patrick Walton
127144bf38
rustc: Implement private fields for max/min classes
2012-09-04 14:50:46 -07:00
Brian Anderson
f393100b7c
Camel case core::ops
2012-09-02 18:13:56 -07:00
Brian Anderson
80c4f74c29
Remove the 'to' keyword
2012-09-01 18:38:18 -07:00
Tim Chevalier
4128cc4cb4
Make utility funs in core::int, core::uint, etc. not by-reference
...
Closes #3302
2012-08-31 16:21:47 -07:00
Graydon Hoare
3462bb6a46
Fix some more test breakage.
2012-08-30 19:05:54 -07:00
Patrick Walton
f74014b0e7
test: Fix compile-fail tests
2012-08-30 17:13:35 -07:00
Patrick Walton
96534365c2
rustc: Make <
and =
into traits
2012-08-29 18:25:22 -07:00
Brian Anderson
aab4d6b8d7
std: Camel case some constructors
2012-08-29 15:34:38 -07:00
Ben Striegel
a605fd0cad
CamelCasify lots of std
2012-08-28 18:52:44 -07:00
Graydon Hoare
ecb646477b
Add lint modes for uses of @ and ~ pointers, in general.
2012-08-28 18:25:41 -07:00
Brian Anderson
cfbc7cbdc7
Convert core::pipes to camel case
2012-08-28 14:33:18 -07:00
Brian Anderson
161a82e433
Camel case various core constructors
2012-08-27 17:22:18 -07:00
Brian Anderson
8337fa1a54
Camel case the option type
2012-08-26 15:56:16 -07:00
Tim Chevalier
bb5c07922f
Add test case for #2356
2012-08-25 09:15:32 -07:00
Michael Sullivan
e55c5ceac2
Infer purity for || style closures. Closes #3023 .
2012-08-24 14:21:27 -07:00
Ben Blum
d09fd6561f
Add a compile-fail test for #3255
2012-08-24 16:43:03 -04:00
Niko Matsakis
e47d2f6060
extend liveness to treat bindings more like other variables
...
This results in a lot of warnings in rustc. I left them in because
many are bugs and we should fix our code, but Graydon asked that
I not touch every file in the codebase.
2012-08-24 12:55:08 -07:00
Ben Blum
34886ed488
Add a test case for helpful errors when copying into closures ( #2942 )
2012-08-23 22:20:34 -04:00
Niko Matsakis
a08f3a7d4d
More complete fix to #3162 (borrowck bug related to access to rec fields)
2012-08-23 18:54:08 -07:00
Niko Matsakis
5ccf8175a8
don't consider use of @fn
to be region-param'd
2012-08-23 17:55:04 -07:00
Niko Matsakis
5eea7d6e61
don't infer region paramaterization for ids in a bound context
2012-08-23 16:22:23 -07:00
Tim Chevalier
e9622f09aa
Remove match check from test cases
2012-08-23 15:12:02 -07:00
Paul Stansifer
29f32b4a72
m1!{...}
-> m1!(...)
2012-08-23 11:14:14 -07:00
Niko Matsakis
511e7626ae
Infer variance of types with respect to the region parameter.
...
A similar approach could be used for type parameters.
Fixes #2282 .
2012-08-23 06:30:43 -07:00
Ben Blum
e5fb58e6c0
Add compile-fail tests for unsound moving out of enums ( #2329 )
2012-08-22 20:40:25 -04:00
Niko Matsakis
652b312122
more sound treatment of fn& regions; change all & to be distinct
2012-08-21 10:28:34 -07:00
Niko Matsakis
8ee79c79aa
new region inference, seperate infer into modules, improve error msgs
...
Fixes #2806
Fixes #3197
Fixes #3138
2012-08-20 22:00:06 -07:00
Ben Blum
c321cdbac6
Disallow deconstructing destructing structs ( fixes #3147 )
2012-08-20 20:05:00 -04:00
Michael Sullivan
a14485b7fd
Do vtable resolution for *all* method calls, not just statically resolved ones... Closes #3221 .
2012-08-20 13:36:15 -07:00
Patrick Walton
19b8598c09
rustc: Implement "priv" for simple items.
...
Inherited privacy doesn't work yet. This probably requires a snapshot since
it won't be backwards compatible. Additionally, two errors are printed instead
of one. For this reason the test is XFAIL'd.
2012-08-17 17:56:47 -07:00
Niko Matsakis
fcb055ef7e
forgotten tests for #3217 , #2977 , #3067
2012-08-17 17:31:03 -07:00
Patrick Walton
0845579130
test: Fix unused variable warning in repeat-to-run-dtor-twice.rs.
...
Hopefully puts out burning tinderbox.
2012-08-17 17:11:25 -07:00
Patrick Walton
1ed94a5674
rustc: Prevent destructors from being run twice with the repeated vector syntax
2012-08-17 16:12:07 -07:00
Niko Matsakis
ea549e7a71
make borrowck more conservative around rvalues.
...
this will require more temporaries, but is probably less magical.
also, it means that borrowck matches trans better, so fewer crashes.
bonus.
Finally, stop warning about implicit copies when we are actually borrowing.
Also, one test (vec-res-add) stopped failing due to #2587 , and hence I
added an xfail-test.
Fixes #3217 , #2977 , #3067
2012-08-17 15:14:13 -07:00
Lindsey Kuper
eb834fdb81
Stop parsing iface
.
2012-08-17 14:32:34 -07:00
Brian Anderson
3ab4b014cf
Remove the class keyword
2012-08-17 10:13:45 -07:00
Graydon Hoare
b8845f0e25
Fix sub-breakage due to the changed error message.
2012-08-16 14:48:48 -07:00
Brian Anderson
9c6890f488
Convert more core types to camel case
2012-08-15 17:46:05 -07:00
Patrick Walton
e1b11aaf4b
test: Fix parsing problem in map-types.rs
2012-08-15 16:51:51 -07:00
Patrick Walton
d54db12155
rustc: Implement automatic reference for method receivers
2012-08-15 16:20:33 -07:00
Tim Chevalier
c0140f5c34
Reject empty matches on inhabited types
...
Closes #3096
2012-08-15 14:57:45 -07:00
Brian Anderson
74c69e1053
Convert more core types to camel case
2012-08-15 14:14:20 -07:00
Ben Blum
f6f9333d5c
Add cfail test arc-rw-state-shouldnt-escape
2012-08-15 13:22:50 -04:00
Tim Chevalier
f78c906535
Add xfailed test for #2123
2012-08-14 20:02:34 -07:00
Brian Anderson
2674f7902f
Fix another broken test
2012-08-14 15:15:15 -07:00
Brian Anderson
e79dd23ac1
xfail view-items-at-top
2012-08-14 15:14:01 -07:00
Brian Anderson
ffe74b7a3b
test: Use a mod that exists in view-item-at-top
2012-08-14 15:13:47 -07:00
Ben Blum
589ee65fd4
Add rw_arc.downgrade() + std and cfail tests. Tons of region FIXMEs... (cf #2282 , #3154 )
2012-08-14 17:53:18 -04:00
Graydon Hoare
8e1f1e3b52
Dodge 'use' keyword in testsuite. Was burning tree.
2012-08-14 12:53:45 -07:00
Patrick Walton
30e243a5aa
libsyntax: Give a nice error message when view items are used anywhere other than the top of a module.
...
This is a step on the way to parsing "extern mod foo;"
2012-08-14 11:23:25 -07:00
Ben Blum
2e1b98d34f
Change borrowck error 'the the block' -> 'the block'
2012-08-13 21:53:41 -04:00
Patrick Walton
d4012e7895
test: Make issue-2590 conform to the spirit of the test better
2012-08-13 18:15:20 -07:00
Patrick Walton
dfe0ed033f
test: Make issue-2590 test for implicit copies instead of moves.
...
With the removal of modes, function arguments can't demand that their arguments be moved anymore.
2012-08-13 18:11:38 -07:00
Patrick Walton
36d8682269
test: Fix type error message in an effort to unbreak the build
2012-08-13 17:13:48 -07:00
Patrick Walton
6e31183614
test: Modify error messages in some compile-fail tests in an attempt to unbreak the tree
2012-08-13 16:13:12 -07:00
Niko Matsakis
9169a1b26a
correct glb computation, improve region error msgs
...
cc #3180
2012-08-11 20:24:11 -07:00
Ben Blum
67b5d5f673
Fix compile-fail arc/sync tests
2012-08-10 21:24:10 -04:00
Ben Blum
1b32b13c72
Add a can't-nest-rw-arcs test case (xfailed, #3177 )
2012-08-10 20:53:09 -04:00
Ben Blum
42825fbea6
Split libcore/arc.rs: arc -> std::arc; exclusive -> unsafe::exclusive
2012-08-10 20:53:09 -04:00
Brian Anderson
96fdad2fb7
Change 'ret' to 'return' in an error message
2012-08-10 12:20:58 -07:00
Ben Blum
4c9f168372
Convert sync to the new struct syntax
2012-08-09 23:23:17 -04:00
Ben Blum
d913492855
Change coherence error 'implement a trait instead' -> 'implement a trait or new type instead'
2012-08-09 20:29:34 -04:00
Niko Matsakis
22a14dd700
Enforce a stricter notion of purity when borrowing. Fixes #3162 .
2012-08-09 14:23:56 -07:00
Niko Matsakis
9a77a17e3b
unxfail-test and try to test for similar conditions as before
...
fixes #2772
2012-08-09 11:00:44 -07:00
Brian Anderson
6a0720b439
Convert impls to new syntax
2012-08-08 18:19:24 -07:00
Ben Blum
904a74e99c
add compile-fail test sync-cond-shouldnt-escape.rs
2012-08-08 19:59:38 -04:00
Niko Matsakis
52c517383e
improve borrowck error messages to explain regions better
2012-08-07 20:59:06 -07:00
Michael Sullivan
7f7f47620e
Implement static typeclass methods. Closes #3132 .
2012-08-07 17:18:14 -07:00
Lindsey Kuper
e656261ee7
Comments, minor refactoring, clean up wording of error messages
2012-08-07 10:29:19 -07:00
Niko Matsakis
dbef6e593d
move borrowck tests to use ref, fix a few exposed shortcomings
2012-08-07 06:11:12 -07:00
Niko Matsakis
aacd18f4ed
first shot at integrating ref/value bindings into borrowck
...
(more needed)
2012-08-06 19:15:39 -07:00
Tim Chevalier
a4cedd9598
Disallow multiple constructors or destructors in the same class
...
Closes #2825
2012-08-06 18:01:26 -07:00
Tim Chevalier
6bd01d0ac8
In resolve, forbid duplicate value, type, and module items
...
Closes #3099
2012-08-06 16:37:18 -07:00
Niko Matsakis
0308884416
s/alt/match/... again.
2012-08-06 16:16:08 -07:00
Niko Matsakis
a6a5c48c64
make ref x
bindings produce region ptrs and fix various minor bugs
...
we now detect inconsistent modes, binding names, and various other errors.
typeck/trans integration is mostly done.
borrowck not so much.
more tests needed.
2012-08-06 16:12:40 -07:00
Brian Anderson
ecaf9e39c9
Convert alt to match. Stop parsing alt
2012-08-06 15:36:30 -07:00
Brian Anderson
025d86624d
Switch alts to use arrows
2012-08-05 22:08:09 -07:00
Patrick Walton
f23674394f
rustc: Merge fn& and fn in favor of fn&.
...
This is a step on the way to moving the function "proto" sigil out front.
2012-08-03 19:49:12 -07:00
Patrick Walton
4bfd4fb8ea
test: Remove a fixed-length string from a test
2012-08-03 11:47:08 -07:00
Niko Matsakis
31c5cec55b
Purge placement new; Make borrowck know about unary move.
...
cc #3071
2012-08-02 22:36:36 -07:00
Tim Chevalier
c2bb2f0837
When checking loop bodies and do-expr bodies, don't require the expected type to exist
...
If the expected type is none (due to a type error), we shouldn't fail with an ICE, but
rather, just print out another type error. Changed the do-expr type error message to
make sense in this context (see the test case for how it works).
Closes #3044 .
2012-08-02 21:44:14 -07:00
Lindsey Kuper
2f832d4b2d
test: "iface" -> "trait" in filenames.
2012-08-02 17:58:56 -07:00
Brian Anderson
b355936b4d
Convert ret to return
2012-08-01 19:16:06 -07:00
Brian Anderson
507fba57d1
syntax: Allow any block-like expr to be used as alt arm w/o comma separator
2012-08-01 17:57:03 -07:00
Niko Matsakis
a334deb5d5
change how we print and explain region types
2012-07-31 22:00:19 -07:00
Brian Anderson
a841789a41
rustc: Add non_camel_case_types lint check
2012-07-31 18:58:23 -07:00
Patrick Walton
c88933d714
rustc: Implement unary move. Closes #917 .
2012-07-31 17:33:20 -07:00
Brian Anderson
7b2026bf21
Introduce 'return', 'match' and 'module' as synonyms
2012-07-31 17:22:30 -07:00
Lindsey Kuper
439afaa329
Change remaining "iface" occurrences to "trait"; deprecate "iface"
2012-07-31 11:52:16 -07:00
Paul Stansifer
a9cc5066ee
Change syntax extension syntax: #m[...]
-> m!{...}
.
2012-07-30 18:38:15 -07:00
Lindsey Kuper
f78776e9d8
rustc: "iface" -> "trait" in comments, error messages, and identifiers.
...
(Also "interface" -> "trait" in error messages.)
2012-07-30 17:26:14 -07:00
Brian Anderson
ef29f7ff36
syntax: Fix semicolon printing. Closes #3036
2012-07-30 16:09:52 -07:00
Niko Matsakis
5d32d03b89
Fix #2979 : inference for lifetimes of & expressions
...
What we now do is to create a region variable for each &
expression (and also each borrow). The lifetime of this
variable will be checked by borrowck to ensure it is not greater
than the lifetime of the underlying data. This both leads to
shorter lifetimes in some cases but also longer in others,
such as taking the address to the interior of unique boxes
tht are rooted in region pointers (e.g., returning a pointer
to the interior of a sendable map).
This may lead to issue #2977 if the rvalue is not POD, because
we may drop the data in trans sooner than borrowck expects us
to. Need to work out precisely where that fix ought to occur.
2012-07-30 14:49:28 -07:00
Tim Chevalier
082d8314da
Rewrite bitv to use classes and optimize its representation
...
Rewrote bitv as a class that uses a 32-bit int as its representation
for bit vectors of 32 bits or less, and a vector (the old representation)
otherwise. I didn't benchmark very much, but a bit of informal benchmarking
suggested this is a win.
Closes #2341
2012-07-29 18:39:15 -07:00
Patrick Walton
93c2f5e0e4
rustc: Use coherence for operator overloading.
...
The only use of the old-style impls is now placement new.
2012-07-27 19:35:24 -07:00
Tim Chevalier
f7382c454f
Forbid duplicate fields in record types and exprs
...
Closes #3033
2012-07-27 17:33:05 -07:00
Tim Chevalier
a0d05844ed
Correctly forbid upvars in nested impls, traits and classes
...
Previously, resolve was allowing impls, traits or classes that were
nested within a fn to refer to upvars, as well as referring to type
parameters bound by the fn. Fixing this required adding a new kind of
def: def_typaram_binder, which can refer to any of an impl, trait or
class that has bound ty params. resolve uses this to enforce that
methods can refer to their parent item's type parameters, but not to
outer items' type parameters; other stages ignore it. I also made
sure that impl, trait and class methods get checked inside a
MethodRibKind thing so as to forbid upvars, and changed the definition
of MethodRibKind so that its second argument is an optional node_id
(so that required trait method signatures can be checked with a
MethodRibKind as well).
2012-07-27 17:31:42 -07:00
Niko Matsakis
638491712e
change region inference to not consider & that appears in a fn
...
type as indicating region parameterization
2012-07-27 15:49:03 -07:00
Tim Chevalier
b6aadf56c8
In resolve, check for duplicate pattern-bound vars
...
Closes #3038
2012-07-27 13:35:17 -07:00
Graydon Hoare
dbbaa50290
Nomenclature fixes in the lint checker. Fewer double-negatives.
...
New style is allow(foo), warn(foo), deny(foo) and forbid(foo),
mirrored by -A foo, -W foo, -D foo and -F foo on command line.
These replace -W no-foo, -W foo, -W err-foo, respectively.
Forbid is new, and means "deny, and you can't override it".
2012-07-26 17:08:33 -07:00
Graydon Hoare
f8dc9283ad
Reject non-UTF-8 files when reading as str. Close #2918 .
2012-07-25 15:34:18 -07:00
Niko Matsakis
99674dc52b
avoid capture of bound regions when infering types for closure
...
expressions. cc #2981
2012-07-25 05:45:52 -07:00
Niko Matsakis
168306f11b
correct treatment of mutability for deref'd components
...
Fixes #2980
2012-07-25 05:45:52 -07:00
Niko Matsakis
f676547c97
Fix intersection of two region params in infer, cc #2962
2012-07-19 10:14:16 -07:00
Patrick Walton
00aa5f163f
test: XFAIL some more in an effort to unbreak the tree
2012-07-19 07:30:37 -07:00
Patrick Walton
f82db5d136
test: Change the expected error message on iface-test.rs to contain "trait" instead of "interface"
2012-07-18 20:42:14 -07:00
Tim Chevalier
3119afc6e8
In resolve3, error on non-existent imports
...
Closes #2937
2012-07-18 18:02:07 -07:00
Niko Matsakis
e0ea67a2a6
prevent regions from escaping in ifaces; remove &r.T syntax
2012-07-18 11:48:58 -07:00
Patrick Walton
db020ab63c
rustc: Implement and enforce instance coherence
2012-07-17 15:46:43 -07:00
Niko Matsakis
0e42004bab
introduce an owned kind for data that contains no borrowed ptrs
2012-07-16 20:18:18 -07:00
Niko Matsakis
3ef7ff8b89
infer the scope of borrows
2012-07-14 17:37:32 -07:00
Niko Matsakis
41a21f053c
remove typestate from code, tests, and docs
2012-07-14 17:37:20 -07:00