Commit graph

397 commits

Author SHA1 Message Date
Manish Goregaokar
352853c18b Register diagnostics for rustc_privacy and rustc_trans properly
fixes #29665
2015-11-22 10:26:22 +05:30
Vadim Petrochenkov
c1ad5af4a6 Changes to data produced by privacy pass 2015-11-19 14:16:35 +03:00
Niko Matsakis
7926fa1ee9 Update unit tests in driver. 2015-11-18 19:23:30 -05:00
Niko Matsakis
e4ff9f71db Port a bunch of code new-visitor; all of these ports were
straightforward uses of `visit_all_items`. In some cases I had to remove
empty `visit_item` calls that were just to suppress visiting nested
items.
2015-11-18 19:22:18 -05:00
bors
22e31f10c2 Auto merge of #29083 - petrochenkov:stability3, r=alexcrichton
What this patch does:
- Stability annotations are now based on "exported items" supplied by rustc_privacy and not "public items". Exported items are as accessible for external crates as directly public items and should be annotated with stability attributes.
- Trait impls require annotations now.
- Reexports require annotations now.
- Crates themselves didn't require annotations, now they do.
- Exported macros are annotated now, but these annotations are not used yet.
- Some useless annotations are detected and result in errors
- Finally, some small bugs are fixed - deprecation propagates from stable deprecated parents, items in blocks are traversed correctly (fixes https://github.com/rust-lang/rust/issues/29034) + some code cleanup.
2015-11-18 19:49:33 +00:00
Michael Woerister
c533902285 MIR: Add pass that erases all regions right before trans 2015-11-18 17:26:24 +01:00
Vadim Petrochenkov
52acc05f63 Rework stability annotation pass 2015-11-18 01:24:20 +03:00
Oliver Schneider
d09220de13 rename ast::ImplItem_::*ImplItem to ast::ImplItemKind::* 2015-11-16 10:35:30 +01:00
Scott Olson
83af140b40 Make the mir_map available to the after_analysis CompileController step. 2015-11-12 14:18:11 -06:00
bors
3bd622f94c Auto merge of #29764 - nrc:stats, r=nikomatsakis
Emits loc, and node count - before and after expansion.

E.g.,

```
rustc: x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore
Lines of code:             32060
Pre-expansion node count:  120205
Post-expansion node count: 482749
```

r? @nikomatsakis
2015-11-12 04:06:48 +00:00
Vadim Petrochenkov
fba1926a2f Fix hygiene regression in patterns 2015-11-12 01:49:23 +03:00
Nick Cameron
f7dc917ba4 Add -Zinput-stats
Emits loc, and node count - before and after expansion.

E.g.,

```
rustc: x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore
Lines of code:             32060
Pre-expansion node count:  120205
Post-expansion node count: 482749
```
2015-11-12 09:23:37 +13:00
Jose Narvaez
4f050bf04a Manual fixups. 2015-11-10 20:49:12 +00:00
Jose Narvaez
4e64645228 Rustfmting librustc_driver. 2015-11-10 20:48:44 +00:00
inrustwetrust
61bb652ada Fixed text alignment for output of "rustc -Z help" 2015-11-07 14:13:30 +01:00
Jonathan S
1ca1874986 Remove use of RefCell<DefMap> in resolve_lifetime 2015-11-04 20:38:03 -06:00
Jonathan S
f5781f143c Remove use of RefCell<DefMap> in check_static_recursion 2015-11-04 20:38:03 -06:00
Niko Matsakis
3c07b46118 Pass the mir map to trans 2015-11-03 04:34:59 -05:00
Niko Matsakis
41bca6dd76 Remove contraction. The contraction rules predated the notion of an
empty region, and they complicate region inference to no particular end.
They also lead in some cases to spurious errors like #29048 (though in
some cases these errors are helpful in tracking down missing
constraints).
2015-10-28 18:48:49 -04:00
Niko Matsakis
2d5b8b0f2d Disable MIR on beta/stable until we've resolved #29227 is resolved. 2015-10-26 15:05:35 -04:00
Niko Matsakis
b48b6eaf75 fix bug in hir,identified 2015-10-22 16:58:08 -04:00
Nick Cameron
401c80dab1 save-analysis: don't recompute crate name 2015-10-21 12:04:48 +13:00
Nick Cameron
a62a529eea review comments 2015-10-09 21:44:44 +13:00
Nick Cameron
2b4f28e531 Misc fixups 2015-10-09 11:53:42 +13:00
Nick Cameron
21205f4f9e Cache ids between lowering runs
So that lowering is reproducible
2015-10-09 11:53:42 +13:00
Nick Cameron
20083c1e1f Move for loop desugaring to lowering 2015-10-09 11:53:41 +13:00
Nick Cameron
56713a1684 Add a lowering context 2015-10-09 11:53:41 +13:00
Steve Klabnik
252c3838df Rollup merge of #28872 - iwillspeak:master, r=Manishearth
Currently the explain command line flag requires full error codes, complete with
the leading zeros and the E at the beginning. This commit changes that,
if you don't supply a full error code then the error number is padded
out to the required size and the E is added to the beginning.

