199 Commits

Author SHA1 Message Date
bors
4225019750 Auto merge of #42396 - venkatagiri:remove_lifetime_extn, r=arielb1
rustc: remove temporary lifetime extension by borrow hint

closes #39283.

Thanks to @nikomatsakis for mentoring on this one.

r? @arielb1
2017-06-03 13:17:20 +00:00
Venkata Giri Reddy
ac8a1f5b6d rustc: remove temporary lifetime extension by borrow hint 2017-06-02 23:43:50 +00:00
Niko Matsakis
5fb0f0dc2e strip param-env from infcx 2017-06-01 13:31:09 -04:00
Eduard-Mihai Burtescu
3ce443828b rustc: adjust the RHS of comparison operators instead of assuming autorefs. 2017-06-01 08:59:47 +03:00
Eduard-Mihai Burtescu
194fe695e3 rustc: decompose Adjustment into a vector of adjustment steps. 2017-06-01 08:59:47 +03:00
Eduard-Mihai Burtescu
91d603a2a7 rustc: move autoref and unsize from Adjust::DerefRef to Adjustment. 2017-06-01 08:59:47 +03:00
Eduard-Mihai Burtescu
4a754f224d rustc: replace autoderefs' use of MethodCallee with OverloadedDeref. 2017-06-01 08:59:47 +03:00
Eduard-Mihai Burtescu
552ab37a10 rustc: replace method_map with Def::Method and node_substs entries. 2017-06-01 08:59:47 +03:00
Eduard-Mihai Burtescu
9eae6ba7fa rustc: remove unnecessary ItemSubsts wrapper. 2017-06-01 08:59:47 +03:00
Eduard-Mihai Burtescu
a65ced5d16 rustc: avoid using MethodCallee's signature where possible. 2017-06-01 08:59:47 +03:00
Eduard-Mihai Burtescu
22510f3266 rustc: replace TyFnDef in MethodCallee with just the FnSig. 2017-06-01 08:59:47 +03:00
Eduard-Mihai Burtescu
b4988f0792 rustc: keep overloaded autoderef MethodCallee's in Adjust. 2017-06-01 08:59:47 +03:00
bors
5b13bff520 Auto merge of #42023 - nikomatsakis:issue-36799-ostn15_phf, r=arielb1
introduce local-scope to prevent `StorageLive`/`StorageDead` in statics

In investigating #36799, I found that we were creating storage-live/storage-dead instructions in statics/constants, where they are not needed. This arose due to the fix for local scopes. This PR tries to fix that (and adds a test -- I'm curious if there is a way to make that test more targeted, though).

