Commit Graph

279 Commits

Author SHA1 Message Date
Oliver Schneider
dd87eabd83 Remove need for &format!(...) or &&"" dances in span_label calls 2017-05-08 12:56:15 +02:00
Niko Matsakis
6c2f64bdd8 modify ExprUseVisitor and friends to take region-maps, not def-id 2017-04-30 17:03:32 -04:00
Taylor Cramer
73cd9bde37 introduce per-fn RegionMaps
Instead of requesting the region maps for the entire crate, request for
a given item etc. Several bits of code were modified to take
`&RegionMaps` as input (e.g., the `resolve_regions_and_report_errors()`
function). I am not totally happy with this setup -- I *think* I'd
rather have the region maps be part of typeck tables -- but at least the
`RegionMaps` works in a "parallel" way to `FreeRegionMap`, so it's not
too bad. Given that I expect a lot of this code to go away with NLL, I
didn't want to invest *too* much energy tweaking it.
2017-04-30 17:03:30 -04:00
Niko Matsakis
c7dc39dbf0 intern CodeExtents
Make a `CodeExtent<'tcx>` be something allocated in an arena
instead of an index into the `RegionMaps`.
2017-04-30 17:02:59 -04:00
achernyak
e24003fb3c query for describe_def 2017-04-27 13:27:16 -05:00
Eduard-Mihai Burtescu
decf7598ef rustc: use tcx.at(span) to set the location of a query. 2017-04-24 18:06:39 +03:00
Eduard-Mihai Burtescu
9bde6b6d96 rustc: expose the common DUMMY_SP query case as tcx methods. 2017-04-24 17:23:43 +03:00
Eduard-Mihai Burtescu
612bb1f54e rustc: rename some of the queries to match tcx methods. 2017-04-24 15:20:52 +03:00
Eduard-Mihai Burtescu
8054377f8f rustc_const_eval: support all unit enum variants. 2017-04-23 11:11:57 +03:00
Eduard-Mihai Burtescu
0ff828baa0 rustc_const_eval: CallOn isn't needed, typeck/const-qualif handle those cases. 2017-04-23 11:11:56 +03:00
Eduard-Mihai Burtescu
e22873d912 rustc: make the const-eval cache polymorphic. 2017-04-23 11:11:54 +03:00
Niko Matsakis
810e0151af convert calls to visit_all_item_likes_in_krate
We no longer need to track the tasks in these cases since these
particular tasks have no outputs (except, potentially, errors...)  and
they always execute.
2017-04-18 07:08:40 -04:00
Eduard-Mihai Burtescu
6dc21b71cf rustc: use monomorphic const_eval for cross-crate enum discriminants. 2017-04-16 01:31:37 +03:00
Eduard-Mihai Burtescu
63064ec190 rustc: expose monomorphic const_eval through on-demand. 2017-04-16 01:31:06 +03:00
Eduard-Mihai Burtescu
8854164d0c rustc_const_eval: move ConstEvalErr to the rustc crate. 2017-04-16 01:31:06 +03:00
Matthew Jasper
2060266c16 Don't warn about char comparisons in constexprs 2017-03-31 23:52:35 +01:00
Oliver Schneider
eb447f4ef4
Fix various useless derefs and slicings 2017-03-27 08:58:00 +02:00
Alex Crichton
e341d603fe Remove internal liblog
This commit deletes the internal liblog in favor of the implementation that
lives on crates.io. Similarly it's also setting a convention for adding crates
to the compiler. The main restriction right now is that we want compiler
implementation details to be unreachable from normal Rust code (e.g. requires a
feature), and by default everything in the sysroot is reachable via `extern
crate`.

The proposal here is to require that crates pulled in have these lines in their
`src/lib.rs`:

    #![cfg_attr(rustbuild, feature(staged_api, rustc_private))]
    #![cfg_attr(rustbuild, unstable(feature = "rustc_private", issue = "27812"))]

This'll mean that by default they're not using these attributes but when
compiled as part of the compiler they do a few things:

* Mark themselves as entirely unstable via the `staged_api` feature and the
  `#![unstable]` attribute.
* Allow usage of other unstable crates via `feature(rustc_private)` which is
  required if the crate relies on any other crates to compile (other than std).
2017-03-23 11:28:00 -07:00
Joshua Horwitz
6a2ef9a25f clean up visuals on error index #40425 2017-03-13 23:12:54 -04:00
Esteban Küber
ad06fc718b Fix ICE: don't use struct_variant on enums
Fix #40221 and add unittest.
2017-03-06 00:13:14 -03:00
Eduard-Mihai Burtescu
d9f0a949fd rustc_const_eval: demand that the MIR qualify_consts ran on each evaluated body. 2017-02-25 18:35:26 +02:00
Eduard-Mihai Burtescu
e7a48821c0 rustc_const_eval: always demand typeck_tables for evaluating constants. 2017-02-25 18:35:26 +02:00
Eduard-Mihai Burtescu
c832e6f327 rustc_typeck: rework coherence to be almost completely on-demand. 2017-02-25 18:35:26 +02:00
Eduard-Mihai Burtescu
ba11640179 rustc_typeck: hook up collect and item/body check to on-demand. 2017-02-25 18:35:25 +02:00
Eduard Burtescu
b5c4244c6c rustc: introduce a query system for type information in ty::maps. 2017-02-25 17:07:59 +02:00
Eduard-Mihai Burtescu
cc8a3a93b7 rustc: consolidate dep-tracked hashmaps in tcx.maps. 2017-02-25 17:07:59 +02:00
Ariel Ben-Yehuda
87e544bca5 use a more conservative inhabitableness rule
This is a [breaking-change] from 1.15, because this used to compile:

