Niko Matsakis
f832edc369
require a non-semi expr acting as a stmt to have unit return type
2012-01-05 10:44:38 -08:00
Niko Matsakis
37ba5f3b32
make parser handle parenthesized block-sugar exprs properly
2012-01-05 10:44:38 -08:00
Graydon Hoare
e02ab2d65f
Merge pull request #1440 from boggle/kmath
...
Upgraded math to C99 + bessel functions and replaced wrappers with imports
2012-01-05 10:07:00 -08:00
Stefan Plantikow
c8467977c4
Merge branch 'master' into kmath
...
Conflicts:
src/libcore/float.rs
2012-01-05 17:20:13 +01:00
Stefan Plantikow
1f10ee365c
Moved generic float::min, max to core::math and cleaned up some imports
2012-01-05 17:11:34 +01:00
Marijn Haverbeke
cc929fc9f9
Clean up translating of def_ids in metadata reader
...
Reduces the amount of closure allocation, and makes the code cleaner.
2012-01-05 17:03:38 +01:00
Stefan Plantikow
494ad4e601
Merge branch 'master' into kmath
2012-01-05 16:25:51 +01:00
Marijn Haverbeke
60ae1590af
Switch to new param kind bound syntax
...
And remove support for the old syntax
2012-01-05 15:50:02 +01:00
Marijn Haverbeke
1f71a0f48d
Clean up some FIXMEs related to impls
2012-01-05 14:55:23 +01:00
Marijn Haverbeke
3a20dda7ea
Get external interfaces / impls working
...
Issue #1227
2012-01-05 14:17:31 +01:00
Marijn Haverbeke
38c3bd9057
Register new snapshot
2012-01-05 11:54:28 +01:00
Marijn Haverbeke
516fbed230
Fix bad spans for ast::ty parsing
...
The span would be pointing after the actual text.
2012-01-05 11:09:19 +01:00
Marijn Haverbeke
6559aa8bfb
Write the iface type of an impl in the crate data
...
Also, move checking of ifaces into the collect phase of typeck
to give further passes some guarantees.
Issue #1227
2012-01-05 11:04:41 +01:00
Marijn Haverbeke
3eb35900c7
Remove ty::bind_params_in_type
...
It does nothing that substitute_type_params can't do better.
2012-01-05 10:07:33 +01:00
Marijn Haverbeke
02505d8aa1
Express some list primitives in a way that doesn't copy
...
It was somewhat embarassing that list::len copied its elements.
2012-01-05 09:18:19 +01:00
Josh Matthews
0e98e64bc2
Add more item types to the ast_map so the test suite can build with debug info.
2012-01-05 01:20:51 -05:00
Stefan Plantikow
a16acc0c10
added preliminary support for per-architecture generation of math constants (for porting)
2012-01-05 05:25:20 +01:00
Stefan Plantikow
6284190ef9
Merge branch 'master' into kmath
...
Conflicts:
src/libcore/cmath.rs
2012-01-05 02:07:12 +01:00
Niko Matsakis
1dec1c8813
make scanning more efficient by avoiding recomputation
2012-01-04 15:25:17 -08:00
Niko Matsakis
70c808d173
extend tester so that error msgs can be attached to lines
2012-01-04 15:25:17 -08:00
Marijn Haverbeke
3971b520bc
Use the right types for methods in trans_impl
...
This prevents misalignment between function and argument
types in corner cases.
2012-01-04 22:12:48 +01:00
Marijn Haverbeke
71c1c15805
xfail-pretty iface-generic.rs until i have time to debug
2012-01-04 19:58:02 +01:00
Tim Chevalier
1e54684093
Reformat typestate error messages so as not to confuse emacs compilation mode
2012-01-04 10:53:56 -08:00
Marijn Haverbeke
b02a77d6b4
Add test for generic iface methods
...
Issue #1227
2012-01-04 17:30:36 +01:00
Marijn Haverbeke
94d40be746
Prevent typenames in param bounds from resolving to their own param
...
I.e. fn foo<T: seq<T>>(...). This leads to weird circularities that seem to
never make any sense, so it seems prudent to forbid it.
Issue #1227
2012-01-04 17:30:36 +01:00
Marijn Haverbeke
42f6608ffd
Add visit_ty_params to visit.rs
...
And use it to make typechecking of bounds less error-prone.
2012-01-04 17:30:36 +01:00
Marijn Haverbeke
e11d207113
Add either::is_left and either::is_right
2012-01-04 17:30:36 +01:00
Marijn Haverbeke
a7e1a35f88
Properly typecheck and compile invocations of generic methods.
...
Aligning the type parameters of the ifaces, impls, and methods
correctly in typeck is almost brain surgery. Seems to work now for
everything I threw at it, but might still break in other corner cases.
Issue #1227
2012-01-04 17:28:51 +01:00
Lenny222
d1ffe5034b
"str": rename "str_from_cstr" to "from_cstr" (analogous to the other "from_*")
2012-01-04 09:33:07 +01:00
Lenny222
dd284eb396
"char": use shorter names "to_lower"/"to_upper", analogous to the same names in "str"
2012-01-04 09:33:04 +01:00
Lenny222
e12b169247
implement str::is_whitespace using char::is_whitespace
2012-01-04 09:32:59 +01:00
Tim Chevalier
439e28b751
Add missing ty_constr cases to trans::type_of_inner and ty::fold_ty.
...
Closes #970
2012-01-03 15:50:05 -08:00
Niko Matsakis
72a3667eb3
Allow tail expressions even in no_value blocks. Type checker
...
will guarantee they have unit type.
2012-01-03 13:13:52 -08:00
Niko Matsakis
43a9d50a74
new tests
2012-01-03 13:13:52 -08:00
Niko Matsakis
de383bcfed
extend parser so that expressions that do not require semi-colons
...
to be statements are not considered expressions in the tail position
2012-01-03 13:13:51 -08:00
Niko Matsakis
9e1dc703d2
rewrite to put blk as 2nd arg
2012-01-03 13:13:51 -08:00
Niko Matsakis
e34abbacf6
minimal changes to permit fn blocks in expr
2012-01-03 13:13:51 -08:00
Brian Anderson
513a263e81
Merge pull request #1392 from Lenny222/list
...
list: add "is_not_empty" requirement to "head" and "tail" (analogous to "vec")
2012-01-03 12:18:53 -08:00
Marijn Haverbeke
4e88d5ae92
Make resolution of dictionaries on bounded params work
...
Issue #1227
2012-01-03 16:37:41 +01:00
Marijn Haverbeke
5ea3c96938
Wire in resolution of param bounds for method calls
...
Issue #1227
2012-01-03 16:18:40 +01:00
Marijn Haverbeke
506a6ec38b
Make syntax for impls less magical
...
The trick of interpreting parameters to the iface type as parameters
to the impl was just too magical.
Issue #1227
2012-01-03 15:37:41 +01:00
Marijn Haverbeke
e1dc40b271
More work on translating dictionary-passing
...
Reached a point where simple uses of interfaces without bounds work.
Issue #1227
2012-01-03 15:36:57 +01:00
Brian Anderson
45b153adfe
llvm: Revert unneeded debugging change
2012-01-02 12:18:23 -08:00
Marijn Haverbeke
b162f33396
Fix expected error messages for better printing of ty_ptr
2012-01-02 15:59:04 +01:00
Marijn Haverbeke
cdd806d324
Add a clause ty_ptr to ppaux::ty_to_str
...
Closes #1383
2012-01-02 15:42:13 +01:00
Marijn Haverbeke
15be2fc73a
Add 'copy' bounds to functions that were faultily accepted without
...
Issue #1390
2012-01-02 15:31:58 +01:00
Marijn Haverbeke
8c14943dea
Properly handle expression blocks in kind.rs
...
It was only noticing them in expr_block form, not as function
bodies.
Closes #1390
2012-01-02 15:23:11 +01:00
Lenny222
86279e8693
typo
2012-01-02 15:16:15 +01:00
Marijn Haverbeke
1741ef75ac
Write out vtables for interface implementations
...
Issue #1227
2012-01-02 15:15:28 +01:00
Marijn Haverbeke
371b61a23d
Drop two useless sub-passes from trans
...
Neither collect_tag_ctors nor the second pass in collect_items needed
to be separate passes.
Also remove obsolete obj_methods table kludge.
2012-01-02 15:15:28 +01:00