Commit Graph

956 Commits

Author SHA1 Message Date
Michael Sullivan 985b52be6d Support prefix notation for vstore strings. Closes #2906. 2012-07-13 17:03:49 -07:00
Lindsey Kuper 7bba0ae973 Change stray cont to again in a comment. 2012-07-13 15:45:24 -07:00
Lindsey Kuper 5a63b2100e More consistent use of backticks and "expected" in error messages.
Got some of the debug messages, here, too.  I figure it doesn't hurt
to get used to doing this even in places where users won't ever see
it.
2012-07-13 15:31:39 -07:00
Tim Chevalier 07a81ad12e Refactor how impl self types are stored
In order to avoid a confusing use of the tcache, I added an extra
node ID field to trait refs. Now trait refs have a "ref ID" (the one
that resolve3 resolves) and an "impl ID" (the one that you look up
in the tcache to get the self type).

Closes #2434
2012-07-13 14:47:04 -07:00
Lindsey Kuper fc9c4c3245 Front-end support for default impls in traits. 2012-07-13 11:16:07 -07:00
Lindsey Kuper d5563d732d Consistently use "allowed" rather than "permitted" in error messages. 2012-07-13 11:10:18 -07:00
Niko Matsakis a2f60651f1 add comments to region inference 2012-07-13 10:20:50 -07:00
Niko Matsakis 90e435e808 change region syntax to &r/T in place of &r.T 2012-07-13 10:20:50 -07:00
Zack Corr de001dd61c Change cont out of loop error to again out of loop 2012-07-14 01:24:33 +10:00
Tim Chevalier 78ec6fe30c Obliterate the callee_id hack
Exprs that could be applications of overloaded operators
(expr_unary, expr_binary, expr_index) relied on the previous node ID
being "reserved" to carry extra typechecking info. This was
incredibly error-prone. Fixed it; now all exprs have two node IDs
(which will be wasted in some cases; future work could make this
an option instead if the extra int field ends up being a performance
problem).

Closes #2804
2012-07-12 19:02:07 -07:00
Eric Holk aba665da32 Fix the signature on vec::view.
Due to limitations in region inference, this has the effect of making vec::view pretty much entirely unusable.
2012-07-12 18:16:00 -07:00
Brian Anderson dac4916cec rustc: Resolve bounds of trait type parameters 2012-07-12 18:04:40 -07:00
Graydon Hoare 18da7fef88 Merge remote-tracking branch 'origin/dist-snap' into incoming 2012-07-12 17:14:55 -07:00
Michael Sullivan c84c4a8d71 Handle str/~ in patterns. 2012-07-12 16:52:26 -07:00
Michael Sullivan 2ea9c8df0f Accept prefix notation for writing the types of str/~ and friends. 2012-07-12 16:52:26 -07:00
Brian Anderson 46fba10fe8 rustc: Make all impls even more reachable
With this we write metadata for all impls so that we can properly find
reexported impls.
2012-07-12 15:09:33 -07:00
Michael Sullivan 9d2e5f3a65 Merge branch 'rt-changes' into incoming 2012-07-12 15:03:54 -07:00
Michael Sullivan 7b26503566 Make str be treated as str/~. 2012-07-12 00:21:04 -07:00
Michael Sullivan b569bdec9f Refactor how we convert vstore ast types to ty types. 2012-07-12 00:12:13 -07:00
Niko Matsakis b9aa9def85 infer when types are region parameterized rather than requiring /&
- removes various fields from various variants in the AST
- also update tests not to use this notation
2012-07-11 14:41:41 -07:00
Niko Matsakis 9b094c0baf new option to note where purity is req'd 2012-07-11 14:41:41 -07:00
Niko Matsakis 668285b9c8 add ability to report statistics about how borrowck is being used 2012-07-11 14:41:41 -07:00
Patrick Walton 9b7d9a9a1b rustc: Treat existential traits as base types for coherence purposes 2012-07-11 14:28:03 -07:00
Michael Sullivan 62e9ae04e2 Remove obsolete type param field from shape information. 2012-07-11 11:42:49 -07:00
Michael Sullivan 120773b2a7 Change the interface of placement new to take a tydesc as part of Issue #2831. 2012-07-11 11:42:49 -07:00
Patrick Walton e51f259ff0 rustc: Add some more checks to coherence 2012-07-11 11:23:14 -07:00
Graydon Hoare aa7b3cc929 Fix some version numbers. 2012-07-11 09:09:08 -07:00
Eric Holk 877ebed6cf Visit item macros. 2012-07-10 22:00:48 -07:00
Tim Chevalier f39477d926 In resolve, check that an or-pattern has the same number of bindings in each disjunct
resolve3 wasn't checking this. Added test cases. Also added a helpful informational
message in the case where you have a variable binding that you probably think
refers to a variant that you forgot to import.

