Patrick Walton
8114d0e950
librustc: Disallow multiple patterns from appearing in a "let" declaration.
...
You can still initialize multiple variables at once with "let (x, y) = (1, 2)".
2013-06-04 21:45:42 -07:00
Patrick Walton
16086ecff7
libsyntax: Remove pub impl
from the language
2013-06-04 21:45:42 -07:00
Erick Tryzelaar
23808efd11
syntax: move callee_id into the expr_ variants
2013-06-01 15:31:56 -07:00
Patrick Walton
5fb254695b
Remove all uses of pub impl
. rs=style
2013-06-01 09:18:27 -07:00
Niko Matsakis
7a1a40890d
Remove copy bindings from patterns.
2013-05-30 15:20:36 -04:00
Patrick Walton
4e3d4b36dc
libsyntax: Stop parsing mutable fields
2013-05-29 19:04:51 -07:00
Erick Tryzelaar
a4df35f2bc
cleanup warnings from libsyntax
2013-05-23 17:57:07 -07:00
Erick Tryzelaar
1965d72957
core: remove iter_bytes helper functions
2013-05-23 17:48:16 -07:00
Patrick Walton
c532e033c9
librustc: Change std
to extra
throughout libsyntax and librustc
2013-05-22 21:57:08 -07:00
Patrick Walton
f3723cf7c4
libextra: Rename the actual metadata names of libcore to libstd and libstd to libextra
2013-05-22 21:57:07 -07:00
John Clements
999f692645
getting rid of interner_key! macro
2013-05-20 11:49:21 -07:00
John Clements
fc4f304ef9
hygiene infrastructure.
...
- added a hash table to memoize rename and mark operations.
- added rename, mark, and resolve fold fns
2013-05-20 11:49:21 -07:00
Brian Anderson
66319b0278
Register snapshots
2013-05-19 23:34:32 -07:00
Niko Matsakis
035c01af93
Add BuiltinBounds to closure type: parse and handle subtyping,
...
but do not integrate with kindck etc (requires a snapshot first)
2013-05-16 14:21:02 -04:00
Huon Wilson
5dc5efefd4
syntax: deprecate #[auto_{en,de}code] in favour of #[deriving({En,De}codable)].
...
Replace all instances of #[auto_*code] with the appropriate #[deriving] attribute
and remove the majority of the actual code, leaving stubs to refer the user to
the new syntax.
2013-05-16 08:55:57 +10:00
bors
217f96339a
auto merge of #6224 : erickt/rust/rustc-cleanup, r=erickt
...
Just a couple minor cleanups and renames of librustc
2013-05-14 22:57:37 -07:00
Erick Tryzelaar
18f6a51d0a
rustc: rename ast::self_ty and related fields to explicit_self
2013-05-14 20:10:46 -07:00
Erick Tryzelaar
8d19f44c9d
syntax: add IterBytes impls for some ast types
2013-05-14 20:10:46 -07:00
Björn Steinbrink
7ba685c7ab
Add inlining for iter_bytes for types used as hashmap keys
...
Not inlining these affects the hash table performance quite badly.
2013-05-14 20:32:49 +02:00
Björn Steinbrink
bdc182cc41
Use static string with fail!() and remove fail!(fmt!())
...
fail!() used to require owned strings but can handle static strings
now. Also, it can pass its arguments to fmt!() on its own, no need for
the caller to call fmt!() itself.
2013-05-14 16:36:23 +02:00
Patrick Walton
5d3559e645
librustc: Make self
and static
into keywords
2013-05-12 16:35:18 -07:00
Corey Richardson
a279d65102
clean up the last bit of warnings
2013-05-11 20:36:47 -07:00
Alex Crichton
63c7e2f991
Remove the '<->' operator from the language
2013-05-10 22:51:06 -04:00
bors
3e0400fb86
auto merge of #6223 : alexcrichton/rust/issue-6183, r=pcwalton
...
Closes #6183 .
The first commit changes the compiler's method of treating a `for` loop, and all the remaining commits are just dealing with the fallout.
The biggest fallout was the `IterBytes` trait, although it's really a whole lot nicer now because all of the `iter_bytes_XX` methods are just and-ed together. Sadly there was a huge amount of stuff that's `cfg(stage0)` gated, but whoever lands the next snapshot is going to have a lot of fun deleting all this code!
2013-05-10 17:56:02 -07:00
bors
6da2c989ba
auto merge of #6329 : sonwow/rust/issue-6306, r=ILyoan
...
Fix for #6306
2013-05-10 03:04:51 -07:00
Alex Crichton
5eb6d19803
syntax: Use the new for
protocol
2013-05-10 02:46:18 -04:00
Youngsoo Son
c8e93edf55
Move core::task::local_data to core::local_data
2013-05-10 11:42:45 +09:00
Björn Steinbrink
1393c3a3f4
Use a specialized string interner to reduce the need for owned strings
...
&str can be turned into @~str on demand, using to_owned(), so for
strings, we can create a specialized interner that accepts &str for
intern() and find() but stores and returns @~str.
2013-05-09 14:40:19 +02:00
Patrick Walton
db4573a776
librustc: Remove mutable fields from the language.
...
They're still parsed though, to get through bootstrapping.
2013-05-08 17:04:00 -07:00
Brian Anderson
8081e8debf
Register snapshots
2013-05-04 15:43:51 -07:00
Patrick Walton
dc5df61bc1
librustc: Update the serializer to work properly with INHTWAMA, removing mutable fields in the process
2013-05-02 17:00:51 -07:00
Brendan Zabarauskas
e596128bd8
Remove 'Local Variable' comments
2013-05-02 13:22:04 +10:00
bors
55fbc47af1
auto merge of #6148 : erickt/rust/remove-drop, r=pcwalton
...
The drop block has been deprecated for quite some time. This patch series removes support for parsing it and all the related machinery that made drop work.
As a side feature of all this, I also added the ability to annote fields in structs. This allows comments to be properly associated with an individual field. However, I didn't update `rustdoc` to integrate these comment blocks into the documentation it generates.
2013-05-01 09:18:59 -07:00
Erick Tryzelaar
3e3e2f0025
allow parsing attributes on struct fields
2013-05-01 07:49:41 -07:00
Erick Tryzelaar
c2e1f47955
rustc: remove the rest of drop
...
Removes:
ast::struct_def::dtor
syntax::ast::ii_dtor
syntax::visit::fk_dtor
syntax::ast_map::node_dtor
syntax:struct_dtor
2013-05-01 07:49:41 -07:00
Brendan Zabarauskas
ee26c7c433
Revert rename of Div to Quot
2013-05-01 15:40:05 +10:00
Patrick Walton
f30f54e9d0
librustc: Remove the concept of modes from the compiler.
...
This commit does not remove `ty::arg`, although that should be
possible to do now.
2013-04-29 14:30:55 -07:00
Patrick Walton
25129ee81c
librustc: Remove use mod
from the language
2013-04-22 12:32:59 -07:00
Brendan Zabarauskas
01eb5e8ad3
Rename Div operator trait to Quot and Modulo operator trait to Rem
2013-04-22 01:58:53 +10:00
Alex Crichton
3c7aea3a6a
syntax: de-mode and prepare for de-modeing rustc
2013-04-19 23:21:52 -04:00
John Clements
7e4cd09e2e
added MTWT functions
2013-04-16 10:06:06 -07:00
John Clements
313a5ab946
move interner_key macro
2013-04-16 10:06:05 -07:00
bors
76f6606a8c
auto merge of #5827 : nikomatsakis/rust/issue-5656-change-meaning-of-borrowed-self, r=pcwalton
...
See #5656 for details.
r? @pcwalton
2013-04-12 15:14:24 -07:00
Niko Matsakis
49de82cdca
Issue #5656 : Make &self not mean "&'self self"
...
Fixes #5656 .
Fixes #5541 .
2013-04-10 17:32:02 -07:00
John Clements
48e7bda826
path -> Path
2013-04-10 09:15:04 -07:00
Niko Matsakis
d28f734412
Refactor so that references to traits are not represented using a type with a
...
bare function store (which is not in fact a kind of value) but rather
ty::TraitRef. Removes many uses of fail!() and other telltale signs of
type-semantic mismatch.
cc #4183 (not a fix, but related)
2013-04-05 05:36:02 -04:00
Niko Matsakis
569596573a
Compute a ty::method for methods that appear in impls as well
2013-04-05 05:36:02 -04:00
Niko Matsakis
007abe9352
Rather than storing a list of ty::method per trait, store one ty::method
...
per method and list of def-ids per trait.
2013-04-05 05:36:02 -04:00
Brian Anderson
e3327d3833
Fix warnings
2013-03-31 20:22:47 -07:00
bors
6dd20c8186
auto merge of #5630 : erickt/rust/serial, r=erickt
...
@nikomatsakis and I were talking about how the serializers were a bit too complicated. None of the users of With the `emit_option` and `read_option` functions, the serializers are now moving more high level. This patch series continues that trend. I've removed support for emitting specific string and vec types, and added support for emitting mapping types.
2013-03-30 15:42:43 -07:00
Niko Matsakis
6965fe4bce
Add AbiSet and integrate it into the AST.
...
I believe this patch incorporates all expected syntax changes from extern
function reform (#3678 ). You can now write things like:
extern "<abi>" fn foo(s: S) -> T { ... }
extern "<abi>" mod { ... }
extern "<abi>" fn(S) -> T
The ABI for foreign functions is taken from this syntax (rather than from an
annotation). We support the full ABI specification I described on the mailing
list. The correct ABI is chosen based on the target architecture.
Calls by pointer to C functions are not yet supported, and the Rust type of
crust fns is still *u8.
2013-03-29 18:36:20 -07:00
Erick Tryzelaar
31563f53d9
Merge remote-tracking branch 'remotes/origin/incoming' into serial
2013-03-29 09:06:36 -07:00
Erick Tryzelaar
8b43c620b9
std: remove Encoder::emit_{owned,managed}_str and Decoder::read_{owned,managed}_str
2013-03-29 07:05:54 -07:00
Alex Crichton
be57d745d2
Removing unused imports
2013-03-28 23:56:46 -04:00
bors
f81459211d
auto merge of #5593 : luqmana/rust/inline-asm, r=catamorphism
...
Clean things up a bit. Also, allow selecting intel syntax in addition to the default AT&T dialect.
2013-03-28 18:18:46 -07:00
Patrick Walton
0a002d79b4
librustc: Remove common fields and nested enums from the language
2013-03-28 11:30:01 -07:00
bors
84ddff3909
auto merge of #5578 : erickt/rust/incoming, r=jbclements,erickt
...
Hey folks,
This patch series does some work on the json decoder, specifically with auto decoding of enums. Previously, we would take this code:
```
enum A {
B,
C(~str, uint)
}
```
and would encode a value of this enum to either `["B", []]` or `["C", ["D", 123]]`. I've changed this to `"B"` or `["C", "D", 123]`. This matches the style of the O'Caml json library [json-wheel](http://mjambon.com/json-wheel.html ). I've added tests to make sure all this work.
In order to make this change, I added passing a `&[&str]` vec to `Decode::emit_enum_variant` so the json decoder can convert the name of a variant into it's position. I also changed the impl of `Encodable` for `Option<T>` to have the right upper casing.
I also did some work on the parser, which allows for `fn foo<T: ::cmp::Eq>() { ... }` statements (#5572 ), fixed the pretty printer properly expanding `debug!("...")` expressions, and removed `ast::expr_vstore_fixed`, which doesn't appear to be used anymore.
2013-03-27 21:51:53 -07:00
Luqman Aden
b867fe41de
libsyntax: Allow selecting intel style asm.
2013-03-27 15:41:58 -07:00
Luqman Aden
203d691a6b
libsyntax: use a struct for inline asm in ast.
2013-03-27 15:41:58 -07:00
bors
995425badb
auto merge of #5558 : nikomatsakis/rust/issue-4920-autoref-index-operator, r=nikomatsakis
...
Per discussion on IRC.
r? @pcwalton
2013-03-27 13:27:58 -07:00
Niko Matsakis
2a74fda316
Fix pretty-printer test failure by carrying the bound lifetime names through
...
the types. Initially I thought it would be necessary to thread this data
through not only the AST but the types themselves, but then I remembered that
the pretty printer only cares about the AST. Regardless, I have elected to
leave the changes to the types intact since they will eventually be needed. I
left a few FIXMEs where it didn't seem worth finishing up since the code wasn't
crucial yet.
2013-03-27 11:35:04 -07:00
Erick Tryzelaar
83e831bc22
syntax: Remove deprecated expr_vstore_fixed
2013-03-27 07:04:16 -07:00
Erick Tryzelaar
7a199d41a9
syntax: fix pretty printing __log stmts
2013-03-27 07:04:15 -07:00
Niko Matsakis
aa67deff33
remove sty_by_ref, though traces still remain due to dtors
2013-03-27 07:09:16 -04:00
Patrick Walton
8b56a8380b
librustc: Modify all code to use new lifetime binder syntax
2013-03-26 21:30:17 -07:00
Patrick Walton
85c9fc6f8f
librustc: Remove the const
declaration form everywhere
2013-03-22 22:24:35 -07:00
Patrick Walton
e7c60c141b
librustc: Remove pure
from libsyntax and librustc.
2013-03-22 12:57:27 -07:00
Patrick Walton
4634f7edae
librustc: Remove all uses of static
from functions. rs=destatic
2013-03-22 10:27:39 -07:00
Andrew Paseltiner
e2abecd3ab
syntax: replace uses of old deriving attribute with new one
2013-03-22 06:30:59 -04:00
Niko Matsakis
00f97b9fb0
Refactor the self-info so that the def-id is carried in ty_self()
...
and the fn_ctxt doesn't need any self_info field at all.
Step towards fixing `fn(&self)` (cc #4846 ) to have a distinct
lifetime.
2013-03-20 06:14:53 -04:00
bors
e1888948c6
auto merge of #5426 : nikomatsakis/rust/issue-4846-lifetimes-in-expl-self, r=pcwalton
...
(this will be needed for snapshotting at some point)
r? @pcwalton
2013-03-19 12:43:14 -07:00
Luqman Aden
da64994f18
Fix pretty printer for fixed length vectors.
2013-03-18 17:31:42 -07:00
Luqman Aden
42f95d055c
Allow constant expressions in [Type * n].
2013-03-18 17:31:41 -07:00
Niko Matsakis
a6187c62e9
Make &self permit explicit lifetimes, but don't really use them
...
(this will be needed for snapshotting at some point).
2013-03-18 15:03:37 -04:00
Luqman Aden
6d078db952
Actually pass inline asm operands around.
2013-03-15 18:55:43 -07:00
Niko Matsakis
852619d5d7
Remove ++
mode from the compiler (it is parsed as +
mode)
...
and obsolete `-` mode altogether (it *was* parsed as `+` mode).
2013-03-13 17:00:09 -04:00
Luqman Aden
18b71a7831
Add alignstack option for inline asm.
2013-03-12 01:03:35 -07:00
Luqman Aden
7f500ab4c1
Keep everything tidy.
2013-03-12 01:03:34 -07:00
Luqman Aden
5aa734d6a1
Parse operands properly and add a way to indicate volatile asm.
2013-03-12 01:03:34 -07:00
Luqman Aden
ecccc0d649
Parse inline assembly.
2013-03-12 01:03:34 -07:00
Patrick Walton
7538450b8d
libsyntax: Remove newtype enums from libsyntax. rs=deenum
2013-03-11 09:35:59 -07:00
Seo Sanghyeon
9e85589ad3
Implement vector destructuring from tail
2013-03-11 19:01:51 +09:00
Niko Matsakis
7cbd4b20ee
Remove @ast::Region and replace with @ast::Lifetime.
...
Modify pretty-printer to emit lifetimes and fix a few minor
parser bugs that this uncovered.
2013-03-09 19:43:59 -05:00
Patrick Walton
9a17ef9b52
librustc: Stop parsing assert
.
2013-03-07 22:37:57 -08:00
Patrick Walton
0ea031bcb8
librustc: Remove record patterns from the compiler
2013-03-07 22:37:03 -08:00
Patrick Walton
954ae9c975
libsyntax: Remove struct literal expressions from the compiler
2013-03-07 22:32:55 -08:00
Patrick Walton
4e3dbfe052
librustc: Remove structural record types from the compiler
2013-03-07 22:32:54 -08:00
bors
b269ce2782
auto merge of #5255 : jbclements/rust/remove-parse-value-ident, r=graydon
...
After the removal of the "restricted keyword" feature in 0c82c00dc4
, there's no longer any difference between parse_ident() and parse_value_ident(), and therefore no difference between parse parse_path_without_tps() and parse_value_path(). I've collapsed all of these, removing the redundant functions and eliminating the need for two higher-order arguments.
2013-03-06 17:48:39 -08:00
Niko Matsakis
704cd648ac
Fix a bug with region-parameterized enums etc where trans considered
...
them to be non-monomorphic. Merely having lifetime parameters
is not enough to qualify for that status. Fixes #5243 .
2013-03-06 13:01:16 -05:00
John Clements
88451878f8
removed unused abstraction over paths and value_paths
2013-03-06 09:41:47 -08:00
Niko Matsakis
cbfd88a486
Update region inference for traits so that a method with
...
explicit self doesn't incorrectly cause the entire trait to
be tagged as being region-parameterized.
Fixes #5224 .
2013-03-05 08:46:23 -05:00
Alex Crichton
cb4ab76e4a
Adding missing imports for tests, and gate off others
2013-03-04 12:27:01 -05:00
Alex Crichton
dfb5c10dea
Remove unused imports throughout src/
2013-03-04 12:27:01 -05:00
Patrick Walton
ccec510f39
librustc: Stop parsing fn@
, fn~
, and fn&
2013-03-02 18:47:48 -08:00
Erick Tryzelaar
85fecd0ba7
Merge remote-tracking branch 'remotes/origin/incoming' into incoming
2013-03-01 07:01:48 -08:00
Patrick Walton
107bf96ff0
librustc: Mark all type implementations public. rs=impl-publicity
2013-02-28 11:32:24 -08:00
Erick Tryzelaar
3953bdd812
Merge remote-tracking branch 'remotes/origin/incoming' into incoming
2013-02-28 07:25:31 -08:00
bors
d0a12347de
auto merge of #5141 : nikomatsakis/rust/region-syntax-expl-lifetimes, r=nikomatsakis
...
Major changes are:
- replace ~[ty_param] with Generics structure, which includes
both OptVec<TyParam> and OptVec<Lifetime>;
- the use of syntax::opt_vec to avoid allocation for empty lists;
cc #4846
r? @graydon
2013-02-27 17:36:41 -08:00
Niko Matsakis
c623d21e38
Introduce lifetime declarations into the lists of type parameters.
...
Major changes are:
- replace ~[ty_param] with Generics structure, which includes
both OptVec<TyParam> and OptVec<Lifetime>;
- the use of syntax::opt_vec to avoid allocation for empty lists;
cc #4846
2013-02-27 19:42:09 -05:00
Erick Tryzelaar
7d0ec86c4a
Merge remote-tracking branch 'remotes/origin/incoming' into incoming
2013-02-27 11:03:21 -08:00
Patrick Walton
07c3f5c0de
librustc: Forbid pub
or priv
before trait implementations
2013-02-27 09:40:16 -08:00
John Clements
08b6057538
Macros now leave scope
...
Macro scope is now delimited by function, block, and module boundaries,
except for modules that are marked with #[macro_escape], which allows
macros to escape.
2013-02-26 10:36:55 -08:00
Erick Tryzelaar
5b9e110eab
libsyntax: Convert ast::attribute_ to store a @meta_item
2013-02-25 06:19:44 -08:00
Patrick Walton
bf2a225c0b
librustc: Separate most trait bounds with '+'. rs=plussing
2013-02-20 21:14:20 -08:00
Erick Tryzelaar
de5fdaf934
convert ast::meta_items to take @~strs
2013-02-19 10:02:52 -08:00
Luqman Aden
0f09c106f0
libsyntax: Update view_item_use/import to reflect actual usage
2013-02-17 21:45:00 -05:00
Niko Matsakis
c7f85003a3
Permit lifetimes to appear in type parameter lists and after &
. Lifetimes in
...
type parameter lists are currently ignored, but `&'a T` is equivalent to
`&a/T`.
2013-02-16 08:01:10 -05:00
Patrick Walton
bb833ca0f0
librustc: Stop parsing impl Type : Trait
and fix several declarations that slipped through. r=tjc
2013-02-15 16:59:56 -08:00
bors
6efa3543a8
auto merge of #4922 : jbclements/rust/add-deriving-eq-to-asts, r=catamorphism
...
r?
Apply deriving_eq to the data structures in ast.rs, and get rid of the custom definitions of eq that were everywhere. resulting ast.rs is about 400 lines shorter.
Also: add a few test cases and a bunch of comments.
Also: change ast_ty_to_ty_cache to use node ids rather than ast::ty's. I believe this was a suggestion related to my changes, and it appears to pass all tests.
Also: tiny doc fix, remove references to crate keywords.
2013-02-13 18:49:29 -08:00
Nick Desaulniers
4445b38df2
Remove die!, raplace invocations with fail! Issue #4524 pt 3
2013-02-13 17:01:32 -08:00
John Clements
9d962d8466
add test case
2013-02-13 15:08:27 -08:00
John Clements
0419e36b76
finish deriving_eq in ast
2013-02-13 15:08:27 -08:00
John Clements
819c6d1c04
deriving-eq all over ast
2013-02-13 15:08:27 -08:00
John Clements
25c4676dfa
Commenting, test cases, cleanup
2013-02-13 15:08:27 -08:00
Niko Matsakis
14930fbffe
Add and lex LIFETIME tokens
...
cc #4846
2013-02-08 06:02:35 -08:00
Niko Matsakis
a32498d846
Make ~fn non-copyable, make &fn copyable, split barefn/closure types,
...
correct handling of moves for struct-record update.
Part of #3678 . Fixes #2828 , #3904 , #4719 .
2013-02-07 05:53:30 -08:00
Erick Tryzelaar
9adfa59d8e
core: convert ToStr::to_str to take explicit &self
2013-02-03 20:47:26 -08:00
Brian Anderson
9dc6938292
Merge remote-tracking branch 'nickdesaulniers/issue4524' into nocomm1
2013-02-01 11:18:58 -08:00
Nick Desaulniers
7868b6bf55
Remove fail keyword from lexer & parser and clean up remaining calls to
...
fail
Fix merge conflicts - Issue 4524
2013-02-01 00:15:42 -08:00
John Clements
53688addaa
test cases, cleanup
2013-01-31 23:05:12 -08:00
Nick Desaulniers
aee7929469
Replace most invocations of fail keyword with die! macro
2013-01-31 20:12:49 -08:00
Niko Matsakis
71478f9ce3
Workaround for #4717 : pad contents of ast. rs=breakage
2013-01-31 16:56:12 -08:00
Niko Matsakis
0682ad0eb9
Finalize moves-based-on-type implementation.
...
Changes:
- Refactor move mode computation
- Removes move mode arguments, unary move, capture clauses
(though they still parse for backwards compatibility)
- Simplify how moves are handled in trans
- Fix a number of illegal copies that cropped up
- Workaround for bug involving def-ids in params
(see details below)
Future work (I'll open bugs for these...):
- Improve error messages for moves that are due
to bindings
- Add support for moving owned content like a.b.c
to borrow check, test in trans (but I think it'll
"just work")
- Proper fix for def-ids in params
Def ids in params:
Move captures into a map instead of recomputing.
This is a workaround for a larger bug having to do with the def-ids associated
with ty_params, which are not always properly preserved when inlining. I am
not sure of my preferred fix for the larger bug yet. This current fix removes
the only code in trans that I know of which relies on ty_param def-ids, but
feels fragile.
2013-01-31 12:09:00 -08:00
Patrick Walton
49472ec4c9
librustc: Remove legacy exports from the language. r=brson
2013-01-30 18:11:43 -08:00
Patrick Walton
95b892c8a7
libsyntax: De-export a lot of libsyntax. rs=deëxporting
2013-01-29 13:55:30 -08:00
Niko Matsakis
19e015c44a
Add to_str() definitions for some AST types
...
r=brson
2013-01-28 10:01:59 -08:00
John Clements
0b958e74ac
renaming to adhere to conventions
2013-01-23 11:46:19 -08:00
Seo Sanghyeon
d10b5c725b
Add is_mutbl field to def_arg
2013-01-22 23:34:34 -08:00
Seo Sanghyeon
9a5d617092
Add is_mutbl field to arg
2013-01-22 23:34:33 -08:00
Erick Tryzelaar
d5d77b9351
convert the remaining ast record types into structs
...
These are: region,arg,fn_decl,method,_mod,foreign_mod,
variant_arg,enum_def_,variant_,trait_ref.
2013-01-20 14:08:18 -08:00
Erick Tryzelaar
5ba7e55a4c
convert ast::{ty_field_,ty_method} into a struct
2013-01-20 14:08:18 -08:00
Erick Tryzelaar
8cdc3fda11
convert ast::ty into a struct
2013-01-20 14:08:18 -08:00
Erick Tryzelaar
8a3a1fc148
convert ast::expr into a struct
2013-01-20 14:08:18 -08:00
Erick Tryzelaar
293cd3480c
convert ast::{field_,capture_item_,mt} and middle::ty::mt into structs
2013-01-14 21:36:27 -08:00
Erick Tryzelaar
4bcd19f6be
Convert ast::{pat,field_pat,local_,arm} into structs
2013-01-14 20:52:28 -08:00
Erick Tryzelaar
3ea3136e84
convert ast::blk_ into a struct
2013-01-14 19:35:08 -08:00
Erick Tryzelaar
0b9e23146b
convert ast::crate_ into a struct.
2013-01-14 19:06:59 -08:00
Erick Tryzelaar
eb8fd119c6
convert ast::pat_list_ident_ to a struct
2013-01-14 18:15:54 -08:00
Erick Tryzelaar
4b0f702608
convert ast::attribute_ and ast::view_item to a struct
2013-01-14 18:15:54 -08:00
Erick Tryzelaar
eafed93d72
convert ast::struct_field_ into a struct
2013-01-14 18:15:54 -08:00
Erick Tryzelaar
1f5e9ff362
convert ast::struct_def to a struct
2013-01-14 18:15:54 -08:00
Erick Tryzelaar
530a113bfa
convert ast::item into a struct
2013-01-14 18:15:53 -08:00
Erick Tryzelaar
ebea895d02
convert ast::struct_dtor_ into a struct
2013-01-14 18:14:17 -08:00
Erick Tryzelaar
5c0d674a45
convert ast::foreign_item to a struct
2013-01-14 18:14:16 -08:00
Erick Tryzelaar
e1f1a1204a
change ast::ty_param into a struct.
2013-01-14 18:14:16 -08:00
Erick Tryzelaar
df7d376d25
Convert ast::def_id into a struct.
2013-01-14 18:14:16 -08:00
Erick Tryzelaar
bea67bde21
Change ast::path into a struct.
2013-01-14 18:14:16 -08:00
John Clements
dd621bd58d
removed self-import (minor cleanup)
2013-01-14 17:26:56 -08:00
Patrick Walton
2a1b6c4de9
librustc: Implement &static
as the replacement for Durable
. r=nmatsakis
2013-01-10 11:16:54 -08:00
Niko Matsakis
2b92962aa2
A collection of refactorings that I found it hard/tiresome to divide:
...
- Make `extern fn()` assignable to any closure type, rather than
a subtype.
- Remove unused int_ty_set and float_ty_set
- Refactor variable unification and make it more DRY
- Do fn sub/lub/glb on the level of fn_sig
- Rename infer::to_str::ToStr to infer::to_str::InferStr
- Capitalize names of various types
- Correct hashing of FnMeta
- Convert various records-of-fns into structs-of-fns. This is both
eliminating use of deprecated features and more forwards compatible
with fn reform.
r=pcwalton
2013-01-09 14:59:07 -08:00
Erick Tryzelaar
93c2ebf994
syntax: convert ast::spanned into a struct
2013-01-09 08:55:36 -08:00
Patrick Walton
2db3abddcd
librustc: Make unqualified identifier searches terminate at the nearest module scope. r=tjc
2013-01-08 22:02:35 -08:00
Patrick Walton
44ab00ee37
Revert "librustc: Make unqualified identifier searches terminate at the nearest module scope. r=tjc"
...
This reverts commit a8d37af247
.
2013-01-08 19:29:16 -08:00
Patrick Walton
a8d37af247
librustc: Make unqualified identifier searches terminate at the nearest module scope. r=tjc
2013-01-08 19:27:57 -08:00
Patrick Walton
57c599914a
librustc: Terminate name searches at the nearest module scope for paths that contain at least two components. r=graydon
2012-12-27 10:02:54 -08:00
Erick Tryzelaar
8650c6f683
Switch from serialization to std::serialize. (snapshot)
2012-12-17 20:00:36 -08:00
Jakub Wieczorek
1968cb315a
Add support for destructuring vectors in match expressions
2012-12-17 16:50:40 -08:00
Patrick Walton
cd120736cb
librustc: Allow moves out of self
. r=nmatsakis
2012-12-13 15:49:07 -08:00
Graydon Hoare
9a4c669867
syntax: remove remaining #syntaxext machinery. Close #3516 .
2012-12-12 17:08:09 -08:00
Graydon Hoare
e24ae85025
syntax: remove most code handling old-style syntax extensions.
2012-12-12 15:02:47 -08:00
Tim Chevalier
0046ed9462
Remove un-needed code for obsolete classes
...
and rename "class" to "struct" everywhere possible (except local
vars, I was too lazy for that) -- that is why this commit is so
big.
No review, just dead code removal and renaming.
Closes #3515
2012-12-10 18:45:01 -08:00
Patrick Walton
98fdcb0b9d
librustc: De-mode pattern bindings. r=nmatsakis
2012-12-07 19:34:57 -08:00
Patrick Walton
ab3b752906
librustc: Implement "&mut [T]" as an expression. r=brson
2012-12-07 18:29:10 -08:00
Brian Anderson
ecdc8aae41
Remove impl_id from trait_ref. Unused
2012-12-07 15:54:17 -08:00
Patrick Walton
56ece46f7d
librustc: Remove all legacy pattern bindings from libsyntax and librustc. rs=refactoring
2012-12-04 14:19:19 -08:00
Graydon Hoare
00c856c0b1
Update license, add license boilerplate to most files. Remainder will follow.
2012-12-03 17:12:14 -08:00
Patrick Walton
f34833abfc
librustc: Make a.b()
always a method call. r=nmatsakis
2012-11-30 20:41:46 -08:00
Graydon Hoare
d783f4d7bb
libs: Remove transitionary material on iter_bytes, add workcache to build.
2012-11-30 10:33:16 -08:00
Paul Stansifer
0f707f42c8
Distinguish stmt_mac
s that are followed by semicolons and those that aren't.
2012-11-29 12:09:10 -08:00
Paul Stansifer
ee076f63f9
Allow for macros to occur in statement position.
2012-11-29 12:09:10 -08:00
Brian Anderson
fc06114ddf
Merge remote-tracking branch 'brson/companion' into incoming
...
Conflicts:
src/compiletest/compiletest.rs
src/libcargo/cargo.rs
src/libcore/core.rs
src/librustc/rustc.rs
src/librustdoc/rustdoc.rc
2012-11-28 13:17:33 -08:00
Brian Anderson
8179e268ef
Register snapshots
2012-11-28 12:33:00 -08:00
Patrick Walton
669fbddc44
librustc: Add explicit self to IterBytes. r=nmatsakis
2012-11-28 11:36:04 -08:00
Patrick Walton
61cfec3c52
librustc: Parse extern "C" { ... }
. r=brson
2012-11-28 11:28:16 -08:00
Patrick Walton
1c348e6e38
librustc: Implement @mut [T] as the new replacement for @[mut T]
2012-11-27 09:23:31 -08:00
Brian Anderson
be6613e048
Remove the crate language
2012-11-26 18:13:54 -08:00
Patrick Walton
318e534895
rustc: Implement explicit self for Eq and Ord. r=graydon
2012-11-19 15:33:11 -08:00
Brian Anderson
ddbff6fd2a
syntax: Remove cdir_syntax. Unused
2012-11-18 18:09:41 -08:00
Brian Anderson
1a1e99c27d
Merge remote-tracking branch 'brson/codemap'
...
Conflicts:
src/libsyntax/ext/source_util.rs
2012-11-17 18:38:39 -08:00
Brian Anderson
9ecf86343a
Camel case all the codemap types except span
2012-11-14 15:18:26 -08:00
Patrick Walton
32ad4ae4cd
librustc: Require the #[derivable] attribute, remove the significance of "impl Foo : Bar;", and allow only a subset of methods in a trait to be derived. r=brson
2012-11-14 11:36:55 -08:00
Patrick Walton
fe02814a63
rustc: Implement floating point literal inference. r=nmatsakis
2012-11-12 10:39:08 -08:00
Patrick Walton
0fc952372a
rustc: Support irrefutable patterns in function arguments. r=nmatsakis
2012-11-07 19:29:30 -08:00
Niko Matsakis
b0ed151539
Cleanup how we handle proto in types, remove unsound subtyping
...
Fixes #1896 which was never truly fixed, just masked.
The given tests would have failed had they used `~fn()` and
not `@fn()`. They now result in compilation errors.
Fixes #2978 .
Necessary first step for #2202 , #2263 .
2012-11-06 08:56:29 -08:00
Patrick Walton
be93b29d30
rustc: Implement parsing and typechecking for "once fn"
2012-11-05 13:17:02 -08:00
Tim Chevalier
a006608276
Remove stage0 stuff that was awaiting snapshot
...
and re-register snapshots
Just removing unneeded code, no review
2012-11-03 14:04:32 -07:00
Tim Chevalier
62f98c8ff8
Preserve parenthesization in the AST
...
Maintain explicit "paren" nodes in the AST so we can pretty-print
without having to guess where parens should go. We may revisit this
in the future.
r=graydon
2012-10-30 15:05:32 -07:00
Patrick Walton
599b4208fb
rustc: Translate tuple struct constructors
2012-10-25 11:49:26 -07:00
Patrick Walton
4da58a5bd6
rustc: Implement typechecking for tuple structs. r=nmatsakis
2012-10-24 10:54:09 -07:00
Tim Chevalier
087cbb55d0
Remove <- operator from the compiler
...
Yield an obsolete syntax error on things like "let foo <- bar;"
and "foo <- bar;" r=brson
Progress on #3466
2012-10-23 12:10:19 -07:00
Patrick Walton
3bf0a9b094
rustc: Implement typechecking for simple monomorphic derivable traits on monomorphic types. r=brson
2012-10-23 10:45:23 -07:00
Tim Chevalier
46d4bbbae4
Simplify the AST representation of ty param bounds
...
Change ast::ty_param_bound so that all ty param bounds are represented
as traits, with no special cases for Copy/Send/Owned/Const.
typeck::collect generates the special cases.
A consequence of this is that code using the #[no_core] attribute
can't use the Copy kind/trait. Probably not a big deal?
As a side effect, any user-defined traits that happen to be called
Copy, etc. in the same module override the built-in Copy trait.
r=nmatsakis
Closes #2284
2012-10-22 09:01:12 -07:00
Ben Striegel
41c37d9d0f
...missed a merge marker on that last rebase
2012-10-20 17:50:46 -07:00
Ben Striegel
ac81fff229
Remove old fixed-length vector syntax
2012-10-20 17:50:46 -07:00
Patrick Walton
754704ea94
rustc: Implement intra-crate static methods on anonymous trait implementations. r=nmatsakis
2012-10-18 14:29:18 -07:00
Tim Chevalier
b03c71f629
Remove dead type definition
2012-10-18 12:19:43 -07:00
Patrick Walton
91ae5412d8
rustc: Merge module and type namespaces. r=brson
2012-10-15 15:35:36 -07:00
Erick Tryzelaar
ab89b5c294
libstd: make Serializer a trait-level typaram
2012-10-15 08:25:23 -07:00
Niko Matsakis
98887cc7ee
remove ctor from ast (take 2) (no review: just dead code removal)
2012-10-12 19:46:37 -07:00
Niko Matsakis
cb55e246ba
Use the Nth impl when translating a static method call, instead
...
of the 0th. 0th is only correct when there are no bound tps
on the trait.
Fixes #3741 .
2012-10-12 17:46:43 -07:00
Tim Chevalier
bfbb7197d7
Update FIXME numbers
2012-10-11 16:00:30 -07:00
Tim Chevalier
22efa39382
Revert "Revert "Remove old auto_serialize2 code (needs snapshot)""
...
This reverts commit a33535e441
.
2012-10-08 17:43:45 -07:00
Tim Chevalier
a33535e441
Revert "Remove old auto_serialize2 code (needs snapshot)"
...
This reverts commit 0bd6da8a8c
.
2012-10-08 11:58:54 -07:00
Erick Tryzelaar
0bd6da8a8c
Remove old auto_serialize2 code (needs snapshot)
2012-10-07 17:20:19 -07:00
Erick Tryzelaar
eb626e7119
Remove the old serializers (needs snapshot)
2012-10-07 17:20:19 -07:00
Erick Tryzelaar
e1c517ca48
migrate libsyntax/rustc to auto_serialize2
2012-10-07 10:32:25 -07:00
Tim Chevalier
f96a2a2ca1
Remove by-mutable-ref mode from the compiler
...
and test cases. Closes #3513
2012-10-05 22:45:50 -07:00
Tim Chevalier
f8bc0d2545
Revert "wip"
...
This reverts commit ca49fd402a
.
2012-10-05 16:10:08 -07:00
Tim Chevalier
ca49fd402a
wip
2012-10-05 15:39:12 -07:00
Patrick Walton
9284179311
libstd: Switch off legacy modes in both core and std.
2012-10-02 12:20:06 -07:00
Tim Chevalier
b18320446e
Move over to calling ptr::addr_of
...
Everything should now call ptr::addr_of instead of
ptr::p2::addr_of. Only the pipes macro code when compiled
by stage0 will call ptr::p2::addr_of. Needs a snapshot to get
rid of that.
2012-10-01 15:12:09 -07:00
Patrick Walton
0bcb3bc536
libsyntax: Parse visibility modifiers before foreign items
2012-09-27 12:48:09 -07:00
Erick Tryzelaar
b96af73159
turn ast::ident into a struct
...
This will help with the auto_serialize2 migration. We have to change
ident from a type alias to uint into a unique type. We need to use
a struct instead of a "enum ident = token::str_num" because structs
support constants, but newtypes do not.
2012-09-26 16:20:24 -07:00
Graydon Hoare
9c6ae65865
Support visibility qualifiers in crate directives properly.
2012-09-24 17:29:32 -07:00
Brian Anderson
afd91f8a56
Register snapshots. Remove redundant Eq impls, Makefile hacks
2012-09-23 23:01:49 -07:00
Niko Matsakis
ba3eebd41d
Make it illegal to use modes in a fn signature with providing
...
an explicit variable name. (Step one to changing the defaults)
First step to #3535
2012-09-23 13:30:13 -05:00
Brian Anderson
f5be40384f
Revert "syntax: Make attributes sendable for rustdoc's benefit"
...
This reverts commit 90e3665fa7
.
2012-09-20 18:15:39 -07:00
Brian Anderson
90e3665fa7
syntax: Make attributes sendable for rustdoc's benefit
2012-09-20 17:37:21 -07:00
Patrick Walton
9117dcb968
rustc: De-mode all overloaded operators
2012-09-20 09:48:05 -07:00
Brian Anderson
1397dca2dd
core: Move TLS to task::local_data
2012-09-19 19:08:32 -07:00
Brian Anderson
2906f2de31
core: Rename 'unsafe' mod to 'cast'
2012-09-18 19:36:25 -07:00
Brian Anderson
2d11a04e74
libsyntax: Remove 'unchecked_blk' from AST
2012-09-18 11:51:17 -07:00
Niko Matsakis
7107b4eff5
Have parser recognize static, self region.
...
Fixes a bug in methods that &self couldn't be referenced in the
body. Also fixes #2479 .
2012-09-14 15:22:15 -07:00
Niko Matsakis
5d540de769
fixup mutability of vec::each, make iter_bytes pure
...
also, change DVec() to work with imm vectors rather than mut ones
2012-09-12 13:29:31 -07:00
Niko Matsakis
8a8f200d10
Introduce auto adjustment table to subsume autoderef/autoref/borrowings.
...
Fixes #3261
Fixes #3443
2012-09-11 21:25:01 -07:00
Brian Anderson
1a8a0a77b1
Camel case std::serialization
2012-09-10 19:02:57 -07:00
Patrick Walton
22b8757705
rustc: Make shape-based compare glue never called for comparison operators.
...
Only called for string patterns.
2012-09-10 12:48:42 -07:00
Graydon Hoare
5d823d46ad
Migrate std::map to use core: #️⃣ :Hash trait. Disable many hokey hashes.
2012-09-07 17:24:16 -07:00
Tim Chevalier
f5093dff7b
Remove support for multiple traits in a single impl
...
There was half-working support for them, but they were never fully
implemented or even approved. Remove them altogether.
Closes #3410
2012-09-07 17:22:04 -07:00
Tim Chevalier
53ce42dc4f
Implement &-patterns
...
Closes #2855
2012-09-07 17:09:07 -07:00
Patrick Walton
feb014eb3c
rustc: Add an "ne" method to the Eq trait, and implement it everywhere
2012-09-07 12:24:48 -07:00
Patrick Walton
fba673b26b
rustc: Implement private methods.
...
Doesn't work cross-crate yet.
2012-09-04 18:30:27 -07:00
Patrick Walton
8ff18acc82
libsyntax: "import" -> "use"
2012-09-04 11:43:23 -07:00
Patrick Walton
6e7d5e1cbd
rustc: Implement "use mod"
2012-08-31 11:20:50 -07:00
Patrick Walton
96534365c2
rustc: Make <
and =
into traits
2012-08-29 18:25:22 -07:00
Tim Chevalier
cb8ecd7984
Allow extern mods to be anonymous
...
extern mod {
f();
}
is now allowed, and puts f in the enclosing scope. (Requires a
link_name attribute to be really useful...)
2012-08-29 12:22:05 -07:00
Brian Anderson
8337fa1a54
Camel case the option type
2012-08-26 15:56:16 -07:00
Patrick Walton
8ef4551904
rustc: Implement foreign constants.
...
This is needed for a lot of Apple libraries, as Apple tends to put a lot of
globals in dynamic libraries.
2012-08-25 15:09:33 -07:00
Tim Chevalier
5e22fb9c7f
Remove match check
2012-08-24 22:28:12 -07:00
Paul Stansifer
18180fd5da
"earley_parser" -> "macro_parser" Let's be less confusing.
2012-08-24 18:20:17 -07:00
Paul Stansifer
aa024acae3
Use a faked-up function as a key, because functions aren't identical cross-crate in Windows.
2012-08-24 12:20:06 -07:00
Michael Sullivan
0f996f70a6
Remove purity from fn_decl and move it out to containing AST elements.
2012-08-23 19:40:01 -07:00
Paul Stansifer
129c4b694b
Give a special error message when [de]serializing fails because the interner isn't in TLS yet.
2012-08-23 11:47:35 -07:00
Ben Blum
5b25fc918a
Parse and typecheck moving out of enums ( #2329 )
2012-08-22 20:40:25 -04:00
Tim Chevalier
0a5f88a240
Change the log level to be an enum rather than an int
...
This allows for eliminating a match check.
2012-08-22 16:14:39 -07:00
Paul Stansifer
1153b5dcc8
intern identifiers
2012-08-22 14:59:25 -07:00
Niko Matsakis
652b312122
more sound treatment of fn& regions; change all & to be distinct
2012-08-21 10:28:34 -07:00
Patrick Walton
3038968f28
rustc: Perform some AST surgery to separate out class fields from methods
2012-08-15 16:20:35 -07:00
Patrick Walton
bdb206f285
rustc: Parse labeled loop, break, and again
2012-08-15 16:20:34 -07:00
Michael Sullivan
e640a66eb4
Make most forms of explicit self work. By-value not implemented. Work on #2585 .
2012-08-14 17:40:04 -07:00