Commit graph

1055 commits

Author SHA1 Message Date
varkor
bfc39b9b87 Implement TypeRelation::consts
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-05-01 23:10:57 +01:00
varkor
7d71a1c8a4 Add const generics to unification tables
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-05-01 23:10:57 +01:00
varkor
b9b9994c72 Define const_unification_error
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-05-01 23:10:57 +01:00
varkor
05ac3ac575 Define super_combine_consts
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-05-01 23:10:57 +01:00
varkor
d4e0951fff Add CanonicalVarKind::Const
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-05-01 23:10:57 +01:00
varkor
14f906f24e Define canonicalize_const_var
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-05-01 23:10:57 +01:00
varkor
d7fdeffafc Add generic consts to BottomUpFolder
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-05-01 23:10:05 +01:00
varkor
77447deb21 Add const_variable.rs
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-05-01 23:10:05 +01:00
bors
47e0803d5c Auto merge of #60195 - varkor:commontypes-to-common, r=eddyb
Split `CommonTypes` into `CommonTypes` and `CommonLifetimes`

The so-called "`CommonTypes`" contains more than just types.

r? @eddyb
2019-05-01 09:32:58 +00:00
flip1995
6c272b78dc
Fix lint findings in librustc 2019-04-28 21:19:26 +02:00
bors
cfeb9171b1 Auto merge of #59540 - Zoxc:the-arena-2, r=michaelwoerister
Use arenas to avoid Lrc in queries #1

Based on https://github.com/rust-lang/rust/pull/59536.
2019-04-27 05:24:11 +00:00
varkor
7261bd88ac Update existing usages 2019-04-25 22:05:04 +01:00
bors
3991285f55 Auto merge of #59111 - gilescope:generator-better-errors, r=nikomatsakis
Improved error message when type must be bound due to generator.

Fixes #58930.

Keen to get some feedback - is this as minimal as we can get it or is there an existing visitor I could repurpose?
2019-04-25 20:27:16 +00:00
John Kåre Alsaker
53269c7f6e Update trait queries 2019-04-25 18:23:36 +02:00
Giles Cope
66e41bc675 Improved error message when type must be bound due to generator.
Error now mentions type var name and span is highlighted.
2019-04-25 16:42:59 +01:00
Mazdak Farrokhzad
b16556efa0
Rollup merge of #60177 - rasendubi:rustdoc-comments, r=varkor
Promote rust comments to rustdoc
2019-04-23 21:50:58 +02:00
Mazdak Farrokhzad
62d1574876
Rollup merge of #59823 - davidtwco:issue-54716, r=cramertj
[wg-async-await] Drop `async fn` arguments in async block

Fixes #54716.

This PR modifies the HIR lowering (and some other places to make this work) so that unused arguments to a async function are always dropped inside the async move block and not at the end of the function body.

```
async fn foo(<pattern>: <type>) {
  async move {
  }
} // <-- dropped as you "exit" the fn

// ...becomes...
fn foo(__arg0: <ty>) {
  async move {
    let <pattern>: <ty> = __arg0;
  } // <-- dropped as you "exit" the async block
}
```