```Rust
enum Void {}
fn foo(x: &Void) {
    match x {}
}
```
2017-02-23 22:46:22 +02:00
Ariel Ben-Yehuda
a84eb95a7d check_match: don't treat privately uninhabited types as uninhabited
Fixes #38972.
2017-02-20 20:36:30 +02:00
Andrew Cann
347bc77c2c Use global recursion limit when evaluating inhabitedness 2017-02-10 00:52:51 +08:00
Andrew Cann
2bb9c5875d Add recursion limit to inhabitedness check
Fixes #39489.
Add test aswell.
2017-02-09 17:34:45 +08:00
Corey Farwell
4e67bf92e3 Rollup merge of #39526 - canndrew:uninhabited-while-let-fix, r=arielb1
Uninhabited while-let pattern fix

This fix makes it so while-let with an unsatisfiable pattern raises a correct warning rather than an incorrect error.
2017-02-05 12:45:12 -05:00
Corey Farwell
13b8e4b416 Rollup merge of #39519 - nagisa:more-snap, r=alexcrichton
More snap cleanup

r? @alexcrichton
2017-02-05 12:45:11 -05:00
Andrew Cann
7135d0ab94 Fix make tidy 2017-02-05 22:29:06 +08:00
Corey Farwell
4f8ce9efb9 Rollup merge of #39009 - canndrew:default-unit-warnings, r=nikomatsakis
Add warning for () to ! switch

With feature(never_type) enabled diverging type variables will default to `!` instead of `()`. This can cause breakages where a trait is resolved on such a type.

This PR emits a future-compatibility warning when it sees this happen.
2017-02-05 09:14:39 -05:00
Andrew Cann
0dbb1e4fee Remove use of ptr::eq 2017-02-05 16:41:32 +08:00
Andrew Cann
a1f42cd893 Uninhabited while-let pattern fix 2017-02-04 16:27:45 +08:00
Simonas Kazlauskas
87ace0d720 More snap cleanup 2017-02-04 04:53:09 +02:00
Alex Crichton
626e754473 Bump version, upgrade bootstrap
This commit updates the version number to 1.17.0 as we're not on that version of
the nightly compiler, and at the same time this updates src/stage0.txt to
bootstrap from freshly minted beta compiler and beta Cargo.
2017-02-03 13:25:46 -08:00
Andrew Cann
2cc84df44c Add warning for () to ! switch 2017-02-03 18:48:15 +08:00
Oliver Schneider
d73e84d2e7 use suggestions instead of helps with code in them 2017-01-31 14:45:08 +01:00
Vadim Petrochenkov
ffba0cea62 Merge ty::TyBox into ty::TyAdt 2017-01-30 23:14:15 +03:00
Alex Crichton
0e64d4954f Rollup merge of #39290 - canndrew:hide-uninhabitedness, r=nikomatsakis
Hide uninhabitedness checks behind feature gate

This reverts the fix to match exhaustiveness checking so that it can be discussed. The new code is now hidden behind the `never_type` feature gate.
2017-01-27 16:41:50 -08:00
Eduard-Mihai Burtescu
1ff3641623 rustc: don't call the HIR AST. 2017-01-26 13:41:28 +02:00
Eduard-Mihai Burtescu
45c8c5678a rustc: rename TyCtxt's map field to hir. 2017-01-26 13:41:28 +02:00
Niko Matsakis
282f7a3c44 rename Tables to TypeckTables 2017-01-25 16:24:00 -05:00
Andrew Cann
2b7a23ed30 Hide uninhabitedness checks behind feature gate 2017-01-25 14:48:20 +08:00
bors
c0d0e68be4 Auto merge of #35712 - oli-obk:exclusive_range_patterns, r=nikomatsakis
exclusive range patterns

adds `..` patterns to the language under a feature gate (`exclusive_range_pattern`).

This allows turning

``` rust
match i {
    0...9 => {},
    10...19 => {},
    20...29 => {},
    _ => {}
}
```

into

``` rust
match i {
    0..10 => {},
    10..20 => {},
    20..30 => {},
    _ => {}
}
```
2017-01-25 02:17:33 +00:00
bors
98c3128c39 Auto merge of #39127 - canndrew:unreachable-pattern-errors-into-warnings, r=arielb1
Change unreachable pattern ICEs to warnings

Allow code with unreachable `?` and `for` patterns to compile.
Add some tests.
2017-01-22 08:56:27 +00:00
Jeffrey Seyfried
191abc4264 Remove unused extern crates. 2017-01-22 01:31:02 +00:00
Andrew Cann
ef9f0ab43e Fix some nits 2017-01-21 10:53:16 +08:00