This means that where previously you would need to write E0001, you can
now write 0001, 001, 01 or just 1 to refer to the same error.
2015-10-08 13:54:03 -04:00
Will Speak
5d01556183 Make --explain Handle Partial Error Codes
Currently the explain command requires full erorr codes, complete with
the leading zeros and the E at the beginning. This commit changes that,
if you don't supply a full erorr code then the error number is padded
out to the required size and the E is added to the beginning.

This means that where previously you would need to write E0001, you can
now write 0001, 001, 01 or jsut 1 to refer to the same error.
2015-10-07 11:59:51 +01:00
Niko Matsakis
24ee4b1f6c rename dump to mir_map, which seems more suitable 2015-10-06 12:37:43 -04:00
Niko Matsakis
810cf71a3c make mir map available to later passes (currently unused) 2015-10-06 12:35:53 -04:00
Niko Matsakis
dedde0bb5a do MIR construction after pattern evaluation for now to sidestep
various annoying edge cases
2015-10-04 21:08:32 -04:00
bors
ef07d7dd40 Auto merge of #28650 - sanxiyn:attr-usage, r=nrc
This is technically a [breaking-change].

Fix #2809.
Fix #22746.
2015-10-02 19:16:39 +00:00
bors
e650491f20 Auto merge of #28768 - alexcrichton:dep-info++, r=brson
This PR closes out #28716 and #28735 by making two changes to the compiler:

1. The `--emit` flag to the compiler now supports the ability to specify the output file name of a partuclar emit type. For example `--emit dep-info=bar.d,asm=foo.s,link` is now accepted.
2. The dep-info emission now emits a dummy target for all input file names to protect against deleted files.
2015-10-02 16:33:26 +00:00
Alex Crichton
1741962271 rustc: Emit phony targets for inputs in dep-info
This helps protect against files being deleted to ensure that `make` won't emit
errors.

Closes #28735
2015-10-02 09:33:06 -07:00
Seo Sanghyeon
61f5b2b0ca Check attribute usage 2015-10-03 00:01:49 +09:00
Niko Matsakis
5600c6282e move direct accesses of node to go through as_local_node_id, unless
they are being used as an opaque "position identifier"
2015-10-01 10:37:19 -04:00
Niko Matsakis
9ff4f57cd0 move job of creating local-def-ids to ast-map (with a few stragglers) 2015-10-01 10:28:28 -04:00
Alex Crichton
8c963c07a8 rustc: Support output filenames for each emit type
Currently the compiler supports the ability to emit multiple output types as
part of one compilation (e.g. asm, LLVM IR, bytecode, link, dep-info, etc). It
does not, however, support the ability to customize the output filename for each
of these output types. The `-o` flag is ignored if multiple emit types are
specified (and the compiler emits a warning about this).

Normally this doesn't matter too much, but in the case of `dep-info` it can lead
to a number of problems (e.g. see #28716). By allowing customization of the
output filename for each emit type we're able to solve the problems in that
issue.

This commit adds support for the `--emit` option to the compiler to look like:

    rustc foo.rs --emit dep-info=.deps/foo.d,link

This indicates that the `dep-info` output type will be placed at `.deps/foo.d`
and the `link` output type will otherwise be determined via the `--out-dir` and
`-o` flags.

Closes #28716
2015-09-30 11:12:30 -07:00
Vadim Petrochenkov
f284cbc7af Cleanup interfaces of Name, SyntaxContext and Ident
Make sure Name, SyntaxContext and Ident are passed by value
Make sure Idents don't serve as keys (or parts of keys) in maps, Ident comparison is not well defined
2015-09-24 23:05:02 +03:00
Vadim Petrochenkov
40ce80484c Remove random Idents outside of libsyntax 2015-09-23 20:04:49 +03:00
Vadim Petrochenkov
a4af958786 Use Names in HIR Items 2015-09-22 19:53:52 +03:00
bors
d3fc6e1858 Auto merge of #28454 - GSam:master, r=nrc
This is so that the resolution results can be used after analysis, potentially for tool support
2015-09-17 08:28:33 +00:00
Garming Sam
61cb1baab1 Add compiler option to keep mtwt tables
This is so that the resolution results can be used after analysis, potentially for tool support
2015-09-17 13:09:55 +12:00
Nick Cameron
a642d853aa Change to a multi-trait approach
[breaking-change] for lint authors

You must now implement LateLintPass or EarlyLintPass as well as LintPass and use either register_late_lint_pass or register_early_lint_pass, rather than register_lint_pass.
2015-09-17 12:16:46 +12:00
Nick Cameron
c1084a3ada Changes to tests 2015-09-17 12:16:46 +12:00
Nick Cameron
76856e19ff Add an early lint pass for lints that operate on the AST
There is a minor [breaking-change] for lint authors - some functions which were previously defined on `lint::Context` have moved to a trait - `LintContext`, you may need to import that trait to avoid name resolution errors.
2015-09-17 12:16:46 +12:00
Nick Cameron
e9f1b06329 Use ast attributes every where (remove HIR attributes).
This could be a [breaking-change] if your lint or syntax extension (is that even possible?) uses HIR attributes or literals.
2015-09-16 10:57:06 +12:00
Ariel Ben-Yehuda
caa10c3bde move middle::ty and related modules to middle/ty/ 2015-09-14 10:56:13 +03:00
Niko Matsakis
faa9ec81b5 add MIR crate and link it into the driver 2015-09-06 07:27:23 -04:00