Commit Graph

4582 Commits

Author SHA1 Message Date
bors a2cf2c66e0 Auto merge of #25791 - barosl:use-paths-as-items, r=alexcrichton
Currently, for `use` declarations with multiple paths, only the `use` item itself is saved in the AST map, not the individual path nodes. This can lead to a problem when a span of a specific path node is needed.

For example, #24818 caused an ICE because of this, in `ImportResolver::check_for_conflicting_import()`.

Fixes #25763.
2015-05-27 07:14:45 +00:00
bors e4c64a1499 Auto merge of #25713 - Stebalien:pattern, r=alexcrichton
Needed to support:

```rust
match X {
  pattern if Y ...
}

for pattern in Y {}
```

IMO, this shouldn't require an RFC because it can't interfere with any future language changes (because `pattern if` and `pattern in` are already legal in rust) and can't cause any ambiguity.
2015-05-27 00:42:55 +00:00
Nick Hamann d8d4a6a842 Fix typo. 2015-05-26 15:12:52 -05:00
Barosl Lee 0ae30e608c Associate each path in a use declaration with the item in the AST map
Currently, for `use` declarations with multiple paths, only the `use`
item itself is saved in the AST map, not the individual path nodes. This
can lead to a problem when a span of a specific path node is needed.

For example, #24818 caused an ICE because of this, in
`ImportResolver::check_for_conflicting_import()`.

Fixes #25763.
2015-05-26 17:42:56 +09:00
Ariel Ben-Yehuda c7711002bb Make caching in stability work. This improves stability check performance
by 90%.
2015-05-26 11:38:56 +03:00
bors ba0e1cd814 Auto merge of #25609 - nikomatsakis:const-fn, r=pnkfelix
This is a port of @eddyb's `const-fn` branch. I rebased it, tweaked a few things, and added tests as well as a feature gate. The set of tests is still pretty rudimentary, I'd appreciate suggestions on new tests to write. Also, a double-check that the feature-gate covers all necessary cases.

One question: currently, the feature-gate allows the *use* of const functions from stable code, just not the definition. This seems to fit our usual strategy, and implies that we might (perhaps) allow some constant functions in libstd someday, even before stabilizing const-fn, if we were willing to commit to the existence of const fns but found some details of their impl unsatisfactory.

r? @pnkfelix
2015-05-24 11:12:34 +00:00
bors cc56c20ba4 Auto merge of #25168 - Manishearth:register_attr, r=eddyb
This lets plugin authors opt attributes out of the `custom_attribute`
and `unused_attribute` checks.


cc @thepowersgang
2015-05-24 09:38:26 +00:00
Oliver Schneider 04fe212e1f Rollup merge of #25710 - Manishearth:no_decorator_clone, r=sfackler
fixes #25683

