Patrick Walton
afd9a75c9e
rustc: Fix cross-crate max/min-class-style constructors
2012-07-26 15:30:15 -07:00
Eric Holk
5805616aad
Make parsing about 0.3 seconds faster.
2012-07-26 11:37:57 -07:00
Eric Holk
0a8b794a3a
Add #[inline(never)], and also fixed inlining on vec::push
2012-07-26 11:37:57 -07:00
Eric Holk
fec749df16
Comments Only: Remove outdated FIXMEs. Fixes #2886 .
2012-07-26 10:20:05 -07:00
Paul Stansifer
f4c093c4af
Change #macro
to macro_rules!
in some cases.
2012-07-26 10:14:01 -07:00
Paul Stansifer
7f5fbd4f9d
Allow old-style syntax extensions to be called with new syntax.
2012-07-26 09:52:21 -07:00
Eric Holk
ab1defb1ce
Make parsing about 0.3 seconds faster.
2012-07-26 09:47:32 -07:00
Eric Holk
3aee39a6ec
Add #[inline(never)], and also fixed inlining on vec::push
2012-07-25 17:30:13 -07:00
Eric Holk
6748f78cb1
Polymorphic protocols work well enough to do MapReduce.
...
I did some horrible things with type variable naming here. It should do the right thing in most cases, but we'll need to go through and make it correct someday.
2012-07-25 12:12:26 -07:00
Eric Holk
14adb98b64
Bounded protocols work well enough to compile core, but map reduce has too many type parameters, so we have to get fancier.
2012-07-25 12:12:25 -07:00
Eric Holk
1dde5e7fc2
Thread spans through the pipe compiler. They aren't perfect, but they make debugging far easier than core.rc:0:0.
...
Changed the is_bounded check, so we fail compiling core right now due to not supporting type parameters.
2012-07-25 12:12:25 -07:00
Eric Holk
7f5f1f90a0
Compiled a bounded version of pingpong.
...
There are some failures in the other pipe tests, but these seem to just be a matter of generalizing the library code.
Updating pipes library so all tests pass again
2012-07-25 12:12:25 -07:00
Eric Holk
b97fe98354
Generate buffer type for bounded protocols
2012-07-25 12:12:25 -07:00
Eric Holk
c28af26258
Refactor the bounded pingpong example to avoid needing to generate unsafe code.
...
Took some steps towards bounded codegen.
2012-07-25 12:12:25 -07:00
Eric Holk
d74fb9875b
Refactoring pipes to allow implementing bounded protocols.
2012-07-25 12:12:25 -07:00
Patrick Walton
728d16cfca
rustc: Parse new-style impl declarations
2012-07-24 16:38:24 -07:00
Patrick Walton
587b0edbbf
rustc: Don't require that structs have constructors
2012-07-24 15:29:51 -07:00
Paul Stansifer
9103e43909
Bugfix: enable transcription to deal with zero-repetition cases.
2012-07-24 11:44:58 -07:00
Paul Stansifer
e20c5e7596
Improve an error message a little.
2012-07-24 11:44:58 -07:00
Paul Stansifer
f785cccf0f
Bugfix: make the parser handle the case where zero repetitions occur, by handling parse results on the basis of what names the matcher expects to bind, not on what names are actually bound.
2012-07-24 11:44:58 -07:00
Patrick Walton
0d581bdafe
syntax: Expect the closing brace after struct literals
2012-07-23 18:58:56 -07:00
Patrick Walton
df4db83ed8
rustc: Max/min classes: Add struct literal syntax
2012-07-23 16:40:05 -07:00
Patrick Walton
a57087e032
syntax: Remove reference to typestate in a comment
2012-07-23 13:24:58 -07:00
Patrick Walton
978ca03cb2
Revert "accept naked exprs with commas in pattern arms" due to pretty-printing failures
...
This reverts commit f712b2d76b1077a2241916cc3269aa1d83ce3088.
In alt arms, the parser needs to do a little lookahead to determine
whether it's looking at a record literal or a block.
Also there are some indentation issues in the expected source.
2012-07-19 07:53:55 -07:00
Niko Matsakis
f712b2d76b
accept naked exprs with commas in pattern arms
...
pretty printing will use them, but indentation is slightly off
if the expr is long
2012-07-18 20:16:41 -07:00
Tim Chevalier
de5d5e6eeb
Remove non-existent imports
2012-07-18 18:02:07 -07:00
Patrick Walton
3ac5b4a86f
syntax: Parse multiple trait refs in a single implementation
2012-07-18 16:05:17 -07:00
Niko Matsakis
e0ea67a2a6
prevent regions from escaping in ifaces; remove &r.T syntax
2012-07-18 11:48:58 -07:00
Eric Holk
7b8171ef2d
Added liveness analysis for protocols, and removed warnings about empty states.
2012-07-17 17:46:31 -07:00
Eric Holk
ee855caa5d
Don't ICE when protocol steps to invalid mesasge.
2012-07-17 17:46:31 -07:00
Patrick Walton
b71a8827e3
rustc: Fix coherence errors in the build
2012-07-17 16:49:54 -07:00
Patrick Walton
db020ab63c
rustc: Implement and enforce instance coherence
2012-07-17 15:46:43 -07:00
Tim Chevalier
b5729bd600
Support attributes on class ctors and dtors
...
Closes #2660
2012-07-17 12:40:59 -07:00
Eric Holk
c8739cb0bc
Error checking for protocols. We'll need spans though.
2012-07-17 10:35:59 -07:00
Niko Matsakis
0e42004bab
introduce an owned kind for data that contains no borrowed ptrs
2012-07-16 20:18:18 -07:00
Eric Holk
d39f6fc676
Add support for terminal states (issue #2862 )
2012-07-16 14:50:47 -07:00
Niko Matsakis
41a21f053c
remove typestate from code, tests, and docs
2012-07-14 17:37:20 -07:00
Michael Sullivan
7b2f4755f3
Get rid of ast::ty_vstore, which was only used for fixed length.
2012-07-14 12:45:52 -07:00
Michael Sullivan
e2af785606
Make the new world order normative. Closes #2908 .
2012-07-14 01:03:44 -07:00
Michael Sullivan
92743dc2a6
Move the world over to using the new style string literals and types. Closes #2907 .
2012-07-14 01:03:43 -07:00
Michael Sullivan
6247a529e3
Handle prefix notations for strings in patterns. This is kind of gross.
2012-07-13 19:08:18 -07:00
Michael Sullivan
628d3e9d38
Change (hopefully) all of the code that generates strs asts to produce ~strs.
2012-07-13 17:03:54 -07:00
Michael Sullivan
f5e69d611e
Change the pretty printer to print vstores for strs in prefix notation.
2012-07-13 17:03:54 -07:00
Michael Sullivan
985b52be6d
Support prefix notation for vstore strings. Closes #2906 .
2012-07-13 17:03:49 -07:00
Lindsey Kuper
78d11b899b
Clean up various bugs with trait parsing.
2012-07-13 15:31:39 -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
Niko Matsakis
90e435e808
change region syntax to &r/T in place of &r.T
2012-07-13 10:20:50 -07: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