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