Tim Chevalier
6bd01d0ac8
In resolve, forbid duplicate value, type, and module items
...
Closes #3099
2012-08-06 16:37:18 -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
Patrick Walton
bff512a90f
rustc: Implement functional record update for structs
2012-08-06 13:17:42 -07:00
Brian Anderson
025d86624d
Switch alts to use arrows
2012-08-05 22:08:09 -07:00
Patrick Walton
8c77536526
rustc: Normalize region-bounded string slices properly
...
This prevents an LLVM assertion that will bite you if you try to put a static
string in an Error.
2012-08-04 15:11:54 -07:00
Graydon Hoare
edfc79cc47
Translate const vecs, most of const slices. More for #2317 .
2012-08-03 21:44:52 -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
51a5a4ad0e
rustc: Translate repeated vector syntax
2012-08-03 18:49:44 -07:00
Graydon Hoare
488ece05b5
Implement &-expressions in consts. Part of #2317 .
2012-08-03 18:07:58 -07:00
Patrick Walton
e02b1b1ec8
rustc: Parse and typecheck repeating vector expressions; e.g. [ 0, ..512 ]
2012-08-03 18:03:19 -07:00
Lindsey Kuper
fe2f3d210a
Further work on default methods in traits.
...
And some trait-related code cleanup in typeck::collect.
2012-08-03 16:17:54 -07:00
Patrick Walton
b65dd9d090
rustc: Parse, serialize, and deserialize trait inheritance
2012-08-03 15:02:53 -07:00
Patrick Walton
a805a1fb37
rustc: Add the notion of inherited visibility
2012-08-03 15:02:53 -07:00
Graydon Hoare
241085a073
Fix signed/unsigned bug, likely cause of windows crash.
2012-08-03 13:36:28 -07:00
Patrick Walton
9e68966611
rustc: Remove fixed-length string warning
2012-08-03 12:03:15 -07:00
Patrick Walton
4e60d7e3a6
rustc: "foo" is now a static string
2012-08-03 11:51:04 -07:00
Patrick Walton
dfe1f6260e
rustc: Remove all fixed-length strings from our codebase
2012-08-03 11:22:35 -07:00
Tim Chevalier
336be1d644
Fix build breakage
2012-08-02 23:53:45 -07:00
Tim Chevalier
948172b93f
Make comparisons between region pointers work
...
Region pointers were considered a scalar type, so compare_scalar_type would
get called to compare region pointers in trans. This would fail, since
compare_scalar_type has no case for region pointers.
Changed type_is_scalar to return false for region pointers. This had the side
effect of breaking casts to types of the form &T. To ameliorate that, I added
library functions ptr::assimilate (taking a &T to a *T) and ptr::to_uint
(taking a &T to a uint), both of which use reinterpret_cast.
While I was at it, I removed ty::type_has_resources, which is dead code.
2012-08-02 23:53:45 -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
Eric Holk
c9c3a49bfc
Fixing a long line
2012-08-02 19:27:07 -07:00
Patrick Walton
c076d3ccc0
rustc: Translate class literals correctly if the class has a destructor
2012-08-02 18:14:50 -07:00
Patrick Walton
16a0f72f8c
rustc: Throw out some more regions when normalizing types
2012-08-02 18:14:50 -07:00
Graydon Hoare
4779d2b392
De-duplicate core::hash some, refactor the traits.
2012-08-02 18:06:33 -07:00
Graydon Hoare
009352101d
Shift writer_util to a derived impl attached to the writer trait
2012-08-02 18:06:33 -07:00
Graydon Hoare
ff00edb7e1
Add target_word_size cfg variable
2012-08-02 18:06:33 -07:00
Lindsey Kuper
65e0e30e59
Make typeck::collect aware of provided methods in traits.
2012-08-02 17:15:36 -07:00
Michael Sullivan
2fe299d1a5
Extend ast_map to know about method declarations in traits.
2012-08-02 16:02:30 -07:00
Niko Matsakis
97452c0ca1
Remove modes from map API and replace with regions.
...
API is (for now) mostly by value, there are options to use it by
reference if you like. Hash and equality functions must be pure
and by reference (forward looking to the day when something
like send_map becomes the standard map).
2012-08-02 15:53:28 -07:00
Brian Anderson
b355936b4d
Convert ret to return
2012-08-01 19:16:06 -07:00
Patrick Walton
4991cc5d19
rustc: Translate by-value pattern bindings
2012-08-01 15:24:11 -07:00
Graydon Hoare
7f60c56c3e
Clean out transitional lint.
2012-08-01 13:35:40 -07:00
Lindsey Kuper
300e2b8513
Start adding infrastructure for checking trait method bodies.
2012-08-01 11:08:47 -07:00
Lindsey Kuper
d747cd724e
Rename convert_class_item
to convert_field
.
2012-08-01 11:08:47 -07:00
Lindsey Kuper
91bd291009
Fix bad indentation.
2012-08-01 11:08:46 -07:00
Lindsey Kuper
ac4e57c640
Introduce self_info (self_ty packaged up with a node_id).
2012-08-01 11:08:46 -07:00
Lindsey Kuper
361a9b03e6
Fix inaccurate comment.
2012-08-01 11:08:46 -07:00
Niko Matsakis
a334deb5d5
change how we print and explain region types
2012-07-31 22:00:19 -07:00
Patrick Walton
b414db041b
rustc: Parse by-reference pattern bindings with the "ref" keyword
2012-07-31 19:26:25 -07:00
Brian Anderson
a841789a41
rustc: Add non_camel_case_types lint check
2012-07-31 18:58:23 -07:00
Graydon Hoare
2a3084b527
Start implementing structured constants.
2012-07-31 18:34:44 -07:00
Patrick Walton
285fc53570
rustc: "paramerization" -> "parameterization" in driver
2012-07-31 17:35:18 -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
Patrick Walton
2cfe8fb357
rustc: Check self types in method lookup; allow required trait methods to have self types; write self types into metadata
2012-07-31 16:35:11 -07:00
Brian Anderson
f35abae892
std: getopts::match -> matches
2012-07-31 13:19:00 -07:00
Lindsey Kuper
439afaa329
Change remaining "iface" occurrences to "trait"; deprecate "iface"
2012-07-31 11:52:16 -07:00
Graydon Hoare
290f079474
Frontend bits for #2317 , general const-expr classification.
2012-07-30 19:06:06 -07:00