I have a very nonscientific measurement of the data via valgrind/massif [here](https://gist.github.com/Manishearth/4c47f15f6835cb3957c4)

I measured the memory usage for both --pretty=expanded and -Z no-trans

It *seems* like there's a 20-25MB decrease during expansion on stage2 librustc; but I'm not quite sure.

r? @eddyb

(have not yet run tests, but it compiles fine, might want to wait before giving r+)

cc @nrc @huon
2015-05-23 19:03:19 +02:00
Steven Allen f21655ec02 Allow patterns to be followed by if and in.
Needed to support:

match X {
  pattern if Y ...
}

for pattern in Y {}
2015-05-22 12:47:52 -04:00
Manish Goregaokar 6bc5a92484 Let MultiItemDecorator take &Annotatable (fixes #25683) 2015-05-22 21:10:27 +05:30
Felix S. Klock II deaa1172cf Remove error diagnostics uniqueness check and .json generation.
This is meant to be a temporary measure to get the builds to be
reliable again; see also Issue #25705.
2015-05-22 15:40:12 +02:00
Niko Matsakis 82ded3cd03 Two more small fixes. 2015-05-22 08:45:05 -04:00
Niko Matsakis df93deab10 Make various fixes:
- add feature gate
- add basic tests
- adjust parser to eliminate conflict between `const fn` and associated
constants
- allow `const fn` in traits/trait-impls, but forbid later in type check
- correct some merge conflicts
2015-05-21 11:47:30 -04:00
Eduard Burtescu 1bd420555e rustc: const-qualify const fn function and method calls. 2015-05-21 11:47:30 -04:00
Eduard Burtescu af3795721c syntax: parse const fn for free functions and inherent methods. 2015-05-21 11:47:30 -04:00
bors 9c47ebb00a Auto merge of #25550 - sfackler:derive-debug-unsized, r=alexcrichton
Closes #25394
2015-05-19 07:38:24 +00:00
Steven Fackler 1973ee479d Make #[derive(Debug)] work with unsized fields
Closes #25394
2015-05-17 14:03:37 -07:00
klutzy d0fc35f394 syntax: Remove unused packed attribute
The attribute was removed by #16499.
2015-05-18 00:30:40 +09:00
Manish Goregaokar 5b63841d91 Allow #[derive()] to generate unsafe methods 2015-05-17 14:56:13 +05:30
bors c23a9d42ea Auto merge of #25387 - eddyb:syn-file-loader, r=nikomatsakis
This allows compiling entire crates from memory or preprocessing source files before they are tokenized.

Minor API refactoring included, which is a [breaking-change] for libsyntax users:
* `ParseSess::{next_node_id, reserve_node_ids}` moved to rustc's `Session`
* `new_parse_sess` -> `ParseSess::new`
* `new_parse_sess_special_handler` -> `ParseSess::with_span_handler`
* `mk_span_handler` -> `SpanHandler::new`
* `default_handler` -> `Handler::new`
* `mk_handler` -> `Handler::with_emitter`
* `string_to_filemap(sess source, path)` -> `sess.codemap().new_filemap(path, source)`
2015-05-17 00:05:34 +00:00
bors 6403a2fc32 Auto merge of #25462 - alexcrichton:favicon-https, r=nrc
Helps prevent mixed content warnings if accessing docs over HTTPS.

Closes #25459
2015-05-16 17:41:28 +00:00
bors 63b000b1b8 Auto merge of #25444 - nikomatsakis:macro-tt-fix, r=pnkfelix
Permit token trees, identifiers, and blocks to be following by sequences.

Fixes #25436.

r? @pnkfelix
2015-05-16 12:29:31 +00:00
bors 8fdb3a4ad9 Auto merge of #25487 - P1start:extern-crate-unexpected-error, r=huonw
Closes #25468.
2015-05-16 10:53:25 +00:00
P1start dadac15477 Clarify the error message for malformed extern crate statements
Closes #25468.
2015-05-16 22:35:59 +12:00
P1start 5a1b336a01 Fix the spans of move closures
Closes #24986.
2015-05-16 11:24:06 +12:00
Alex Crichton 0e21beb761 libs: Move favicon URLs to HTTPS
Helps prevent mixed content warnings if accessing docs over HTTPS.

Closes #25459
2015-05-15 16:04:01 -07:00
Niko Matsakis 724b6ed751 Permit token trees, identifiers, and blocks to be following by
sequences.

Fixes #25436.
2015-05-15 13:23:27 -04:00
bors b948d81c44 Auto merge of #25219 - Eljay:fix-comment-parsing, r=alexcrichton
Fixes #25182, parser didn't account for \r\n in regular comments, only doc-comments.
2015-05-15 16:53:53 +00:00
Erick Tryzelaar b62290d421 syntax: Unquoting some statements requires trailing semicolons 2015-05-15 08:07:48 -07:00
Erick Tryzelaar 7b00658413 syntax: Add unquoting ast::{Generics,WhereClause} 2015-05-15 08:01:55 -07:00
Erick Tryzelaar eef6b4a37b syntax: Allow pretty printing more interpolated items 2015-05-15 08:01:55 -07:00
Lee Jeffery 2dcc200be0 Fix stupid mistake from previous commit 2015-05-14 18:28:28 +01:00
Lee Jeffery 93af5f9b44 Make BytePos calculation same as original 2015-05-14 18:19:51 +01:00
Eduard Burtescu 07d4f77790 syntax: abstract over the file loading mechanism. 2015-05-14 01:47:56 +03:00
Eduard Burtescu 0d50b043f7 syntax::parse: optimize file_to_filemap to read a string directly. 2015-05-14 01:47:56 +03:00
Eduard Burtescu 6a59d1824d syntax: replace sess.span_diagnostic.cm with sess.codemap(). 2015-05-14 01:47:56 +03:00
Eduard Burtescu f786437bd2 syntax: refactor (Span)Handler and ParseSess constructors to be methods. 2015-05-14 01:47:56 +03:00
Eduard Burtescu 6a045b9d1c Move tracking of the next NodeId from syntax's ParseSess to rustc's Session. 2015-05-14 01:47:56 +03:00
Lee Jeffery 4f82c3151b Added test to check that newlines are stripped from comments 2015-05-13 22:06:26 +01:00
Lee Jeffery aef0581513 Fix byte offset and error message inconsistencies 2015-05-13 22:05:01 +01:00
Mathieu Rochette 5f932e8ec8 make diagnostic message clearer when called from cargo 2015-05-13 22:55:30 +02:00
bors eb4cb6d16d Auto merge of #25318 - nrc:for-expn, r=sfackler
r? @sfackler
2015-05-13 12:07:11 +00:00
Manish Goregaokar 22b720a920 address more review comments 2015-05-13 12:40:12 +05:30
Nick Cameron 103e52b1db Merge branch 'master' into mulit-decor 2015-05-13 15:09:17 +12:00
bors 0ad202671f Auto merge of #25171 - quantheory:associated_time_long_paths, r=nikomatsakis
It is currently broken to use syntax such as `<T as Foo>::U::static_method()` where `<T as Foo>::U` is an associated type. I was able to fix this and simplify the parser a bit at the same time.

This also fixes the corresponding issue with associated types (#22139), but that's somewhat irrelevant because #22519 is still open, so this syntax still causes an error in type checking.

Similarly, although this fix applies to associated consts, #25046 forbids associated constants from using type parameters or `Self`, while #19559 means that associated types have to always have one of those two. Therefore, I think that you can't use an associated const from an associated type anyway.
2015-05-12 13:04:14 +00:00
Nick Cameron 5d16772ecb Rebasing 2015-05-12 14:15:02 +12:00
Nick Cameron e0216fcc42 Merge branch 'master' into 2015-05-12 12:48:14 +12:00
Nick Cameron 0d258516cb Proper spans for for loop expansion 2015-05-12 12:43:40 +12:00
bors 7334518579 Auto merge of #25085 - carols10cents:remove-old-tilde, r=steveklabnik
There were still some mentions of `~[T]` and `~T`, mostly in comments and debugging statements. I tried to do my best to preserve meaning, but I might have gotten some wrong-- I'm happy to fix anything :)
2015-05-11 04:46:41 +00:00
Manish Goregaokar ac478ecb50 Rollup merge of #25216 - barosl:no-more-task, r=Manishearth
I've found that there are still huge amounts of occurrences of `task`s in the documentation. This PR tries to eliminate all of them in favor of `thread`.
2015-05-09 18:40:19 +05:30