Commit graph

6462 commits

Author SHA1 Message Date
Niko Matsakis 810927824c update test on disambig to reflect that some cases are no longer legal 2012-01-05 10:44:38 -08:00
Niko Matsakis afe792496a correct test to reference right value 2012-01-05 10:44:38 -08:00
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
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