Keegan McAllister
ba1c0c4232
Drop the ExportedItems argument from LintPass::check_crate
...
None of the builtin lints use this, and it's now available through the Context.
2014-06-24 11:36:27 -07:00
Keegan McAllister
6fede93475
Make the crate and its exported items available in the lint context
2014-06-24 11:36:27 -07:00
Keegan McAllister
a813a3779b
Rework lint attr parsing and use it in middle::dead
2014-06-24 11:36:27 -07:00
Keegan McAllister
b5542f7f5b
Convert builtin lints to uppercase names for style consistency
2014-06-24 11:36:27 -07:00
Keegan McAllister
21e7b936d3
Use names in Lint structs in an ASCII-case-insensitive way
...
In preparation for the next commit.
2014-06-24 11:36:27 -07:00
Keegan McAllister
609552e195
Run lint passes using the Option dance instead of RefCells
2014-06-24 11:36:27 -07:00
Keegan McAllister
c1898b9acb
Stop using Default for initializing builtin lints
...
It wasn't a very appropriate use of the trait. Instead, just enumerate
unit structs and those with a `fn new()` separately.
2014-06-24 11:36:27 -07:00
Keegan McAllister
c7af6060dd
Clean up and document the public lint API
...
Also change some code formatting.
lint::builtin becomes a sibling of lint::context in order to ensure that lints
implemented there use the same public API as lint plugins.
2014-06-24 11:36:27 -07:00
Keegan McAllister
819f76ca82
Store the registered lints in the Session
2014-06-24 11:36:27 -07:00
Keegan McAllister
442fbc473e
Replace enum LintId with an extensible alternative
2014-06-24 10:25:15 -07:00
Keegan McAllister
69b6bc5eee
Convert lints to a trait-based infrastructure
...
The immediate benefits are
* moving the state specific to a single lint out of Context, and
* replacing the soup of function calls in the Visitor impl with
more structured control flow
But this is also a step towards loadable lints.
2014-06-24 10:24:03 -07:00
Keegan McAllister
5d4c96a8f2
Rename lint::Lint to lint::LintId
2014-06-24 10:24:03 -07:00
Keegan McAllister
3144614f0b
Move lint infrastructure and individual lints into separate files
2014-06-24 10:24:03 -07:00
Keegan McAllister
75bfedaef5
Move lint.rs out of middle
...
We're going to have more modules under lint, and the paths get unwieldy. We
also plan to have lints run at multiple points in the compilation pipeline.
2014-06-24 10:22:49 -07:00
bors
c38125987f
auto merge of #15071 : tomjakubowski/rust/fix-15052, r=alexcrichton
...
Fix #15052
2014-06-24 15:32:29 +00:00
bors
82ec1aef29
auto merge of #14963 : w3ln4/rust/master, r=alexcrichton
...
The aim of these changes is not working out a generic bi-endianness architectures support but to allow people develop for little endian MIPS machines (issue #7190 ).
2014-06-24 13:46:54 +00:00
Tom Jakubowski
0af4985332
librustc: Remove outdated reference to ~
and @
...
Fix #15052
2014-06-24 05:02:53 -07:00
bors
71fe44def9
auto merge of #15113 : pnkfelix/rust/fsk-add-regression-test-for-ice-from-10846, r=alexcrichton
...
Includes a bit more comments than usual for a regression test; I felt like documenting Niko's diagnosis of the original problem here.
Fix #15111
r? anyone.
2014-06-24 12:01:50 +00:00
bors
58bf8b2155
auto merge of #15107 : ipetkov/rust/tutorial-update, r=alexcrichton
2014-06-24 10:16:49 +00:00
Pawel Olzacki
34a384a128
Added Mipsel architecture support
2014-06-24 11:12:10 +02:00
bors
d9611da4e6
auto merge of #15066 : pcwalton/rust/lang-and-intrinsic-feature-gate, r=alexcrichton
...
If you define lang items in your crate, add `#[feature(lang_items)]`.
If you define intrinsics (`extern "rust-intrinsic"`), add
`#[feature(intrinsics)]`.
Closes #12858 .
[breaking-change]
r? @brson
2014-06-24 07:56:51 +00:00
Patrick Walton
5466d13d43
librustc: Feature gate lang items and intrinsics.
...
If you define lang items in your crate, add `#[feature(lang_items)]`.
If you define intrinsics (`extern "rust-intrinsic"`), add
`#[feature(intrinsics)]`.
Closes #12858 .
[breaking-change]
2014-06-23 23:28:28 -07:00
bors
e8c12d32a2
auto merge of #15079 : nikomatsakis/rust/issue-5527-unify-refactor, r=pnkfelix
...
This is just a cleanup of the code. Doesn't really change anything deep about the way we operate. This is a prelude to implementing a good solution for one-way matching for #5527 .
r? @pnkfelix (we were just crawling about this code, after all)
2014-06-24 06:06:52 +00:00
bors
7689213713
auto merge of #14952 : alexcrichton/rust/const-unsafe-pointers, r=brson
...
This does not yet change the compiler and libraries from `*T` to `*const T` as
it will require a snapshot to do so.
cc #7362
---
Note that the corresponding RFC, https://github.com/rust-lang/rfcs/pull/68 , has not yet been accepted. It was [discussed at the last meeting](https://github.com/rust-lang/rust/wiki/Meeting-weekly-2014-06-10#rfc-pr-68-unsafe-pointers-rename-t-to-const-t ) and decided to be accepted, however. I figured I'd get started on the preliminary work for the RFC that will be required regardless.
2014-06-24 04:16:53 +00:00
bors
10b12bc123
auto merge of #15105 : alexcrichton/rust/snapshots, r=luqmana
2014-06-24 02:31:55 +00:00
bors
e07cec6f9a
auto merge of #14885 : pcwalton/rust/struct-literal-tightening, r=alexcrichton
...
`for...in`.
Closes #14803 .
If you used a structure literal after one of these keywords, surround it
in parentheses.
[breaking-change]
r? @nick29581
2014-06-24 00:36:54 +00:00
Patrick Walton
654d6444fe
libsyntax: Disallow struct literals after if
, while
, match
, and
...
`for...in`.
Closes #14803 .
If you used a structure literal after one of these keywords, surround it
in parentheses.
[breaking-change]
2014-06-23 15:39:29 -07:00
Ivan Petkov
39efe3c82b
Docs: tutorial: Remove a couple references to ~T
2014-06-23 14:51:03 -07:00
bors
d6c1b85246
auto merge of #14974 : Ryman/rust/non_trait_method, r=alexcrichton
...
Closes #3973 .
2014-06-23 21:46:46 +00:00
Kevin Butler
ab24d29f0d
rustc: catch impl X for Y
where X is not a trait in resolve.
2014-06-23 17:38:32 +01:00
Kevin Butler
579a139215
rustc: catch non-trait methods before typeck.
...
Closes #3973 .
2014-06-23 17:38:32 +01:00
bors
575710f6ce
auto merge of #15106 : Sawyer47/rust/rm-duplicated-tests, r=alexcrichton
...
Even if they used to test different things in the past, they are
now identical to other files.
Closes #11496
2014-06-23 16:16:37 +00:00
bors
d77cb22bb6
auto merge of #15100 : rapha/rust/master, r=alexcrichton
...
/usr/bin/env appears to be more portable.
2014-06-23 14:31:39 +00:00
bors
baa72085f4
auto merge of #15098 : ben0x539/rust/nullary-tuple-struct, r=pcwalton
...
Reject `struct Foo();` to fix #15095 .
2014-06-23 12:46:33 +00:00
Felix S. Klock II
7be2019428
Add regression test for ICE from issue 10846.
2014-06-23 14:17:18 +02:00
bors
4362db0d68
auto merge of #15089 : tomjakubowski/rust/rustdoc-default-typarams-12291, r=alexcrichton
...
fix #12291
2014-06-23 11:01:36 +00:00
bors
9a583bb931
auto merge of #15086 : jakub-/rust/xc-struct-variants-match, r=alexcrichton
...
Turns out field names of struct variants are not encoded in crate metadata.
2014-06-23 09:16:36 +00:00
bors
1efc02a9ec
auto merge of #15083 : edwardw/rust/destructure-trait-ref, r=pcwalton
...
Closes #15031 .
2014-06-23 07:26:37 +00:00
bors
c6f86e41a1
auto merge of #15061 : pnkfelix/rust/fsk-fix-issue-10846, r=nikomatsakis
...
In other words, Late-bound regions that occur non-free should be
skipped.
Fix #10846 (specifically the ICE, not the weakness in the current type inference).
2014-06-23 04:31:35 +00:00
Alex Crichton
70d4b50071
Register new snapshots
2014-06-22 21:16:11 -07:00
bors
5971193332
auto merge of #15097 : tomjakubowski/rust/fix-feature-gate-docs, r=sfackler
...
See http://static.rust-lang.org/doc/master/rustc/front/feature_gate/index.html for the problem this fixes.
2014-06-23 02:21:37 +00:00
bors
1c7b780787
auto merge of #15068 : erickt/rust/mem-inline, r=pcwalton
...
This is a couple micro-optimizations I've been sitting on for a while. This inlines a couple functions that are important to the `std::io::mem`. Ultimately, this results in about a 15% performance increase in some micro-benchmarks for my [libserialize](https://github.com/erickt/rust-serde ) rewrite.
2014-06-23 00:11:39 +00:00
Raphael Speyer
53ec4a6732
Change /bin/env to /usr/bin/env in helper python script, as it is more portable
2014-06-23 09:17:40 +10:00
bors
ca3e557ee8
auto merge of #15081 : jakub-/rust/issue-15080, r=alexcrichton
...
Fixes #15080 .
2014-06-22 21:31:39 +00:00
bors
34bd169171
auto merge of #15091 : nikomatsakis/rust/issue-5527-rename-types, r=pcwalton
...
Some cleanups I'm sick of rebasing.
r? @pcwalton (do you agree with new names?)
2014-06-22 18:41:41 +00:00
Benjamin Herr
ff50ce9a1b
libsyntax: don't allow enum structs with no fields
...
Unit-like structs are written as `struct Foo;`, but we erroneously
accepted `struct Foo();` and took it to mean the same thing. Now we
don't, so use the `struct Foo;` form!
[breaking-change]
2014-06-22 20:21:11 +02:00
Tom Jakubowski
ffcc443098
librustc: Fix poorly formatted doc in feature_gate
...
The #![feature(...)] line had been rendering in the docs as a header
because of Markdown syntax.
2014-06-22 10:29:42 -07:00
bors
c9f3c68961
auto merge of #15088 : Sawyer47/rust/detotal, r=alexcrichton
...
There were still Total{Ord,Eq} in docs and src/etc
2014-06-22 15:16:39 +00:00
Niko Matsakis
8a4bb8a576
Rename ty_param_bounds_and_ty to Polytype
2014-06-22 10:25:11 -04:00
Niko Matsakis
7ead6bed48
Rename and move ty_param_substs_and_ty
2014-06-22 10:25:11 -04:00