summary refs log tree commit diff
path: root/src/libsyntax
AgeCommit message (Collapse)AuthorLines
2013-10-31auto merge of #10187 : pcwalton/rust/remove-mocks, r=pcwaltonbors-35/+196
r? @alexcrichton
2013-10-31Implement a concat!() format extensionAlex Crichton-3/+84
This extension can be used to concatenate string literals at compile time. C has this useful ability when placing string literals lexically next to one another, but this needs to be handled at the syntax extension level to recursively expand macros. The major use case for this is something like: macro_rules! mylog( ($fmt:expr $($arg:tt)*) => { error2!(concat!(file!(), ":", line!(), " - ", $fmt) $($arg)*); }) Where the mylog macro will automatically prepend the filename/line number to the beginning of every log message.
2013-10-31librustc: Implement `|A| -> B` syntax for closures and make bare `fn`Patrick Walton-35/+196
work
2013-10-30auto merge of #10166 : brson/rust/meta, r=alexcrichtonbors-0/+10
This doesn't fix #623 but works around it by limiting the grammar.
2013-10-30auto merge of #10120 : Kimundi/rust/remove_sys, r=alexcrichtonbors-59/+51
- `begin_unwind` and `fail!` is now generic over any `T: Any + Send`. - Every value you fail with gets boxed as an `~Any`. - Because of implementation issues, `&'static str` and `~str` are still handled specially behind the scenes. - Changed the big macro source string in libsyntax to a raw string literal, and enabled doc comments there.
2013-10-30syntax: Forbid non-string literals in meta items. #623Brian Anderson-0/+10
2013-10-30Prepared `std::sys` for removal, and made `begin_unwind` simplerMarvin Löbel-59/+51
- `begin_unwind` is now generic over any `T: Any + Send`. - Every value you fail with gets boxed as an `~Any`. - Because of implementation details, `&'static str` and `~str` are still handled specially behind the scenes. - Changed the big macro source string in libsyntax to a raw string literal, and enabled doc comments there.
2013-10-30auto merge of #9613 : jld/rust/enum-discrim-size.r0, r=alexcrichtonbors-1/+113
Allows an enum with a discriminant to use any of the primitive integer types to store it. By default the smallest usable type is chosen, but this can be overridden with an attribute: `#[repr(int)]` etc., or `#[repr(C)]` to match the target's C ABI for the equivalent C enum. Also adds a lint pass for using non-FFI safe enums in extern declarations, checks that specified discriminants can be stored in the specified type if any, and fixes assorted code that was assuming int.
2013-10-29auto merge of #10134 : reedlepee123/rust/priv_fields, r=brsonbors-7/+4
2013-10-29librustc: Implement the `proc` type as sugar for `~once fn` and `proc`Patrick Walton-26/+145
notation for closures, and disable the feature gate for `once fn` if used with the `~` sigil.
2013-10-29Assorted cleanups suggested by reviewers.Jed Davis-2/+1
2013-10-29Lint non-FFI-safe enums.Jed Davis-0/+19
2013-10-29Add parser for `#[repr(...)]`; nothing uses it yet.Jed Davis-1/+95
Also export enum attrs into metadata, and add a convenient interface for obtaining the repr hint from either a local or remote definition.
2013-10-29removed extra linereedlepee-1/+0
2013-10-29Indentationreedlepee-1/+1
2013-10-29updated the places where the struct is created #7427reedlepee-2/+3
2013-10-29Changed name to non_copyable #7427reedlepee-1/+1
2013-10-29Added the comment #7427reedlepee-1/+1
2013-10-29Replaced empty destructors with NonCopyable #7427reedlepee-5/+2
closes #7427
2013-10-28Field identifiers now include specific spans (Closes #8263).Joshua Yanovski-7/+11
2013-10-28auto merge of #10117 : huonw/rust/dead-visits, r=sanxiynbors-126/+70
Used nowhere, and these are likely incorrect anyway: self needs to be dereferenced once more otherwise the method calls will be reusing the current impl... bam! Infinite recursion.
2013-10-28Remove the extension traits for Readers/WritersAlex Crichton-4/+3
These methods are all excellent candidates for default methods, so there's no need to require extra imports of various traits.
2013-10-28syntax: remove dead @mut Visitor impl (only used in tests).Huon Wilson-126/+70
Also, move some code only uses in the tests into the test module, and replace some needless @mut ~[] with plain ~[].
2013-10-25libsyntax: Get rid of obsolete obsolete warning.Luqman Aden-6/+0
2013-10-25libsyntax: Get rid of some logic for some obsolete syntax.Luqman Aden-14/+5
2013-10-25libsyntax/librustc: Allow mut qualifier in patterns.Luqman Aden-56/+40
2013-10-24Test fixes and merge conflictsAlex Crichton-0/+1
2013-10-24Remove io::read_errorAlex Crichton-8/+4
The general idea is to remove conditions completely from I/O, so in the meantime remove the read_error condition to mean the same thing as the io_error condition.
2013-10-24Remove even more of std::ioAlex Crichton-108/+151
Big fish fried here: extra::json most of the compiler extra::io_util removed extra::fileinput removed Fish left to fry extra::ebml
2013-10-23register snapshotsDaniel Micay-1/+1
2013-10-22libsyntax/librustc: Allow specifying mut on ~self.Luqman Aden-4/+15
2013-10-22libsyntax/librustc: Allow specifying mut on by-value self.Luqman Aden-20/+25
2013-10-22auto merge of #10006 : alexcrichton/rust/another-massive-rename, r=brsonbors-148/+140
Drop the `2` suffix on all of them, updating all code in the process of doing so. This is a completely automated change, and it's dependent on the snapshots going through.
2013-10-22auto merge of #10002 : catamorphism/rust/bug-report-docs, r=alexcrichtonbors-1/+5
r? @alexcrichton And also reference the bug report HOWTO in CONTRIBUTING.md
2013-10-22Remove the now-duplicate logging macrosAlex Crichton-8/+0
2013-10-22Drop the '2' suffix from logging macrosAlex Crichton-145/+145
Who doesn't like a massive renaming?
2013-10-21auto merge of #9937 : brson/rust/log_str, r=alexcrichtonbors-3/+4
2013-10-21auto merge of #9936 : madjar/rust/master, r=alexcrichtonbors-33/+41
This should close #9468. I removed the test stating that nested comments should not be implemented. I had a little chicken-and-egg problem because a comment of the std contains "/*", and adding support for nested comment creates a backward incompatibility in that case, so I had to use a dirty hack to get stage1 and stage2 to compile. This part should be revert when this commit lands in a snapshot. This is my first non-typo contribution, so I'm open to any comment.
2013-10-21Add support for nested commentsGeorges Dubus-33/+41
Fixes #9468.
2013-10-21syntax: Add the Bug Report HOWTO URL to the ICE messageTim Chevalier-1/+5
And also reference the bug report HOWTO in CONTRIBUTING.md
2013-10-21std: Move sys::log_str to repr::repr_to_str. Further work on #2240.Brian Anderson-3/+4
2013-10-21auto merge of #9991 : LeoTestard/rust/asm-feature-gate, r=huonwbors-3/+7
Fixes #9882 Note that the actual checking code is inside a if false in order to compile libstd properly. libstd uses asm! in rt. If we put ```#[feature(asm)]``` in libstd, it fails to build at stage0 beacause the asm feature is not known yet by the snapshot compiler. We must wait that this PR arrives into the snapshot in order to actually activate the checking code.
2013-10-21Add a feature flag for ASMLéo Testard-3/+7
2013-10-20Don't allocate a string when calling printlnAlex Crichton-7/+2
Instead use format_args! to pass around a struct to pass along into std::fmt
2013-10-18auto merge of #9919 : alexcrichton/rust/fmt-begone, r=huonwbors-362/+25
It lived a good life, but its time has come. The groundwork is set for the official transition after the next snapshot (removal of XXX2 macros)
2013-10-18Remove the fmt! syntax extensionAlex Crichton-362/+25
It lived a good life, but its time has come. The groundwork is set for the official transition after the next snapshot (removal of XXX2 macros)
2013-10-18auto merge of #9851 : alexcrichton/rust/include_bin, r=huonwbors-8/+20
Previously an ExprLit was created *per byte* causing a huge increase in memory bloat. This adds a new `lit_binary` to contain a literal of binary data, which is currently only used by the include_bin! syntax extension. This massively speeds up compilation times of the shootout-k-nucleotide-pipes test before: time: 469s memory: 6GB assertion failure in LLVM (section too large) after: time: 2.50s memory: 124MB Closes #2598
2013-10-18Optimize include_bin! for large inputsAlex Crichton-8/+20
Previously an ExprLit was created *per byte* causing a huge increase in memory bloat. This adds a new `lit_binary` to contain a literal of binary data, which is currently only used by the include_bin! syntax extension. This massively speeds up compilation times of the shootout-k-nucleotide-pipes test before: time: 469s memory: 6GB assertion failure in LLVM (section too large) after: time: 2.50s memory: 124MB Closes #2598
2013-10-18Handle inline asm outputs as write-only in liveness, borrowck and trans.Eduard Burtescu-6/+15
2013-10-16auto merge of #9833 : alexcrichton/rust/fixes, r=brsonbors-4/+18
Commits have all the fun details