Esteban Kuber
81a609bd4c
add expected error comment
...
Co-Authored-By: csmoe <csmoe@msn.com>
2018-10-23 09:03:35 +08:00
Esteban Kuber
82b86e53e0
add expected error comment
...
Co-Authored-By: csmoe <csmoe@msn.com>
2018-10-23 09:03:11 +08:00
csmoe
a76690f6a4
optimize unsupported literal diag message
2018-10-22 20:28:37 +08:00
csmoe
fb7c76bad5
update meta item checking test
2018-10-20 11:11:31 +08:00
csmoe
d3b018ccdb
suggest to trim prefix in nested meta items
2018-10-20 11:11:31 +08:00
csmoe
30c6698193
handle errors based on parse_sess
2018-10-20 11:11:31 +08:00
csmoe
2ed2d1a7e6
suggest to remove prefix b
in lint string
2018-10-20 11:11:31 +08:00
bors
42dde960f9
Auto merge of #55162 - nikomatsakis:issue-54902-underscore-bound, r=tmandry
...
handle underscore bounds in unexpected places
Per the discussion on #54902 , I made it a hard error to use lifetime bounds in various places where they used to be permitted:
- `where Foo: Bar<'_>` for example
I also moved error reporting to HIR lowering and added `Error` variants to let us suppress downstream errors that result.
I (imo) improved the error message wording to be clearer, as well.
In the process, I fixed the ICE in #52098 .
Fixes #54902
Fixes #52098
2018-10-19 22:54:14 +00:00
Niko Matsakis
c294ec640b
add more to the ERROR messages
2018-10-19 16:44:01 -04:00
Niko Matsakis
df8adb53c9
fix error messages
2018-10-19 16:41:29 -04:00
bors
78ff609d73
Auto merge of #55152 - nikomatsakis:nll-issue-54571-type-annot-in-constants, r=pnkfelix
...
support type annot in constants, casts
Fixes #54571
Fixes #54332
Fixes #55183
r? @pnkfelix
2018-10-19 20:20:12 +00:00
Niko Matsakis
9a7bb0ef24
normalize the self-type that we extract from impl
2018-10-19 09:34:28 -04:00
Niko Matsakis
f5cc7dba8a
even though we don't need it yet, fix the "fast path" code
2018-10-19 09:34:28 -04:00
Niko Matsakis
16b3ea1e2e
add a test that we enforce 'static
errors post normalization
2018-10-19 09:34:28 -04:00
Niko Matsakis
820c2657f2
add useful debug log
2018-10-19 09:34:28 -04:00
Niko Matsakis
061c9a2bed
region_infer/mod.rs: rustfmt
2018-10-19 09:34:28 -04:00
Niko Matsakis
02e5a902e8
pacify the mercilous tidy
2018-10-19 09:34:28 -04:00
Niko Matsakis
a66ab2bedc
skip user-type annotations if they don't have regions
2018-10-19 09:34:28 -04:00
Niko Matsakis
d5d5e8c5f5
lowering casts in constants now creates multiple uses
...
This can trigger more errors than before. Not sure what is the best
fix here.
2018-10-19 09:34:28 -04:00
Niko Matsakis
26fdac6224
pacify the mercilous tidy
2018-10-19 09:34:28 -04:00
Niko Matsakis
ab79cf951b
save the user-provided type immediately upon return from astconv
2018-10-19 09:34:28 -04:00
Niko Matsakis
2d98e9e0aa
create type ascription for any cast
...
Also, avoid shadowing of the `ty` variable by giving the `cast_ty` and
`var_ty` variables different names. We want to get the user-provided
type from `cast_ty.hir_id`.
2018-10-19 09:34:28 -04:00
Keith Yeung
80ad300b89
Wrap cast expressions inside of ValueTypeAscription
2018-10-19 09:34:28 -04:00
Niko Matsakis
e20fa70bb3
suppress duplicate -- or near duplicate -- type test errors
2018-10-19 09:34:28 -04:00
Niko Matsakis
bfb1d959c3
normalize and prove predicates
...
Also include a test that was not working previously.
2018-10-19 09:34:27 -04:00
Niko Matsakis
121f3c8d19
normalize after substitution
2018-10-19 09:32:32 -04:00
Niko Matsakis
f99300fcbd
pull relate_type_and_user_type
code into type_check
module
...
It's really layered atop the core "relate-types" code
2018-10-19 09:32:30 -04:00
Niko Matsakis
e7ab33e7a6
type_check/mod.rs: rustfmt
2018-10-19 08:31:35 -04:00
Niko Matsakis
a0a3b4c058
replace UserTypeAnnotation::AdtDef
with TypeOf
2018-10-19 08:31:35 -04:00
Niko Matsakis
e94959b936
propagate user-type annotation for constants in expressions
2018-10-19 08:31:35 -04:00
Niko Matsakis
ebdfda64f8
convert FnDef
to TypeOf
, which is more general
2018-10-19 08:31:35 -04:00
Niko Matsakis
bd93741bd3
remove outdated assertion
...
This dates from the days before we instantiated user types with
inference variables.
2018-10-19 08:31:35 -04:00
bors
74ff7dcb13
Auto merge of #55194 - kennytm:rollup, r=kennytm
...
Rollup of 7 pull requests
Successful merges:
- #54300 (Updated RELEASES.md for 1.30.0)
- #55013 ([NLL] Propagate bounds from generators)
- #55071 (Fix ICE and report a human readable error)
- #55144 (Cleanup resolve)
- #55166 (Don't warn about parentheses on `match (return)`)
- #55169 (Add a `copysign` function to f32 and f64)
- #55178 (Stabilize slice::chunks_exact(), chunks_exact_mut(), rchunks(), rchunks_mut(), rchunks_exact(), rchunks_exact_mut())
2018-10-19 09:29:48 +00:00
kennytm
0724efd9a1
Rollup merge of #55013 - matthewjasper:propagate-generator-bounds, r=nikomatsakis
...
[NLL] Propagate bounds from generators
This used to only be done for closures.
2018-10-19 16:48:36 +08:00
kennytm
4763c22402
Rollup merge of #55178 - sdroege:stabilize-chunks-exact, r=alexcrichton
...
Stabilize slice::chunks_exact(), chunks_exact_mut(), rchunks(), rchunks_mut(), rchunks_exact(), rchunks_exact_mut()
Fixes #47115 , #55177
2018-10-19 16:47:55 +08:00
kennytm
399314d802
Rollup merge of #55169 - raphlinus:copysign, r=joshtriplett
...
Add a `copysign` function to f32 and f64
This patch adds a `copysign` function to the float primitive types. It is an exceptionally useful function for writing efficient numeric code, as it often avoids branches, is auto-vectorizable, and there are efficient intrinsics for most platforms.
I think this might work as-is, as the relevant `copysign` intrinsic is already used internally for the implementation of `signum`. It's possible that an implementation might be needed in japaric/libm for portability across all platforms, in which case I'll do that also.
Part of the work towards #55107
2018-10-19 16:47:51 +08:00
kennytm
9d2eb9b752
Rollup merge of #55166 - varkor:ret-parens, r=davidtwco
...
Don't warn about parentheses on `match (return)`
Fixes #55164 .
2018-10-19 16:47:48 +08:00
kennytm
8d712aa1d8
Rollup merge of #55144 - ljedrz:cleanup_resolve, r=petrochenkov
...
Cleanup resolve
- improve/remove allocations
- `truncate` instead of `pop`ping in a loop
- improve common patterns
2018-10-19 16:47:46 +08:00
kennytm
89ebc6ce4f
Rollup merge of #55071 - oli-obk:const_cast_ 🍨 , r=RalfJung
...
Fix ICE and report a human readable error
fixes #55063
r? @RalfJung
2018-10-19 16:47:42 +08:00
bors
dbab381da1
Auto merge of #55040 - scalexm:param-env, r=nikomatsakis
...
Replace `ParamEnv` with a new type in chalk context.
I left a few FIXMEs.
r? @nikomatsakis
2018-10-19 06:38:10 +00:00
kennytm
1419a697e3
Rollup merge of #54300 - Aaronepower:master, r=Aaronepower
...
Updated RELEASES.md for 1.30.0
[Rendered](https://github.com/Aaronepower/rust/blob/master/RELEASES.md )
r? @Mark-Simulacrum
cc @rust-lang/release
2018-10-19 11:03:25 +08:00
bors
cb5e1b93e3
Auto merge of #55004 - oli-obk:sized_static, r=cramertj
...
Check the type of statics and constants for `Sized`ness
fixes #54410
2018-10-19 00:22:25 +00:00
Matthew Jasper
ef1a40d5fe
Propagate bounds from generators
2018-10-18 22:47:49 +01:00
bors
45088b11f5
Auto merge of #54979 - estebank:path-unsized, r=nikomatsakis
...
Custom E0277 diagnostic for `Path`
r? @nikomatsakis we have a way to target `Path` exclusively, we need to identify the correct text to show to consider #23286 fixed.
2018-10-18 21:42:21 +00:00
bors
e7f5d48059
Auto merge of #54976 - davidtwco:issue-52663-special-case-closures, r=nikomatsakis
...
NLL lacks various special case handling of closures
Part of #52663 .
Firstly, this PR extends existing handling of closures to also support generators.
Second, this PR adds the note found in the AST when a closure is invoked twice and captures a variable by-value:
```text
note: closure cannot be invoked more than once because it moves the variable `dict` out of its environment
--> $DIR/issue-42065.rs:16:29
|
LL | for (key, value) in dict {
| ^^^^
```
r? @nikomatsakis
cc @pnkfelix
2018-10-18 18:14:52 +00:00
David Wood
d088edc531
Improve check to consider how value is used.
2018-10-18 18:21:15 +02:00
David Wood
375645abb8
Add by-value captured variable note on second use.
...
This commit adds a note that was present in the AST borrow checker when
closures are invoked more than once and have captured variables
by-value.
2018-10-18 18:21:14 +02:00
Sebastian Dröge
52cc6fde4b
Stabilize slice::rchunks(), rchunks_mut(), rchunks_exact(), rchunk_exact_mut()
...
Fixes #55177
2018-10-18 18:51:56 +03:00
Sebastian Dröge
b08ca2958e
Stabilize slice::chunks_exact() and slice::chunks_exact_mut()
...
Fixes #47115
2018-10-18 18:51:56 +03:00
David Wood
aa701154f0
Extend closure special-casing for generators.
...
This commit extends existing special-casing of closures to highlight the
use of variables within generators that are causing the generator to
borrow them.
2018-10-18 17:48:18 +02:00