Jyun-Yan You
bdebe92400
add forgotten index and fix array type
2012-05-03 09:43:00 -07:00
Marijn Haverbeke
d0d71838cd
Mention missing constructor when complaining about inexhaustive top-level pattern
...
It previously, uselessly, only pointed out the constructor when the
inexhaustive pattern was nested in some other pattern.
Closes #2337
2012-05-03 17:35:12 +02:00
Niko Matsakis
f1129635ee
report ambig impl methods
2012-05-02 21:47:14 -07:00
Brian Anderson
11354963b3
rustc: Hack around some FFI bustage. Unbreak servo
2012-05-02 18:35:29 -07:00
Graydon Hoare
b12e27595e
Error message reformatting, close #2309 .
2012-05-02 14:47:33 -07:00
Tim Chevalier
3d4ef74c9b
Encode the ifaces a class implements in metadata
...
This lets you use class A as if it had type B if A implements B,
and A and B are in different crates from your own.
Closes #2285
2012-05-02 13:38:56 -07:00
Graydon Hoare
79ed1f2df4
New lint pass for picking out uses of old-style vecs and str.
2012-05-01 12:58:07 -07:00
Tim Chevalier
46425af8a5
Remove code that was accidentally committed
...
This was a workaround for the bug that was actually fixed in
164039e867
2012-05-01 08:48:25 -07:00
Tim Chevalier
164039e867
Don't re-export a glob-imported ID when the same ID is defined within
...
a module
See the test case I added (issue-2316-c) for a concrete example.
issue-2316 also contains the originally reported test case. resolve
was using bitwise or instead of logical or when checking exports,
resulting in excessively eager evaluation. A one-line fix that took
six hours to isolate ;-)
2012-05-01 08:43:17 -07:00
Niko Matsakis
2db4259b35
Stop inferring bot/static when types/regions are unconstrained.
...
Also, some other changes that came up along the way:
- add a 'blk' region for the current block.
- detect unused type/region variables.
2012-04-30 19:53:02 -07:00
Brian Anderson
0be41ce02b
rustc: Remove old align_of intrinsic
2012-04-27 15:40:43 -07:00
Brian Anderson
582c71731d
rustc: Clean up some enum code
2012-04-27 11:24:43 -07:00
Brian Anderson
e4277472d2
core: Split sys::align_of into min_align_of, pref_align_of
2012-04-27 00:12:42 -07:00
Brian Anderson
f4f909b8b5
rustc: Add min_align_of, pref_align_of intrinsic, deprecate align_of
2012-04-27 00:12:39 -07:00
Brian Anderson
1c46ee34be
rustc: Add llalign_of_min
2012-04-26 21:59:59 -07:00
Brian Anderson
43751e45d9
rustc: Rename llalign_of_real to llalign_of_pref
...
This alignment is the "preferred" alignment of a type, which is not
necessarily the alignment the compiler will use when packing the
type into structures - that is the "ABI" alignment (in LLVM terms).
On x86, 64-bit ints have 8-byte preferred alignment, but 4-byte
ABI alignment.
2012-04-26 21:44:29 -07:00
Graydon Hoare
1f92538e38
Add check for path-statements, close #400 .
2012-04-26 14:43:43 -07:00
Graydon Hoare
33a296f2fc
Lowercase warning message.
2012-04-26 14:43:43 -07:00
Niko Matsakis
825fd1808e
lots of work to make iface/impls parameterized by regions
...
- paths can now take region parameters, replacing the dirty hack
I was doing before of abusing vstores. vstores are now a bit
of a hack though.
- fix various small bugs:
- we never checked that iface types were compatible when casting
to an iface with `as`
- we allowed nonsense like int<int>
- and more! (actually that may be it)
2012-04-25 19:26:56 -07:00
Graydon Hoare
458d2ff067
Be a bit more cautious about marking things no-throw.
2012-04-25 18:53:54 -07:00
Graydon Hoare
90c1b4645f
Set no-unwind on glue functions that don't drop resources.
2012-04-25 17:19:36 -07:00
Graydon Hoare
fa6c68a025
Set no-unwind attribute on all upcalls other than fail.
2012-04-25 17:19:36 -07:00
Brian Anderson
3a3a7fc426
rustc: Cache normalized types
2012-04-25 15:49:27 -07:00
Brian Anderson
df0ef528b9
rustc: Use LLVM named structs for enum types
2012-04-25 15:49:25 -07:00
Marijn Haverbeke
10120cce0f
typeck: Take more care to pass down expected types
...
This helps with prototype inference and avoids some 'must be known
in this context' errors.
2012-04-25 17:45:29 +02:00
Marijn Haverbeke
9f99c3263b
Rewrite exhaustiveness checker
...
Issue #2111
2012-04-25 09:15:17 +02:00
Brian Anderson
5a0c564817
Revert "rustc: Use LLVM named structs for enum types"
...
This reverts commit 6e909e387d .
2012-04-24 20:47:06 -07:00
Brian Anderson
b88ecec08c
Revert "rustc: Cache normalized types"
...
This reverts commit 06afe21c03 .
2012-04-24 20:47:00 -07:00
Brian Anderson
06afe21c03
rustc: Cache normalized types
2012-04-24 18:24:35 -07:00
Brian Anderson
6e909e387d
rustc: Use LLVM named structs for enum types
2012-04-24 18:24:35 -07:00
Graydon Hoare
929c3dd710
Workarounds for bug #2280 : add some temporaries for borrowing.
2012-04-24 15:19:01 -07:00
Brian Anderson
e7dbf42214
rustc: Fix type_need_unwind_cleanup. Closes #2272
2012-04-24 14:55:16 -07:00
Brian Anderson
5437a045fc
rustc: Remove a bitcast. Issue #2276
2012-04-24 14:00:50 -07:00
Tim Chevalier
f7641286b2
Allow classes to be cast to ifaces that are in the same crate
...
I had to xfail one existing test case (class-implements-int) because,
I think, of the same bug described in #2272 .
2012-04-23 21:15:03 -07:00
Tim Chevalier
1c39fda0ea
Rename option::get_or_default to get_default, for consistency
2012-04-23 20:52:50 -07:00
Tim Chevalier
7d05bea7b9
Fix bug with * patterns in trans_alt
...
enter_opt was handling the (*) case wrong and causing a bounds check
failure. Fixed it (the test case is one of the extracted ones from
the reference manual)
2012-04-23 15:50:51 -07:00
Niko Matsakis
71128e75b0
moderate comment, remove some dead regions code
2012-04-23 08:02:59 -07:00
Niko Matsakis
7113a2c30b
remove dead code
2012-04-23 08:02:59 -07:00
Niko Matsakis
4eb71c07c6
remove outdated comment
2012-04-23 08:02:59 -07:00
Niko Matsakis
30d563839e
Various regions fixes.
2012-04-23 08:02:59 -07:00
Niko Matsakis
0d3658bb43
rewrite the resolution infrastructure; but it's still grody
2012-04-23 08:02:58 -07:00
Marijn Haverbeke
68f8812511
Guard against infinitely expanding generic/inline functions
...
Closes #2220
Test case disabled until a memory-leak issue is resolved.
2012-04-23 16:44:52 +02:00
Marijn Haverbeke
2782cfb783
Emit a more useful error when using an unsuitable function for a loop
...
Closes #2255
2012-04-23 15:43:29 +02:00
Marijn Haverbeke
9053f54498
Move map iface over to more for-friendly iteration methods
2012-04-23 15:18:19 +02:00
Marijn Haverbeke
a872a99bfe
Simplify representation of ast::path
2012-04-23 13:04:46 +02:00
Marijn Haverbeke
587d8a5d4f
Misc code cleanups using list::each for list iteration
2012-04-23 12:13:59 +02:00
Marijn Haverbeke
dfdca5d538
Fix broken determination of external method type param count
...
Closes #2185
2012-04-23 09:25:14 +02:00
Brian Anderson
734494a04d
rustc: Cache constant C strings. Closes #2264
2012-04-21 14:26:13 -07:00
Tim Chevalier
734166f41c
Print out return type correctly in typestate error message
...
In the "not all paths return" error message, typestate was printing
the AST type from the fn decl, not the ty::t type. This ended in tears
when the AST return type was "ty_infer". Now it looks up the function node
ID's type and uses util::ppaux::ty_to_str instead.
Closes #2163 .
2012-04-20 18:48:08 -07:00
Graydon Hoare
90f82e171d
Get borrowing working on fixed evecs.
2012-04-20 12:11:55 -07:00