Commit graph

12558 commits

Author SHA1 Message Date
Brian Anderson
647e73dc0a Fix beta branch
This test tests a message that is only displayed on nightly.
2016-04-12 00:14:03 +00:00
bors
b622c3e085 Auto merge of #32850 - jseyfried:add_tests, r=alexcrichton
resolve: Add regression tests for fixed issues

This adds regression tests for fixed issues in resolve (closes #22146, closes #24883, closes #26930).
r? @eddyb
2016-04-11 06:11:31 -07:00
bors
924da295c3 Auto merge of #32816 - eddyb:variadic-fn-item, r=Aatch
Blacklist fn item types from being used with variadic functions.

Fixes #32201 by adding fn types to the variadic blacklist which currently includes `bool`, `i8`, `u8`, `i16`, `u16` and `f32`.
2016-04-10 16:36:28 -07:00
bors
c22302f53f Auto merge of #32773 - mitaa:rdoc-ttfn-json, r=alexcrichton
rustdoc: Remove the json-{input, output} format

(for reference #32698)

fixes #25108

r? @alexcrichton
2016-04-08 20:24:34 -07:00
Jeffrey Seyfried
6dd809e792 Add regression test for #26930 2016-04-09 02:38:50 +00:00
Jeffrey Seyfried
1707de2dca Add regression test for #24883 2016-04-09 02:35:38 +00:00
Jeffrey Seyfried
d1f28f62c7 Add regression test for #22146 2016-04-09 02:35:29 +00:00
Eduard Burtescu
942d4c7e54 Blacklist fn item types from being used with variadic functions. 2016-04-08 08:13:29 +03:00
bors
dde35e75a3 Auto merge of #32800 - Manishearth:rollup, r=Manishearth
Rollup of 7 pull requests

- Successful merges: #32687, #32729, #32731, #32732, #32734, #32737, #32741
- Failed merges:
2016-04-07 15:40:47 -07:00
Manish Goregaokar
02acff64a4 Rollup merge of #32732 - dotdash:ext_arg, r=eddyb
Handle integer-extending for C ABI

We need to supply sext/zext attributes to LLVM to ensure that arguments
are extended to the appropriate width in the correct way.

Most platforms extend integers less than 32 bits, though not all.
2016-04-07 23:26:18 +05:30
bors
7979dd6089 Auto merge of #32016 - nikomatsakis:incr-comp-save, r=mw
Save/load incremental compilation dep graph

Contains the code to serialize/deserialize the dep graph to disk between executions. We also hash the item contents and compare to the new hashes. Also includes a unit test harness. There are definitely some known limitations, such as https://github.com/rust-lang/rust/issues/32014 and https://github.com/rust-lang/rust/issues/32015, but I am leaving those for follow-up work.

Note that this PR builds on https://github.com/rust-lang/rust/pull/32007, so the overlapping commits can be excluded from review.

r? @michaelwoerister
2016-04-07 10:55:37 -07:00
Manish Goregaokar
b0f81a3595 Rollup merge of #32789 - jseyfried:fix_duplicate_resolve_errors, r=eddyb
resolve: Avoid emitting redundant path resolution errors

This PR avoids emitting redundant path resolution errors in `resolve` (fixes #32760).

r? @eddyb
2016-04-07 20:22:43 +05:30
Manish Goregaokar
76e2349c44 Rollup merge of #32674 - jseyfried:1422_groundwork, r=nikomatsakis
Lay groundwork for RFC 1422  and improve `PrivateItemsInPublicInterfacesVisitor`

This PR lays groundwork for RFC 1422 (cc #32409) and improves `PrivateItemsInPublicInterfacesVisitor`. More specifically, it
 - Refactors away `hir::Visibility::inherit_from`, the semantics of which are obsolete.
 - Makes `hir::Visibility` non-`Copy` so that we will be able to add new variants to represent `pub(restricted)` (for example, `Visibility::Restricted(Path)`).
 - Adds a new `Copy` type `ty::Visibility` that represents a visibility value, i.e. a characterization of where an item is accessible. This is able to represent `pub(restricted)` visibilities.
 - Improves `PrivateItemsInPublicInterfacesVisitor` so that it checks for items in an interface that are less visible than the interface. This fixes #30079 but doesn't change any other behavior.

r? @nikomatsakis
2016-04-07 20:22:41 +05:30
bors
444a118a89 Auto merge of #32583 - arielb1:need-a-bound, r=nikomatsakis
Suggest adding a where-clause when that can help

Suggest adding a where-clause when there is an unmet trait-bound that can be satisfied if some type can implement it.

r? @nikomatsakis
2016-04-07 03:07:24 -07:00
Ariel Ben-Yehuda
0ac5e48069 test the substs ppaux code both with and without -Z verbose 2016-04-07 12:17:24 +03:00
bors
455fa01abc Auto merge of #32649 - Amanieu:intrinsic_monomorphization_assert, r=eddyb
Fix LLVM assert when handling bad intrinsic monomorphizations

Passing an invalid type to certain intrinsics would trigger an LLVM assert even though the invalid type was caught by the compiler.

r? @eddyb
2016-04-07 00:08:14 -07:00
Jeffrey Seyfried
35f5e18f75 Fix fallout in tests 2016-04-07 05:48:42 +00:00
Jeffrey Seyfried
dcd4621b4d Add test for #30079 2016-04-07 04:33:17 +00:00
mitaa
8bb19058d4 Remove rustdocs json format 2016-04-07 06:01:55 +02:00
Niko Matsakis
54d78a46c5 Fix test cases to reflect that #32014...went away
Not sure what was the bug. Fixes #32014.
2016-04-06 16:38:29 -04:00
Steve Klabnik
3531a1a0da Rollup merge of #32761 - tshepang:assert, r=steveklabnik
avoid "==" in assert! when one of the values is a bool

Is suspect this is something of an idiom
2016-04-06 12:12:09 -07:00
Amanieu d'Antras
4d71712a4e Fix LLVM assert when handling bad intrinsic monomorphizations 2016-04-06 18:49:10 +01:00
Niko Matsakis
068142a2e6 add incremental test runner and some tests 2016-04-06 12:42:46 -04:00
Niko Matsakis
fe47ca0d0b restructure rustc options relating to incr. comp.
You can now pass `-Z incremental=dir` as well as saying `-Z
query-dep-graph` if you want to enable queries for some other
purpose. Accessor functions take the place of computed boolean flags.
2016-04-06 12:35:15 -04:00
Eduard Burtescu
e8a8dfb056 rustc: retire hir::map's paths. 2016-04-06 13:51:55 +03:00
Eduard Burtescu
8b0937293b rustc: move rustc_front to rustc::hir. 2016-04-06 09:01:55 +03:00
Tshepang Lekhonkhobe
922e666820 avoid "==" in assert! when one of the values is a bool 2016-04-06 06:24:19 +02:00
Ariel Ben-Yehuda
b23648fe4a improve the printing of substs and trait-refs 2016-04-05 22:56:23 +03:00
Ariel Ben-Yehuda
31247e5a0b remove obsolete tests
the meaning of these tests had changed completely over the years and now they
are only a maintenance burden.
2016-04-05 20:58:58 +03:00
Ariel Ben-Yehuda
728d20f7cc improve error message 2016-04-05 20:58:58 +03:00
Ariel Ben-Yehuda
8a461d940c suggest adding a where-clause when that can help
suggest adding a where-clause when there is an unmet trait-bound that
can be satisfied if some type can implement it.
2016-04-05 20:58:58 +03:00
bors
57e5d43c77 Auto merge of #32743 - Manishearth:rollup, r=Manishearth
Rollup of 11 pull requests

- Successful merges: #32403, #32596, #32675, #32678, #32685, #32686, #32692, #32710, #32712, #32714, #32715
- Failed merges: #32488
2016-04-05 10:55:38 -07:00
bors
953c3b5f50 Auto merge of #32742 - eddyb:cast-fns, r=dotdash
trans: don't declare symbols that were already imported.

Fixes #32740 by checking for a declaration before attempting a new one.
Before, `LLVMGetOrInsertFunction` was called for a existing import, but with a different type.
The returned value was a cast function pointer instead of a declaration, and we gave this
value to `llvm::SetFunctionCallConv` & friends , which triggered an LLVM assertion.
2016-04-05 05:48:47 -07:00
Manish Goregaokar
084d9fa943 Rollup merge of #32712 - jonas-schievink:autoderef-fields-for-fn-ty, r=nagisa
Autoderef when suggesting to call `(self.field)`

Fixes #32128
2016-04-05 16:43:22 +05:30
Manish Goregaokar
7d63422bb2 Rollup merge of #32710 - jonas-schievink:consider-last-semi, r=nagisa
Fix "consider removing this semicolon" help

Check last statement in a block, not the first.

Example of current weirdness: http://is.gd/w80J9h

The help was only rarely emitted, and if so, often incorrectly (see above playpen). It was basically only useful with single-statement functions.
2016-04-05 16:43:22 +05:30
Manish Goregaokar
bb561dac99 Rollup merge of #32678 - mitaa:rdoc-stripped, r=alexcrichton
rustdoc: make rustdoc less pass-aware

Instead of hardcoding knowledge about the strip-private pass into the
rendering process we represent (some) stripped items as `ItemEnum::StrippedItem`.

Rustdoc will, for example, generate redirect pages for public items
contained in private modules which have been re-exported to somewhere
externally reachable - this will now not only work for the `strip-private`
pass, but for other passes as well, such as the `strip-hidden` pass.

r? @alexcrichton
2016-04-05 16:43:21 +05:30
Manish Goregaokar
bdd264a0bb Rollup merge of #32403 - vlastachu:super_in_path, r=jseyfried
Fix issue: Global paths in `use` directives can begin with `super` or `self` #32225

This PR fixes #32225 by warning on `use ::super::...` and `use ::self::...` on `resolve`.

Current changes is the most minimal and ad-hoc.
2016-04-05 16:43:20 +05:30
Eduard Burtescu
e17c48bb24 trans: don't declare symbols that were already imported. 2016-04-05 13:01:00 +03:00
vlastachu
6c73134fc7 Fixes bug which accepting using super in use statemet.
Issue: #32225
2016-04-05 11:57:56 +03:00
bors
7fd331e166 Auto merge of #32328 - jseyfried:coherence, r=nikomatsakis
resolve: Improve import failure detection and lay groundwork for RFC 1422

This PR improves import failure detection and lays some groundwork for RFC 1422.
More specifically, it
 - Avoids recomputing the resolution of an import directive's module path.
 - Refactors code in `resolve_imports` that does not scale to the arbitrarily many levels of visibility that will be required by RFC 1422.
  - Replaces `ModuleS`'s fields `public_glob_count`, `private_glob_count`, and `resolved_globs` with a list of glob import directives `globs`.
  - Replaces `NameResolution`'s fields `pub_outstanding_references` and `outstanding_references` with a field `single_imports` of a newly defined type `SingleImports`.
 - Improves import failure detection by detecting cycles that include single imports (currently, only cycles of globs are detected). This fixes #32119.

r? @nikomatsakis
2016-04-04 21:50:05 -07:00
bors
600dc3552f Auto merge of #32647 - Amanieu:checked_atomic_intrinsics, r=eddyb
Only allow using the atomic intrinsics on integer types

Using these with non-integer types results in LLVM asserts. Atomic operations on non-integer types will require values be transmuted into an integer type of suitable size.

This doesn't affect the standard library since `AtomicBool` and `AtomicPtr` currently use `usize` for atomic operations.

r? @eddyb
2016-04-04 15:37:31 -07:00
James Miller
4815f7e668 Handle integer-extending for C ABI
We need to supply sext/zext attributes to LLVM to ensure that arguments
are extended to the appropriate width in the correct way.

Most platforms extend integers less than 32 bits, though not all.
2016-04-04 22:14:10 +02:00
bors
8d5e845760 Auto merge of #32582 - nikomatsakis:issue-32326, r=aturon
process cycles as soon as they are detected

We used to wait for the recursion limit, but that might well be too
long!

Fixes #32326
r? @aturon
2016-04-04 11:41:01 -07:00
Niko Matsakis
e733b86ae3 add error code to test 2016-04-04 12:31:29 -04:00
Niko Matsakis
6a749c7eb1 fix corner case around top of stack
When deciding on a coinductive match, we were examining the new
obligation and the backtrace, but not the *current* obligation that goes
in between the two.  Refactoring the code to just have the cycle given
as input also made things a lot simpler.
2016-04-04 11:14:44 -04:00
Niko Matsakis
944723b773 process cycles as soon as they are detected
We used to wait for the recursion limit, but that might well be too
long!
2016-04-04 11:14:44 -04:00
bors
6a3b558506 Auto merge of #32644 - oli-obk:check_all_constants_early, r=nrc
check constants even if they are not used in the current crate

For now this is just a `warn`-by-default lint. I suggest to make it a `deny`-by-default lint in the next release cycle (so no dependencies break), and then in another release cycle move to an error.

cc #19265
cc #3170
2016-04-04 07:07:42 -07:00
Jonas Schievink
99b6247166 Beef up test 2016-04-04 13:53:04 +02:00
Amanieu d'Antras
8620bbaafd Add compile-fail test 2016-04-03 23:14:48 +01:00
Jonas Schievink
da9c43a723 Autoderef when suggesting to call (self.field)
Fixes #32128
2016-04-03 22:58:44 +02:00