Patrick Walton
6969f0f2fc
Issue #2572 : (trans) Fix self-referential classes.
2012-06-14 18:51:31 -07:00
Michael Sullivan
af60716281
Get an initial implementation of boxed vectors working.
2012-06-14 18:01:05 -07:00
Tim Chevalier
97bcb20244
Avoid some duplicated typechecking work
...
There was a FIXME noting that ty::enum_variants and typeck::check::
check_enum_variants both call eval_const_expr. I tried refactoring the
code so that check_enum_variants does all the work and enum_variants
just looks up cached results, but this turned out not to be easy because
several ty functions call enum_variants and it might get invoked on an
enum before that enum item has been typechecked. Instead, I just made
check_enum_variants update the enum_var_cache so that enum_variants
will never call eval_const_expr twice on the same const.
2012-06-14 16:21:53 -07:00
Brian Anderson
ce750a7dbc
Box AST idents
2012-06-13 11:30:45 -07:00
Michael Sullivan
ccf4e8cf9a
Make vectors contain the right type descriptor. Closes #2536 .
2012-06-12 17:01:13 -07:00
Michael Sullivan
4f61dcb026
Introduce an unboxed_vec type
2012-06-12 17:01:13 -07:00
Niko Matsakis
d1ec1d4abb
Treat enums with one variant specially in borrowck: #2573
2012-06-12 14:30:14 -07:00
Michael Sullivan
d04ed0c493
Reorder things in hash_type_structure to make more sense.
2012-06-12 10:58:00 -07:00
Tim Chevalier
87d57e4919
Don't treat all class fields as mutable, except in trans
...
Closes #2550
2012-06-11 10:16:17 -07:00
Lindsey Kuper
0863ac25a7
Update READMEs and comments to reflect "rustsyntax" -> "syntax" change
2012-06-08 17:24:14 -07:00
Lindsey Kuper
b8af02e219
WIP on issue #1425 : mostly infrastructure changes.
2012-06-08 15:20:21 -07:00
Michael Sullivan
bf0d6a77c5
Reorder the arms of sty.
2012-06-07 17:09:23 -07:00
Graydon Hoare
c56b8f8924
Remove unused middle::ty::sort_methods function.
2012-06-06 20:20:22 -07:00
Tim Chevalier
32e448e0da
Change subtypes_require to handle class fields correctly
2012-06-06 15:45:49 -07:00
Tim Chevalier
a6c92f0a17
Revert "Revert "Merge pull request #2516 from mozilla/incoming" due to failures"
...
This reverts commit 9fae95860de510f6874810cf43efb83f101246ef.
2012-06-06 15:08:24 -07:00
Michael Sullivan
01a6c713c3
Make vecs/strs not implicitly copyable by default, but make it configurable. Closes #2450 .
2012-06-04 19:53:30 -07:00
Michael Sullivan
4d5d43beae
Warn when invoking polymorphic functions with non copyable types. Closes #2466 .
2012-06-04 16:30:41 -07:00
Lindsey Kuper
7d0755529e
Add ty_var_integral (WIP on issue #1425 ).
2012-06-02 11:19:27 -07:00
Tim Chevalier
79787833bb
Make sure classes with dtors are still sendable (but not copyable)
2012-06-01 20:40:35 -07:00
Tim Chevalier
facb5c08c6
Enforce rule that classes with dtors aren't copyable
...
The test for this is copy-a-resource.
2012-06-01 20:40:35 -07:00
Tim Chevalier
bc5cb4deb3
Change type_needs_drop to say that any class w/ a dtor needs a drop
...
This was preventing dtors from running for class types that didn't
have pointer fields.
2012-06-01 20:40:34 -07:00
Michael Sullivan
8f7364b26d
Don't try to compute kinds of fictitious types. Indicate a bug instead.
2012-06-01 17:58:40 -07:00
Niko Matsakis
c2ce2741a7
allow mutable vectors and so forth to be used as immutable slices
2012-05-31 15:07:09 -07:00
Eric Holk
0470abe1d2
Allow some resources to be considered const.
2012-05-31 13:55:54 -07:00
Niko Matsakis
653a1f8781
integrate purity into type
2012-05-30 11:26:15 -07:00
Michael Sullivan
93633ea734
Add an internal notion of 'implicit copyability' and use it to warn when implicitly copying mutable data and some unique data. Closes #2448 .
2012-05-25 16:53:34 -07:00
Lindsey Kuper
7e70412711
Some refactoring and WIP on issue #2263 .
2012-05-24 16:48:44 -07:00
Eric Holk
8b6bfc96cb
Const kind checking. The rules are almost certainly incomplete and unsound...
2012-05-24 15:06:56 -07:00
Eric Holk
d993df74c3
Teach parser and related things to understand const kind bounds.
2012-05-24 15:06:56 -07:00
Eric Holk
8678baab12
Resources are once again not copyable.
2012-05-23 10:27:42 -07:00
Brian Anderson
f9d0cde19a
syntax: Remove one of the two def_id hashers
2012-05-23 00:45:18 -07:00
Brian Anderson
4756556748
rustc: Move new_def_hash to ast_util
2012-05-23 00:43:02 -07:00
Tim Chevalier
ed357af980
Convert more resource tests to use classes with dtors
...
And monomorphize dtors correctly.
2012-05-22 22:12:18 -04:00
Brian Anderson
5b4ab93017
rustc: Add cstore to ty::ctxt so csearch can get at it
2012-05-22 18:07:36 -07:00
Brian Anderson
a32392d032
Merge pull request #2427 from msullivan/shifts
...
Get rid of the >>> operator and make >> logical or arithmetic depending ...
2012-05-22 17:50:04 -07:00
Michael Sullivan
15cef374b9
Get rid of the >>> operator and make >> logical or arithmetic depending on the signedness. Closes #2417 .
2012-05-22 14:59:15 -07:00
Eric Holk
0b2f2cabbe
Send is no longer a subkind of copy. This allows for sendable, but non-copyable resources. Closes #2420 .
2012-05-22 14:10:32 -07:00
Eric Holk
f213c1f3a8
Represent kinds as a bitfield of capabilities.
2012-05-22 12:48:31 -07:00
Brian Anderson
9aa18c2852
rustc: Move ast_map to the syntax crate
2012-05-21 23:39:27 -07:00
Niko Matsakis
f9aef928ca
purge ufind
2012-05-18 20:00:50 -07:00
Patrick Walton
37abcda42b
rustc: Make type_is_pod class-aware
2012-05-17 17:20:58 -07:00
Graydon Hoare
9752523f3a
Include intrinsic module in all crates, emit visit glue, fn intrinsic::visit_ty. Not yet working.
2012-05-16 18:24:00 -07:00
Niko Matsakis
9c7b74b025
check if the type of a local variable contains illegal region
...
also, try to suppress some of the duplicate errors---in general
more work is needed to make these error messages comprehensible
to ordinary humans
2012-05-15 21:20:37 -07:00
Tim Chevalier
bdef90730e
Clarify a comment
...
...at least I think this is what was meant.
2012-05-15 20:35:57 -07:00
Niko Matsakis
ab735320b4
move regionck into typeck, in the process fixing a bug or two
2012-05-15 19:05:03 -07:00
Tim Chevalier
fa5cc5bcd0
Generate drop glue correctly for classes with destructors
2012-05-15 18:00:41 -07:00
Lindsey Kuper
b8880e3254
Remove be
keyword.
...
Closes #2227 .
2012-05-15 10:41:14 -07:00
Brian Anderson
452fc46ffc
rustc: Break some of metadata's dependencies on session
2012-05-14 20:41:33 -07:00
Tim Chevalier
5428a22b95
First cut at dtors for classes
...
Classes with dtors should compile now. Haven't yet tested
whether they actually run correctly.
Beginnings of support for #2295 , though that won't be done until
there's more test cases and resources are removed.
2012-05-14 14:26:10 -07:00
Niko Matsakis
50a3dd40ae
implement new borrow ck (disabled by default)
2012-05-09 17:00:19 -07:00