Mark Simulacrum
403ae37ce8
Remove reference to Ty.
2017-03-06 07:04:04 -07:00
Mark Simulacrum
89fe4df9c7
Unify both conflicting default searches into one.
2017-03-06 07:04:04 -07:00
Mark Simulacrum
155ef41c84
Fix normalization error.
2017-03-04 16:44:02 -07:00
bors
8c6c0f80a3
Auto merge of #40163 - arielb1:normalization-1702, r=nikomatsakis
...
More through normalization, Feb/Mar 2017 edition
Fix a few normalization bugs.
Fixes #27901 .
Fixes #28828 .
Fixes #38135 .
Fixes #39363 .
Fixes #39367 .
2017-03-04 01:47:51 +00:00
bors
042728e7ff
Auto merge of #40178 - arielb1:provide-destructors, r=eddyb
...
convert AdtDef::destructor to on-demand
This removes the `Cell` from `AdtDef`. Also, moving destructor validity
checking to on-demand (forced during item-type checking) ensures that
invalid destructors can't cause ICEs.
Fixes #38868 .
Fixes #40132 .
r? @eddyb
2017-03-03 05:16:10 +00:00
bors
06c63f6e9e
Auto merge of #39927 - nikomatsakis:incr-comp-skip-borrowck-2, r=eddyb
...
transition borrowck to visit all **bodies** and not item-likes
This is a better structure for incremental compilation and also more compatible with the eventual borrowck mir. It also fixes #38520 as a drive-by fix.
r? @eddyb
2017-03-03 00:14:10 +00:00
bors
c0b7112ba2
Auto merge of #40216 - frewsxcv:rollup, r=frewsxcv
...
Rollup of 7 pull requests
- Successful merges: #39832 , #40104 , #40110 , #40117 , #40129 , #40139 , #40166
- Failed merges:
2017-03-02 20:10:40 +00:00
Corey Farwell
ba39e5d905
Rollup merge of #40166 - aidanhs:aphs-index-coerce, r=nikomatsakis
...
Allow types passed to [] to coerce, like .index()
Fixes #40085
Basically steals the relevant part of [check_argument_types](https://github.com/rust-lang/rust/blob/1.15.1/src/librustc_typeck/check/mod.rs#L2653-L2672 ).
2017-03-02 14:53:51 -05:00
bors
5907ed63d3
Auto merge of #39655 - durka:recursion-limit-suggestion, r=nikomatsakis
...
suggest doubling recursion limit in more situations
Fixes #38852 .
r? @bluss
2017-03-02 17:44:17 +00:00
Niko Matsakis
d572aa2fd4
fix tests to handle the Typeof bodies
2017-03-01 17:04:01 -05:00
Ariel Ben-Yehuda
e294fd5ecb
convert AdtDef::destructor to on-demand
...
This removes the Cell from AdtDef. Also, moving destructor validity
checking to on-demand (forced during item-type checking) ensures that
invalid destructors can't cause ICEs.
Fixes #38868 .
Fixes #40132 .
2017-03-01 18:42:26 +02:00
Ariel Ben-Yehuda
2ecbc22856
fix a few more typeck normalization cases
...
I'll like @nikomatsakis or someone to look at the unsolved variable
case.
2017-03-01 16:56:13 +02:00
Ariel Ben-Yehuda
ca8708273b
more through normalization in typeck & trans
...
Fixes #27901 .
Fixes #28828 .
Fixes #38135 .
Fixes #39363 .
2017-03-01 16:56:08 +02:00
Aidan Hobson Sayers
c58fff2bb7
Allow types passed to [] to coerce, like .index()
...
Fixes #40085
2017-03-01 00:15:13 +00:00
Niko Matsakis
f704ef5ff7
simplify check-item-types too
2017-02-28 16:08:01 -05:00
Niko Matsakis
a780fa3f67
rewrite typeck bodies to iterate over the bodies vector
2017-02-28 09:44:34 -05:00
Niko Matsakis
b3a482ca9b
move the FreeRegionMap into TypeckTables
2017-02-28 08:43:47 -05: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
9890e0466d
rustc: allow handling cycle errors gracefully in on-demand.
2017-02-25 18:35:25 +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-Mihai Burtescu
9c3c306800
rustc_typeck: move the leaves (generics, trait_def, adt_def) to on-demand.
2017-02-25 18:35:25 +02:00
Eduard-Mihai Burtescu
3146ee8672
rustc: simplify tcx.closure_type(...) as it can copy the cached values.
2017-02-25 18:35:25 +02:00
Eduard-Mihai Burtescu
91374f8fe4
rustc: combine BareFnTy and ClosureTy into FnSig.
2017-02-25 17:47:15 +02:00
Eduard-Mihai Burtescu
28f1cf4262
rustc_typeck: don't use Result for get_type_parameter_bounds and ensure_super_predicates.
2017-02-25 17:07:59 +02:00
Eduard Burtescu
4649f7387e
rustc_typeck: lift CrateCtxt to TyCtxt.
2017-02-25 17:07:59 +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
Eduard-Mihai Burtescu
e96a171453
rustc: move the actual values of enum discriminants into a map.
2017-02-25 17:07:59 +02:00
Eduard-Mihai Burtescu
86e402904a
rustc_typeck: simplify AstConv requests as implemented by collect.
2017-02-25 17:07:59 +02:00
Eduard-Mihai Burtescu
e8d01ea4c7
rustc: store type parameter defaults outside of ty::Generics.
2017-02-25 17:07:59 +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
Eduard-Mihai Burtescu
ad9079bae4
Rollup merge of #39864 - cramertj:normalize-breaks, r=nikomatsakis
...
Normalize labeled and unlabeled breaks
Part of #39849 .
2017-02-25 14:13:16 +02:00
est31
77f131da1a
Review changes
...
* use more convenient mk_substs function
* remove type annotations
* use map_bound one level farther outside
* style improvements
2017-02-24 00:32:21 +01:00
est31
f753a6ef02
Feature gate
2017-02-23 22:32:25 +01:00
est31
1b9b322883
Implement non-capturing closure to fn coercion
2017-02-23 22:32:22 +01:00
Vadim Petrochenkov
8c7d0077ab
Avoid ICE in Self::Assoc in impl headers
2017-02-19 00:34:08 +03:00
Taylor Cramer
4d65622dcd
Properly implement labeled breaks in while conditions
2017-02-18 12:28:44 -08:00
bors
3c97cbe4c2
Auto merge of #39877 - estebank:remove-params, r=petrochenkov
...
Remove noop method `Substs::params()`
Re: 48b3dd11f5 & 7a8d4822d8
2017-02-18 09:50:10 +00:00
Taylor Cramer
5205e2f8b8
Normalize labeled and unlabeled breaks
2017-02-17 18:58:32 -08:00
bors
dc0bb3f283
Auto merge of #39485 - canndrew:inference-fix-39297, r=nikomatsakis
...
Ignore expected type in diverging blocks
As per comment: https://github.com/rust-lang/rust/issues/39297#issuecomment-276810343
2017-02-17 10:46:59 +00:00
Esteban Küber
a7f63d12a7
Remove noop method Substs::params()
...
Re: 48b3dd11f5
2017-02-15 22:17:07 -08:00
est31
aebd94fd3c
Stabilize field init shorthand
...
Closes #37340 .
2017-02-15 07:11:13 +01:00
Jake Goulding
1c998416ee
Standardize lifetime and type parameter count mismatch errors
...
They now always say how many lifetime / type parameters were expected
and are explicit about stating "lifetime" or "type" instead of just
"parameter".
2017-02-13 09:08:55 -05:00
Jake Goulding
79d32e9948
Remove duplicated "parameter" in E0089 text
...
Closes #39732
2017-02-13 09:08:55 -05:00
Simonas Kazlauskas
49ccc106da
Rebase fixups
2017-02-10 19:47:09 +02:00
Simonas Kazlauskas
a8b7b62185
Revert use of layout code in typeck::collect
2017-02-10 19:45:53 +02:00
Simonas Kazlauskas
c9939863ca
Fix the IntTypeExt::to_ty() lifetime bounds
2017-02-10 19:43:57 +02:00
Simonas Kazlauskas
5d70a7fbe4
AdtDef now contains discr_ty same as layouted
2017-02-10 19:42:39 +02:00
Simonas Kazlauskas
24c93efbb5
Move type of discriminant to AdtDef
...
Previously AdtDef variants contained ConstInt for each discriminant, which did not really reflect
the actual type of the discriminants. Moving the type into AdtDef allows to easily put the type
into metadata and also saves bytes from ConstVal overhead for each discriminant.
Also arguably the code is cleaner now :)
2017-02-10 19:38:36 +02:00