This is easier to do in resolve than in typeck because there's code in typeck
that assumes that each of the patterns binds the same number of variables.
2012-07-10 18:24:41 -07:00
Patrick Walton 019d4291c7 rustc: Introduce a coherence checker, behind a compile switch for now 2012-07-10 17:35:18 -07:00
Michael Sullivan a7897b3ef3 Eliminate some obsolete upcalls. 2012-07-10 16:33:21 -07:00
Michael Sullivan 260f73ed85 Get rid of unused fields in tydescs. Closes #2351. 2012-07-10 16:33:21 -07:00
Michael Sullivan e430a699f2 Fix take glue for slices. 2012-07-10 16:32:54 -07:00
Michael Sullivan baebccd2c8 Don't fail when emitting free glue for fixed and region evecs. 2012-07-10 15:57:48 -07:00
Graydon Hoare f2b8ab0ad3 Mop up merge collision. 2012-07-10 15:25:58 -07:00
Graydon Hoare 0a4a602a23 Modify reflect interface to pass tydescs back to client, stop on false return.
These changes are required to prune type-recursion and admit early
returns in the visitor code. Changes to visitors in subsequent csets.
2012-07-10 15:16:48 -07:00
Michael Sullivan ef9a64709e Make old_vecs an error. 2012-07-10 15:12:13 -07:00
Michael Sullivan bf06deafe6 Disallow implicitly binding methods in typechecker. Closes #2189. 2012-07-10 15:12:13 -07:00
Michael Sullivan e4362a59b9 Remove the empty tuple of tydescs from closures. Closes #2531. 2012-07-10 15:12:13 -07:00
Michael Sullivan 95dd9f3204 Get rid of a lot of bind related cruft as part of Issue #2189. 2012-07-10 15:12:12 -07:00
Michael Sullivan 40fc1737b2 Get rid of places that expected foo.bar to implicitly bind. 2012-07-10 15:12:12 -07:00
Michael Sullivan 25b152397d Clean up the tydesc handling code in trans. 2012-07-10 15:12:12 -07:00
Michael Sullivan 0070527383 Pretty print vectors as ~[] instead of []/~. Closes #2863. 2012-07-10 13:55:19 -07:00
Patrick Walton a6ee46db0b rustc: Resolve expressions in literal and range patterns 2012-07-10 12:30:02 -07:00
Patrick Walton f0fe08f1c8 rustc: Handle foreign item purity correctly in resolve3 2012-07-09 18:39:10 -07:00
Paul Stansifer 579768baa5 Allow folds to drop items. 2012-07-09 17:44:46 -07:00
Patrick Walton 7d90edcb3b rustc: Switch over to resolve3 2012-07-09 17:44:16 -07:00
Patrick Walton 6912b11089 rustc: Fix the collision with Tim's change 2012-07-09 17:44:15 -07:00
Patrick Walton ad673daa6c Revert "rustc: Switch over to resolve3" due to Linux failures
This reverts commit 2c0aa257e2.
2012-07-09 16:50:19 -07:00
Patrick Walton 2c0aa257e2 rustc: Switch over to resolve3 2012-07-09 16:29:25 -07:00