r? @arielb1
2017-05-23 09:55:40 +00:00
Niko Matsakis
45dd0632bc rename parameter_environment to param_env 2017-05-22 15:55:56 -04:00
Niko Matsakis
1b7acb6f34 centralize the caching for is-copy, is-sized, and is-freeze
Use the trait-environment+type as the key. Note that these
are only invoked on types that live for the entire compilation
(no inference artifacts). We no longer need the various special-case
bits and caches that were in place before.
2017-05-22 14:55:03 -04:00
Niko Matsakis
19bf544b25 introduce local-scope to prevent storagelive/storagedead in statics
cc #36799
2017-05-17 07:39:57 -04:00
Eduard-Mihai Burtescu
ea1c6df81e rustc: stop interning CodeExtent, it's small enough. 2017-05-13 17:43:32 +03:00
Eduard-Mihai Burtescu
6d4c2141b5 rustc: use DefId instead of CodeExtent for FreeRegion's scope. 2017-05-13 17:42:59 +03:00
Niko Matsakis
69c8f9dd25 move build_mir into build directory 2017-05-02 16:21:55 -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
Niko Matsakis
55d6066c05 remove ROOT_CODE_EXTENT and DUMMY_CODE_EXTENT
Instead, thread around `Option<CodeExtent>` where applicable.
2017-04-30 17:02:58 -04:00
Taylor Cramer
eff39b73d1 On-demandify region mapping 2017-04-30 17:02:56 -04: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
612bb1f54e rustc: rename some of the queries to match tcx methods. 2017-04-24 15:20:52 +03:00
Eduard-Mihai Burtescu
e22873d912 rustc: make the const-eval cache polymorphic. 2017-04-23 11:11:54 +03:00
Eduard-Mihai Burtescu
0adfd810f8 rustc: combine type_needs_drop_given_env and may_drop into needs_drop. 2017-04-20 14:44:43 +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
Niko Matsakis
066d44bc0d refactor the targeted_by_break field
In master, this field was an arbitrary node-id (in fact, an id for
something that doesn't even exist in the HIR -- the `catch` node).
Breaks targeting this block used that id. In the newer system, this
field is a boolean, and any breaks targeted this block will use the
id of the block.
2017-03-30 07:55:29 -04:00
Niko Matsakis
276bba9039 refactor if so that the "then type" is an expression 2017-03-30 07:55:29 -04:00
Oliver Schneider
b0d9afbc04
Represent function pointers in mir-constants as a Value instead of Item 2017-03-24 16:19:31 +01:00
Taylor Cramer
fc04eaacc5 Implement ? in catch expressions and add tests 2017-03-17 21:01:04 -07:00
Simonas Kazlauskas
21c61336bb Remove the TypedConstVal
Replace it with ConstUsize instead, which is more appropriate; we are not using the rest of the
TypedConstVal anyway
2017-02-28 17:12:56 +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
91374f8fe4 rustc: combine BareFnTy and ClosureTy into FnSig. 2017-02-25 17:47:15 +02:00
Eduard-Mihai Burtescu
582d5d9793 Rollup merge of #40037 - froydnj:overflow-checks, r=alexcrichton
add `-C overflow-checks` option

In addition to defining and handling the new option, we also add a method on librustc::Session for determining the necessity of overflow checks.  This method provides a single point to sort out the three (!) different ways for turning on overflow checks: -C debug-assertions, -C overflow-checks, and -Z force-overflow-checks.

I was seeing a [run-pass/issue-28950.rs](b1363a73ed/src/test/run-pass/issue-28950.rs) failure on my machine with these patches, but I was also seeing the failure without the changes to the core compiler.  We'll see what travis says.

Fixes #33134.  r? @alexcrichton
2017-02-25 14:13:38 +02:00
Eduard-Mihai Burtescu
c3075f3d96 Rollup merge of #40025 - est31:master, r=eddyb
Implement non-capturing closure to fn coercion

Implements non capturing closure coercion ([RFC 1558](https://github.com/rust-lang/rfcs/blob/master/text/1558-closure-to-fn-coercion.md)).

cc tracking issue #39817
2017-02-25 14:13:33 +02:00
est31
1b9b322883 Implement non-capturing closure to fn coercion 2017-02-23 22:32:22 +01:00
Nathan Froyd
ffc6ddd51b add -C overflow-checks option
In addition to defining and handling the new option, we also add a
method on librustc::Session for determining the necessity of overflow
checks.  This method provides a single point to sort out the three (!)
different ways for turning on overflow checks: -C debug-assertions, -C
overflow-checks, and -Z force-overflow-checks.

Fixes #33134.
2017-02-22 10:08:57 -05:00
Taylor Cramer
4d65622dcd Properly implement labeled breaks in while conditions 2017-02-18 12:28:44 -08:00
Taylor Cramer
5205e2f8b8 Normalize labeled and unlabeled breaks 2017-02-17 18:58:32 -08:00
Simonas Kazlauskas
98d1db7fe3 If is now always a SwitchInt in MIR 2017-02-10 19:31:37 +02:00
Niko Matsakis
f4010d7e61 move cast_kinds into TypeckTables where it belongs 2017-01-27 16:16:43 -05:00
bors
8430042a49 Auto merge of #39066 - arielb1:lifetime-extension-test, r=nikomatsakis
End temporary lifetimes being extended by `let X: &_` hints

cc #39283

r? @nikomatsakis
2017-01-26 17:42:52 +00: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
Ariel Ben-Yehuda
82a280597d end temporary lifetimes being extended by let X: &_ hints
Fixes #36082.
2017-01-25 02:49:24 +02:00
Scott Olson
a9f8f98caa Rename ExprKind::Vec to Array in HIR and HAIR.
This is a clearer name since they represent [a, b, c] array literals.
2017-01-16 00:45:51 -08:00
Eduard-Mihai Burtescu
cde0a7e7e0 rustc: store ty::Tables separately for each body (except closures'). 2017-01-06 22:23:29 +02:00