However, the exact ordering of drops is not the same as a regular function, [as visible in this playground example](https://play.rust-lang.org/?version=stable&mode=debug&edition=2015&gist=be39af1a58e5d430be1eb3c722cb1ec3) - I believe this to be an unrelated issue. There is a [Zulip topic](https://rust-lang.zulipchat.com/#narrow/stream/187312-t-compiler.2Fwg-async-await/topic/.2354716.20drop.20order) for this.

r? @cramertj
cc @nikomatsakis
2019-04-23 21:50:52 +02:00
Alexey Shmalko
517fb1b06f
Promote rust comments to rustdoc 2019-04-22 21:38:28 +03:00
varkor
7f0f0e31ec Remove double trailing newlines 2019-04-22 16:57:01 +01:00
Matthew Jasper
aa6fb6caf9 Enable migrate mode by default on the 2015 edition
This also fully stabilizes two-phase borrows on all editions
2019-04-21 20:50:02 +01:00
David Wood
9d7da824d6
Introduce ArgSource for diagnostics.
This commit introduces an `ArgSource` enum that is lowered into the HIR
so that diagnostics can correctly refer to the argument pattern's
original name rather than the generated pattern.
2019-04-21 16:46:32 +01:00
Mazdak Farrokhzad
056c02ec2f
Rollup merge of #59735 - matklad:deadcode, r=sanxiyn
remove lookup_char_pos_adj

It is now exactly equivalent to lookup_char_pos.
2019-04-14 00:23:29 +02:00
David Wood
16592f691b
Suggest removing ? to resolve type errors.
This commit adds a suggestion to remove the `?` from expressions if
removing the `?` would resolve a type error.
2019-04-10 23:52:01 +02:00
Aleksey Kladov
63080b3c25 remove lookup_char_pos_adj
It is now exactly equivalent to lookup_char_pos.
2019-04-05 23:16:09 +03:00
flip1995
69f74df429
Deny internal lints in librustc 2019-04-03 18:24:21 +02:00
Taylor Cramer
749349fc9f Refactor async fn return type lowering
async fn now lowers directly to an existential type declaration
rather than reusing the `impl Trait` return type lowering.

As part of this, it lowers all argument-position elided lifetimes
using the in-band-lifetimes machinery, creating fresh parameter
names for each of them, using each lifetime parameter as a generic
argument to the generated existential type.

This doesn't currently successfully allow multiple
argument-position elided lifetimes since `existential type`
doesn't yet support multiple lifetimes where neither outlive
the other. This requires a separate fix.
2019-04-01 18:25:57 -07:00
Esteban Küber
30c247f881 Suggest using anonymous lifetime in impl Trait return without hacks
Fallback to `static_impl_trait` for nice error message by peeking at the
return type and the lifetime type. Point at the return type instead of
the return expr/stmt in NLL mode.
2019-03-31 09:11:47 -07:00
Esteban Küber
ee2a9d93e9 Suggest using anonymous lifetime in impl Trait return 2019-03-29 13:24:29 -07:00
varkor
86d5a69d9d Use Vec instead of FxHashMap 2019-03-27 09:44:55 +00:00
varkor
688cbad9b8 Lookup region variable origin instead of choosing one 2019-03-27 09:44:55 +00:00
varkor
2d48ffa9c6 Store type variable origins in InferenceFudger 2019-03-27 09:44:55 +00:00
varkor
267370ed58 Use eq_relations 2019-03-27 09:44:55 +00:00
varkor
fa18c129c3 Add next_int_var and next_float_var 2019-03-27 09:44:55 +00:00
varkor
f9d8bb8e2c Simplify fudge_inference_if_ok 2019-03-27 09:44:55 +00:00
varkor
ac94858e32 Add int variables and float variables to InferenceFudger 2019-03-27 09:44:55 +00:00
varkor
1f9a2326b5 Rename RegionFudger to InferenceFudger 2019-03-27 09:44:55 +00:00
varkor
6cc09fc8b2 Remove TypeVariableMap 2019-03-27 09:44:55 +00:00
varkor
abf5e81663 Use Ranges for vars_since_snapshot 2019-03-27 09:44:55 +00:00
varkor
a5c653be63 Simplify TypeVariableTable::vars_since_snapshot 2019-03-27 09:44:55 +00:00
varkor
2a08860ae6 Simplify RegionConstraintCollector::vars_since_snapshot 2019-03-27 09:44:55 +00:00
varkor
92b2021b0a Make vars_since_snapshot naming consistent 2019-03-27 09:44:55 +00:00
Niko Matsakis
ca5a2122cc expand the fixme 2019-03-20 20:17:17 +01:00
Niko Matsakis
0cb7926e05 refactor so that relate_ty_var can accommodate vid on a or b side 2019-03-20 20:17:12 +01:00
Niko Matsakis
356ea0b405 nll_relate/mod.rs: rustfmt 2019-03-20 20:09:26 +01:00
scalexm
c3b33a7f3b Fix a bug in chalk unification code 2019-03-20 20:03:19 +01:00
Eduard-Mihai Burtescu
a54a41ce47 rustc: provide DisambiguatedDefPathData in ty::print. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
8619edede1 rustc: slice substs in ty::print instead of passing the full ones. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
52b4f2daa0 rustc: remove PrintCx from ty::Print and rely on printers carrying TyCtxt. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
c0c485c3ad rustc: don't thread existential projections through path_generic_args. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
ffa00d4628 rustc: make pretty_path_generic_args' task as simple as possible. 2019-03-15 13:25:10 +02:00