about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEsteban Küber <esteban@kuber.com.ar>2018-07-15 14:11:54 -0700
committerEsteban Küber <esteban@kuber.com.ar>2018-07-15 17:10:52 -0700
commit23327597e7a57dc8bddb3f7311e56750b0116114 (patch)
tree26ca95712f267616baa3d8da49a7e60700185968
parent7e320595320855beb97a5959d67bd12f2afca4d1 (diff)
downloadrust-23327597e7a57dc8bddb3f7311e56750b0116114.tar.gz
rust-23327597e7a57dc8bddb3f7311e56750b0116114.zip
Move some `compile-fail` tests to `ui`
-rw-r--r--src/test/ui/issue-10176.rs (renamed from src/test/compile-fail/issue-10176.rs)0
-rw-r--r--src/test/ui/issue-10176.stderr14
-rw-r--r--src/test/ui/issue-10200.rs (renamed from src/test/compile-fail/issue-10200.rs)0
-rw-r--r--src/test/ui/issue-10200.stderr9
-rw-r--r--src/test/ui/issue-10291.nll.stderr14
-rw-r--r--src/test/ui/issue-10291.rs (renamed from src/test/compile-fail/issue-10291.rs)0
-rw-r--r--src/test/ui/issue-10291.stderr23
-rw-r--r--src/test/ui/issue-10398.nll.stderr13
-rw-r--r--src/test/ui/issue-10398.rs (renamed from src/test/compile-fail/issue-10398.rs)0
-rw-r--r--src/test/ui/issue-10398.stderr13
-rw-r--r--src/test/ui/issue-10401.rs (renamed from src/test/compile-fail/issue-10401.rs)0
-rw-r--r--src/test/ui/issue-10401.stderr16
-rw-r--r--src/test/ui/issue-10412.rs (renamed from src/test/compile-fail/issue-10412.rs)0
-rw-r--r--src/test/ui/issue-10412.stderr51
-rw-r--r--src/test/ui/issue-10465.rs (renamed from src/test/compile-fail/issue-10465.rs)0
-rw-r--r--src/test/ui/issue-10465.stderr13
-rw-r--r--src/test/ui/issue-10536.rs (renamed from src/test/compile-fail/issue-10536.rs)2
-rw-r--r--src/test/ui/issue-10536.stderr14
-rw-r--r--src/test/ui/issue-10545.rs (renamed from src/test/compile-fail/issue-10545.rs)0
-rw-r--r--src/test/ui/issue-10545.stderr9
-rw-r--r--src/test/ui/issue-10656.rs (renamed from src/test/compile-fail/issue-10656.rs)3
-rw-r--r--src/test/ui/issue-10656.stderr15
-rw-r--r--src/test/ui/issue-10755.rs (renamed from src/test/compile-fail/issue-10755.rs)0
-rw-r--r--src/test/ui/issue-10755.stderr6
-rw-r--r--src/test/ui/issue-10764.rs (renamed from src/test/compile-fail/issue-10764.rs)0
-rw-r--r--src/test/ui/issue-10764.stderr12
-rw-r--r--src/test/ui/issue-10877.rs (renamed from src/test/compile-fail/issue-10877.rs)0
-rw-r--r--src/test/ui/issue-10877.stderr27
-rw-r--r--src/test/ui/issue-10991.rs (renamed from src/test/compile-fail/issue-10991.rs)0
-rw-r--r--src/test/ui/issue-10991.stderr11
-rw-r--r--src/test/ui/issue-11154.rs (renamed from src/test/compile-fail/issue-11154.rs)0
-rw-r--r--src/test/ui/issue-11154.stderr6
-rw-r--r--src/test/ui/issue-11192.nll.stderr18
-rw-r--r--src/test/ui/issue-11192.rs (renamed from src/test/compile-fail/issue-11192.rs)0
-rw-r--r--src/test/ui/issue-11192.stderr18
-rw-r--r--src/test/ui/issue-11374.rs (renamed from src/test/compile-fail/issue-11374.rs)0
-rw-r--r--src/test/ui/issue-11374.stderr15
-rw-r--r--src/test/ui/issue-11493.ast.stderr16
-rw-r--r--src/test/ui/issue-11493.mir.stderr16
-rw-r--r--src/test/ui/issue-11493.rs (renamed from src/test/compile-fail/issue-11493.rs)8
-rw-r--r--src/test/ui/issue-11515.rs (renamed from src/test/compile-fail/issue-11515.rs)0
-rw-r--r--src/test/ui/issue-11515.stderr12
-rw-r--r--src/test/ui/issue-11681.rs (renamed from src/test/compile-fail/issue-11681.rs)0
-rw-r--r--src/test/ui/issue-11681.stderr18
-rw-r--r--src/test/ui/issue-11692-1.rs (renamed from src/test/compile-fail/issue-11692-1.rs)0
-rw-r--r--src/test/ui/issue-11692-1.stderr8
-rw-r--r--src/test/ui/issue-11692-2.rs (renamed from src/test/compile-fail/issue-11692-2.rs)0
-rw-r--r--src/test/ui/issue-11692-2.stderr8
-rw-r--r--src/test/ui/issue-11740.rs (renamed from src/test/compile-fail/issue-11740.rs)0
-rw-r--r--src/test/ui/issue-11740.stderr11
-rw-r--r--src/test/ui/issue-11771.rs (renamed from src/test/compile-fail/issue-11771.rs)0
-rw-r--r--src/test/ui/issue-11771.stderr19
-rw-r--r--src/test/ui/issue-11844.rs (renamed from src/test/compile-fail/issue-11844.rs)0
-rw-r--r--src/test/ui/issue-11844.stderr12
-rw-r--r--src/test/ui/issue-11873.nll.stderr14
-rw-r--r--src/test/ui/issue-11873.rs (renamed from src/test/compile-fail/issue-11873.rs)0
-rw-r--r--src/test/ui/issue-11873.stderr11
-rw-r--r--src/test/ui/issue-12028.rs (renamed from src/test/compile-fail/issue-12028.rs)0
-rw-r--r--src/test/ui/issue-12028.stderr9
-rw-r--r--src/test/ui/issue-12041.nll.stderr11
-rw-r--r--src/test/ui/issue-12041.rs (renamed from src/test/compile-fail/issue-12041.rs)0
-rw-r--r--src/test/ui/issue-12041.stderr11
-rw-r--r--src/test/ui/issue-12116.rs (renamed from src/test/compile-fail/issue-12116.rs)0
-rw-r--r--src/test/ui/issue-12116.stderr14
-rw-r--r--src/test/ui/issue-12127.rs (renamed from src/test/compile-fail/issue-12127.rs)0
-rw-r--r--src/test/ui/issue-12127.stderr13
-rw-r--r--src/test/ui/issue-12369.rs (renamed from src/test/compile-fail/issue-12369.rs)0
-rw-r--r--src/test/ui/issue-12369.stderr14
-rw-r--r--src/test/ui/issue-12470.nll.stderr18
-rw-r--r--src/test/ui/issue-12470.rs (renamed from src/test/compile-fail/issue-12470.rs)0
-rw-r--r--src/test/ui/issue-12470.stderr18
-rw-r--r--src/test/ui/issue-12552.rs (renamed from src/test/compile-fail/issue-12552.rs)0
-rw-r--r--src/test/ui/issue-12552.stderr21
-rw-r--r--src/test/ui/issue-12567.nll.stderr31
-rw-r--r--src/test/ui/issue-12567.rs (renamed from src/test/compile-fail/issue-12567.rs)0
-rw-r--r--src/test/ui/issue-12567.stderr39
-rw-r--r--src/test/ui/issue-12796.rs (renamed from src/test/compile-fail/issue-12796.rs)0
-rw-r--r--src/test/ui/issue-12796.stderr11
-rw-r--r--src/test/ui/issue-12863.rs (renamed from src/test/compile-fail/issue-12863.rs)0
-rw-r--r--src/test/ui/issue-12863.stderr9
-rw-r--r--src/test/ui/issue-12997-1.rs (renamed from src/test/compile-fail/issue-12997-1.rs)0
-rw-r--r--src/test/ui/issue-12997-1.stderr14
-rw-r--r--src/test/ui/issue-12997-2.rs (renamed from src/test/compile-fail/issue-12997-2.rs)0
-rw-r--r--src/test/ui/issue-12997-2.stderr12
-rw-r--r--src/test/ui/issue-13033.rs (renamed from src/test/compile-fail/issue-13033.rs)0
-rw-r--r--src/test/ui/issue-13033.stderr15
-rw-r--r--src/test/ui/issue-13352.rs (renamed from src/test/compile-fail/issue-13352.rs)0
-rw-r--r--src/test/ui/issue-13352.stderr11
-rw-r--r--src/test/ui/issue-13359.rs (renamed from src/test/compile-fail/issue-13359.rs)0
-rw-r--r--src/test/ui/issue-13359.stderr15
-rw-r--r--src/test/ui/issue-13404.rs (renamed from src/test/compile-fail/issue-13404.rs)0
-rw-r--r--src/test/ui/issue-13404.stderr9
-rw-r--r--src/test/ui/issue-13407.rs (renamed from src/test/compile-fail/issue-13407.rs)0
-rw-r--r--src/test/ui/issue-13407.stderr25
-rw-r--r--src/test/ui/issue-13446.rs (renamed from src/test/compile-fail/issue-13446.rs)0
-rw-r--r--src/test/ui/issue-13446.stderr13
-rw-r--r--src/test/ui/issue-13466.rs (renamed from src/test/compile-fail/issue-13466.rs)0
-rw-r--r--src/test/ui/issue-13466.stderr21
-rw-r--r--src/test/ui/issue-13482-2.rs (renamed from src/test/compile-fail/issue-13482-2.rs)0
-rw-r--r--src/test/ui/issue-13482-2.stderr9
-rw-r--r--src/test/ui/issue-13482.rs (renamed from src/test/compile-fail/issue-13482.rs)0
-rw-r--r--src/test/ui/issue-13482.stderr9
-rw-r--r--src/test/ui/issue-13497-2.rs (renamed from src/test/compile-fail/issue-13497-2.rs)0
-rw-r--r--src/test/ui/issue-13497-2.stderr18
-rw-r--r--src/test/ui/issue-13497.rs (renamed from src/test/compile-fail/issue-13497.rs)0
-rw-r--r--src/test/ui/issue-13497.stderr12
-rw-r--r--src/test/ui/issue-1362.rs (renamed from src/test/compile-fail/issue-1362.rs)0
-rw-r--r--src/test/ui/issue-1362.stderr9
-rw-r--r--src/test/ui/issue-13641.rs (renamed from src/test/compile-fail/issue-13641.rs)0
-rw-r--r--src/test/ui/issue-13641.stderr15
-rw-r--r--src/test/ui/issue-13727.rs (renamed from src/test/compile-fail/issue-13727.rs)0
-rw-r--r--src/test/ui/issue-13727.stderr14
-rw-r--r--src/test/ui/issue-13847.rs (renamed from src/test/compile-fail/issue-13847.rs)0
-rw-r--r--src/test/ui/issue-13847.stderr9
-rw-r--r--src/test/ui/issue-13853-2.rs (renamed from src/test/compile-fail/issue-13853-2.rs)0
-rw-r--r--src/test/ui/issue-13853-2.stderr11
-rw-r--r--src/test/ui/issue-13853-5.rs (renamed from src/test/compile-fail/issue-13853-5.rs)0
-rw-r--r--src/test/ui/issue-13853-5.stderr9
-rw-r--r--src/test/ui/issue-13853.rs (renamed from src/test/compile-fail/issue-13853.rs)0
-rw-r--r--src/test/ui/issue-13853.stderr34
-rw-r--r--src/test/ui/issue-14091-2.rs (renamed from src/test/compile-fail/issue-14091-2.rs)3
-rw-r--r--src/test/ui/issue-14091-2.stderr11
-rw-r--r--src/test/ui/issue-14091.rs (renamed from src/test/compile-fail/issue-14091.rs)7
-rw-r--r--src/test/ui/issue-14091.stderr12
-rw-r--r--src/test/ui/issue-14221.rs (renamed from src/test/compile-fail/issue-14221.rs)0
-rw-r--r--src/test/ui/issue-14221.stderr30
-rw-r--r--src/test/ui/issue-14227.rs (renamed from src/test/compile-fail/issue-14227.rs)0
-rw-r--r--src/test/ui/issue-14227.stderr9
-rw-r--r--src/test/ui/issue-14285.nll.stderr17
-rw-r--r--src/test/ui/issue-14285.rs (renamed from src/test/compile-fail/issue-14285.rs)0
-rw-r--r--src/test/ui/issue-14285.stderr11
-rw-r--r--src/test/ui/issue-14309.rs (renamed from src/test/compile-fail/issue-14309.rs)0
-rw-r--r--src/test/ui/issue-14309.stderr82
-rw-r--r--src/test/ui/issue-14366.rs (renamed from src/test/compile-fail/issue-14366.rs)0
-rw-r--r--src/test/ui/issue-14366.stderr13
-rw-r--r--src/test/ui/issue-1448-2.rs (renamed from src/test/compile-fail/issue-1448-2.rs)0
-rw-r--r--src/test/ui/issue-1448-2.stderr9
-rw-r--r--src/test/ui/issue-14541.rs (renamed from src/test/compile-fail/issue-14541.rs)0
-rw-r--r--src/test/ui/issue-14541.stderr12
-rw-r--r--src/test/ui/issue-14721.rs (renamed from src/test/compile-fail/issue-14721.rs)0
-rw-r--r--src/test/ui/issue-14721.stderr9
-rw-r--r--src/test/ui/issue-1476.rs (renamed from src/test/compile-fail/issue-1476.rs)0
-rw-r--r--src/test/ui/issue-1476.stderr9
-rw-r--r--src/test/ui/issue-14772.rs (renamed from src/test/compile-fail/issue-14772.rs)0
-rw-r--r--src/test/ui/issue-14772.stderr8
-rw-r--r--src/test/ui/issue-14845.rs (renamed from src/test/compile-fail/issue-14845.rs)0
-rw-r--r--src/test/ui/issue-14845.stderr15
-rw-r--r--src/test/ui/issue-14853.rs (renamed from src/test/compile-fail/issue-14853.rs)0
-rw-r--r--src/test/ui/issue-14853.stderr12
-rw-r--r--src/test/ui/issue-14915.rs (renamed from src/test/compile-fail/issue-14915.rs)0
-rw-r--r--src/test/ui/issue-14915.stderr11
-rw-r--r--src/test/ui/issue-15034.nll.stderr17
-rw-r--r--src/test/ui/issue-15034.rs (renamed from src/test/compile-fail/issue-15034.rs)0
-rw-r--r--src/test/ui/issue-15034.stderr11
-rw-r--r--src/test/ui/issue-15094.rs (renamed from src/test/compile-fail/issue-15094.rs)0
-rw-r--r--src/test/ui/issue-15094.stderr12
-rw-r--r--src/test/ui/issue-15129.rs (renamed from src/test/compile-fail/issue-15129.rs)0
-rw-r--r--src/test/ui/issue-15129.stderr9
-rw-r--r--src/test/ui/issue-15167.rs (renamed from src/test/compile-fail/issue-15167.rs)0
-rw-r--r--src/test/ui/issue-15167.stderr39
-rw-r--r--src/test/ui/issue-15207.rs (renamed from src/test/compile-fail/issue-15207.rs)0
-rw-r--r--src/test/ui/issue-15207.stderr9
-rw-r--r--src/test/ui/issue-15381.rs (renamed from src/test/compile-fail/issue-15381.rs)0
-rw-r--r--src/test/ui/issue-15381.stderr9
-rw-r--r--src/test/ui/issue-15756.rs (renamed from src/test/compile-fail/issue-15756.rs)0
-rw-r--r--src/test/ui/issue-15756.stderr13
-rw-r--r--src/test/ui/issue-15783.rs (renamed from src/test/compile-fail/issue-15783.rs)0
-rw-r--r--src/test/ui/issue-15783.stderr12
-rw-r--r--src/test/ui/issue-15896.rs (renamed from src/test/compile-fail/issue-15896.rs)0
-rw-r--r--src/test/ui/issue-15896.stderr12
-rw-r--r--src/test/ui/issue-15919.rs (renamed from src/test/compile-fail/issue-15919.rs)0
-rw-r--r--src/test/ui/issue-15919.stderr4
-rw-r--r--src/test/ui/issue-15965.rs (renamed from src/test/compile-fail/issue-15965.rs)0
-rw-r--r--src/test/ui/issue-15965.stderr13
-rw-r--r--src/test/ui/issue-16048.rs (renamed from src/test/compile-fail/issue-16048.rs)0
-rw-r--r--src/test/ui/issue-16048.stderr12
-rw-r--r--src/test/ui/issue-16098.rs (renamed from src/test/compile-fail/issue-16098.rs)0
-rw-r--r--src/test/ui/issue-16098.stderr13
-rw-r--r--src/test/ui/issue-16149.rs (renamed from src/test/compile-fail/issue-16149.rs)0
-rw-r--r--src/test/ui/issue-16149.stderr12
-rw-r--r--src/test/ui/issue-16250.rs (renamed from src/test/compile-fail/issue-16250.rs)0
-rw-r--r--src/test/ui/issue-16250.stderr21
-rw-r--r--src/test/ui/issue-16338.rs (renamed from src/test/compile-fail/issue-16338.rs)0
-rw-r--r--src/test/ui/issue-16338.stderr12
-rw-r--r--src/test/ui/issue-16401.rs (renamed from src/test/compile-fail/issue-16401.rs)0
-rw-r--r--src/test/ui/issue-16401.stderr12
-rw-r--r--src/test/ui/issue-16538.rs (renamed from src/test/compile-fail/issue-16538.rs)0
-rw-r--r--src/test/ui/issue-16538.stderr19
-rw-r--r--src/test/ui/issue-16562.rs (renamed from src/test/compile-fail/issue-16562.rs)0
-rw-r--r--src/test/ui/issue-16562.stderr9
-rw-r--r--src/test/ui/issue-16683.nll.stderr22
-rw-r--r--src/test/ui/issue-16683.rs (renamed from src/test/compile-fail/issue-16683.rs)0
-rw-r--r--src/test/ui/issue-16683.stderr30
-rw-r--r--src/test/ui/issue-16922.nll.stderr17
-rw-r--r--src/test/ui/issue-16922.rs (renamed from src/test/compile-fail/issue-16922.rs)0
-rw-r--r--src/test/ui/issue-16922.stderr11
-rw-r--r--src/test/ui/issue-16939.rs (renamed from src/test/compile-fail/issue-16939.rs)0
-rw-r--r--src/test/ui/issue-16939.stderr9
-rw-r--r--src/test/ui/issue-16966.rs (renamed from src/test/compile-fail/issue-16966.rs)0
-rw-r--r--src/test/ui/issue-16966.stderr13
-rw-r--r--src/test/ui/issue-1697.rs (renamed from src/test/compile-fail/issue-1697.rs)0
-rw-r--r--src/test/ui/issue-1697.stderr9
-rw-r--r--src/test/ui/issue-16994.rs (renamed from src/test/compile-fail/issue-16994.rs)0
-rw-r--r--src/test/ui/issue-16994.stderr10
-rw-r--r--src/test/ui/issue-17001.rs (renamed from src/test/compile-fail/issue-17001.rs)0
-rw-r--r--src/test/ui/issue-17001.stderr9
-rw-r--r--src/test/ui/issue-17025.rs (renamed from src/test/compile-fail/issue-17025.rs)0
-rw-r--r--src/test/ui/issue-17033.rs (renamed from src/test/compile-fail/issue-17033.rs)0
-rw-r--r--src/test/ui/issue-17033.stderr15
-rw-r--r--src/test/ui/issue-17252.rs (renamed from src/test/compile-fail/issue-17252.rs)0
-rw-r--r--src/test/ui/issue-17252.stderr16
-rw-r--r--src/test/ui/issue-17337.rs (renamed from src/test/compile-fail/issue-17337.rs)0
-rw-r--r--src/test/ui/issue-17337.stderr14
-rw-r--r--src/test/ui/issue-17373.rs (renamed from src/test/compile-fail/issue-17373.rs)0
-rw-r--r--src/test/ui/issue-17373.stderr9
-rw-r--r--src/test/ui/issue-17385.nll.stderr77
-rw-r--r--src/test/ui/issue-17385.rs (renamed from src/test/compile-fail/issue-17385.rs)0
-rw-r--r--src/test/ui/issue-17385.stderr23
-rw-r--r--src/test/ui/issue-17405.rs (renamed from src/test/compile-fail/issue-17405.rs)0
-rw-r--r--src/test/ui/issue-17405.stderr9
-rw-r--r--src/test/ui/issue-17431-1.rs (renamed from src/test/compile-fail/issue-17431-1.rs)0
-rw-r--r--src/test/ui/issue-17431-1.stderr13
-rw-r--r--src/test/ui/issue-17431-2.rs (renamed from src/test/compile-fail/issue-17431-2.rs)0
-rw-r--r--src/test/ui/issue-17431-2.stderr23
-rw-r--r--src/test/ui/issue-17431-3.rs (renamed from src/test/compile-fail/issue-17431-3.rs)0
-rw-r--r--src/test/ui/issue-17431-3.stderr13
-rw-r--r--src/test/ui/issue-17431-4.rs (renamed from src/test/compile-fail/issue-17431-4.rs)0
-rw-r--r--src/test/ui/issue-17431-4.stderr13
-rw-r--r--src/test/ui/issue-17431-5.rs (renamed from src/test/compile-fail/issue-17431-5.rs)0
-rw-r--r--src/test/ui/issue-17431-5.stderr13
-rw-r--r--src/test/ui/issue-17431-6.rs (renamed from src/test/compile-fail/issue-17431-6.rs)0
-rw-r--r--src/test/ui/issue-17431-6.stderr13
-rw-r--r--src/test/ui/issue-17431-7.rs (renamed from src/test/compile-fail/issue-17431-7.rs)0
-rw-r--r--src/test/ui/issue-17431-7.stderr13
-rw-r--r--src/test/ui/issue-17444.rs (renamed from src/test/compile-fail/issue-17444.rs)0
-rw-r--r--src/test/ui/issue-17444.stderr9
-rw-r--r--src/test/ui/issue-17458.rs (renamed from src/test/compile-fail/issue-17458.rs)0
-rw-r--r--src/test/ui/issue-17458.stderr9
-rw-r--r--src/test/ui/issue-17545.nll.stderr17
-rw-r--r--src/test/ui/issue-17545.rs (renamed from src/test/compile-fail/issue-17545.rs)0
-rw-r--r--src/test/ui/issue-17545.stderr18
-rw-r--r--src/test/ui/issue-17546.rs (renamed from src/test/compile-fail/issue-17546.rs)0
-rw-r--r--src/test/ui/issue-17546.stderr55
-rw-r--r--src/test/ui/issue-17551.rs (renamed from src/test/compile-fail/issue-17551.rs)0
-rw-r--r--src/test/ui/issue-17551.stderr11
-rw-r--r--src/test/ui/issue-17651.rs (renamed from src/test/compile-fail/issue-17651.rs)0
-rw-r--r--src/test/ui/issue-17651.stderr13
-rw-r--r--src/test/ui/issue-17718-const-bad-values.rs (renamed from src/test/compile-fail/issue-17718-const-bad-values.rs)0
-rw-r--r--src/test/ui/issue-17718-const-bad-values.stderr28
-rw-r--r--src/test/ui/issue-17718-const-borrow.rs (renamed from src/test/compile-fail/issue-17718-const-borrow.rs)0
-rw-r--r--src/test/ui/issue-17718-const-borrow.stderr21
-rw-r--r--src/test/ui/issue-17718-const-naming.rs (renamed from src/test/compile-fail/issue-17718-const-naming.rs)0
-rw-r--r--src/test/ui/issue-17718-const-naming.stderr28
-rw-r--r--src/test/ui/issue-17718-constants-not-static.rs (renamed from src/test/compile-fail/issue-17718-constants-not-static.rs)0
-rw-r--r--src/test/ui/issue-17718-constants-not-static.stderr13
-rw-r--r--src/test/ui/issue-17718-patterns.rs (renamed from src/test/compile-fail/issue-17718-patterns.rs)0
-rw-r--r--src/test/ui/issue-17718-patterns.stderr21
-rw-r--r--src/test/ui/issue-17718-references.rs (renamed from src/test/compile-fail/issue-17718-references.rs)0
-rw-r--r--src/test/ui/issue-17718-references.stderr21
-rw-r--r--src/test/ui/issue-17718-static-move.rs (renamed from src/test/compile-fail/issue-17718-static-move.rs)0
-rw-r--r--src/test/ui/issue-17718-static-move.stderr12
-rw-r--r--src/test/ui/issue-17718-static-sync.rs (renamed from src/test/compile-fail/issue-17718-static-sync.rs)0
-rw-r--r--src/test/ui/issue-17718-static-sync.stderr12
-rw-r--r--src/test/ui/issue-17728.nll.stderr25
-rw-r--r--src/test/ui/issue-17728.rs (renamed from src/test/compile-fail/issue-17728.rs)0
-rw-r--r--src/test/ui/issue-17728.stderr31
-rw-r--r--src/test/ui/issue-17740.rs (renamed from src/test/compile-fail/issue-17740.rs)0
-rw-r--r--src/test/ui/issue-17740.stderr53
-rw-r--r--src/test/ui/issue-17758.nll.stderr22
-rw-r--r--src/test/ui/issue-17758.rs (renamed from src/test/compile-fail/issue-17758.rs)0
-rw-r--r--src/test/ui/issue-17758.stderr31
-rw-r--r--src/test/ui/issue-17800.rs (renamed from src/test/compile-fail/issue-17800.rs)0
-rw-r--r--src/test/ui/issue-17800.stderr18
-rw-r--r--src/test/ui/issue-17904-2.rs (renamed from src/test/compile-fail/issue-17904-2.rs)0
-rw-r--r--src/test/ui/issue-17904-2.stderr11
-rw-r--r--src/test/ui/issue-17905.rs (renamed from src/test/compile-fail/issue-17905.rs)0
-rw-r--r--src/test/ui/issue-17905.stderr9
-rw-r--r--src/test/ui/issue-17913.rs (renamed from src/test/compile-fail/issue-17913.rs)0
-rw-r--r--src/test/ui/issue-17913.stderr4
-rw-r--r--src/test/ui/issue-17933.rs (renamed from src/test/compile-fail/issue-17933.rs)0
-rw-r--r--src/test/ui/issue-17933.stderr9
-rw-r--r--src/test/ui/issue-17954.ast.nll.stderr14
-rw-r--r--src/test/ui/issue-17954.ast.stderr14
-rw-r--r--src/test/ui/issue-17954.mir.stderr14
-rw-r--r--src/test/ui/issue-17954.rs (renamed from src/test/compile-fail/issue-17954.rs)0
-rw-r--r--src/test/ui/issue-17959.rs (renamed from src/test/compile-fail/issue-17959.rs)0
-rw-r--r--src/test/ui/issue-17959.stderr23
-rw-r--r--src/test/ui/issue-17994.rs (renamed from src/test/compile-fail/issue-17994.rs)0
-rw-r--r--src/test/ui/issue-17994.stderr9
-rw-r--r--src/test/ui/issue-17999.rs (renamed from src/test/compile-fail/issue-17999.rs)0
-rw-r--r--src/test/ui/issue-17999.stderr20
-rw-r--r--src/test/ui/issue-18058.rs (renamed from src/test/compile-fail/issue-18058.rs)0
-rw-r--r--src/test/ui/issue-18058.stderr9
-rw-r--r--src/test/ui/issue-18107.rs (renamed from src/test/compile-fail/issue-18107.rs)0
-rw-r--r--src/test/ui/issue-18107.stderr13
-rw-r--r--src/test/ui/issue-18118-2.rs (renamed from src/test/compile-fail/issue-18118-2.rs)0
-rw-r--r--src/test/ui/issue-18118-2.stderr9
-rw-r--r--src/test/ui/issue-18118.nll.stderr67
-rw-r--r--src/test/ui/issue-18118.rs (renamed from src/test/compile-fail/issue-18118.rs)0
-rw-r--r--src/test/ui/issue-18118.stderr67
-rw-r--r--src/test/ui/issue-18119.rs (renamed from src/test/compile-fail/issue-18119.rs)0
-rw-r--r--src/test/ui/issue-18119.stderr21
-rw-r--r--src/test/ui/issue-18159.rs (renamed from src/test/compile-fail/issue-18159.rs)0
-rw-r--r--src/test/ui/issue-18159.stderr12
-rw-r--r--src/test/ui/issue-18294.rs (renamed from src/test/compile-fail/issue-18294.rs)0
-rw-r--r--src/test/ui/issue-18294.stderr9
-rw-r--r--src/test/ui/issue-18389.rs (renamed from src/test/compile-fail/issue-18389.rs)0
-rw-r--r--src/test/ui/issue-18389.stderr15
-rw-r--r--src/test/ui/issue-18400.rs (renamed from src/test/compile-fail/issue-18400.rs)0
-rw-r--r--src/test/ui/issue-18400.stderr75
-rw-r--r--src/test/ui/issue-18423.rs (renamed from src/test/compile-fail/issue-18423.rs)0
-rw-r--r--src/test/ui/issue-18423.stderr9
-rw-r--r--src/test/ui/issue-18446.rs (renamed from src/test/compile-fail/issue-18446.rs)0
-rw-r--r--src/test/ui/issue-18446.stderr21
-rw-r--r--src/test/ui/issue-18532.rs (renamed from src/test/compile-fail/issue-18532.rs)0
-rw-r--r--src/test/ui/issue-18532.stderr9
-rw-r--r--src/test/ui/issue-18566.nll.stderr13
-rw-r--r--src/test/ui/issue-18566.rs (renamed from src/test/compile-fail/issue-18566.rs)0
-rw-r--r--src/test/ui/issue-18566.stderr12
-rw-r--r--src/test/ui/issue-18611.rs (renamed from src/test/compile-fail/issue-18611.rs)0
-rw-r--r--src/test/ui/issue-18611.stderr11
-rw-r--r--src/test/ui/issue-1871.rs (renamed from src/test/compile-fail/issue-1871.rs)0
-rw-r--r--src/test/ui/issue-1871.stderr9
-rw-r--r--src/test/ui/issue-18783.nll.stderr33
-rw-r--r--src/test/ui/issue-18783.rs (renamed from src/test/compile-fail/issue-18783.rs)0
-rw-r--r--src/test/ui/issue-18783.stderr33
-rw-r--r--src/test/ui/issue-18919.rs (renamed from src/test/compile-fail/issue-18919.rs)0
-rw-r--r--src/test/ui/issue-18919.stderr15
-rw-r--r--src/test/ui/issue-18937.rs (renamed from src/test/compile-fail/issue-18937.rs)0
-rw-r--r--src/test/ui/issue-18937.stderr18
-rw-r--r--src/test/ui/issue-18959.rs (renamed from src/test/compile-fail/issue-18959.rs)0
-rw-r--r--src/test/ui/issue-18959.stderr11
-rw-r--r--src/test/ui/issue-1900.rs (renamed from src/test/compile-fail/issue-1900.rs)2
-rw-r--r--src/test/ui/issue-1900.stderr9
-rw-r--r--src/test/ui/issue-19086.rs (renamed from src/test/compile-fail/issue-19086.rs)0
-rw-r--r--src/test/ui/issue-19086.stderr9
-rw-r--r--src/test/ui/issue-19244-1.rs (renamed from src/test/compile-fail/issue-19244-1.rs)0
-rw-r--r--src/test/ui/issue-19244-1.stderr9
-rw-r--r--src/test/ui/issue-19244-2.rs (renamed from src/test/compile-fail/issue-19244-2.rs)0
-rw-r--r--src/test/ui/issue-19244-2.stderr11
-rw-r--r--src/test/ui/issue-19380.rs (renamed from src/test/compile-fail/issue-19380.rs)0
-rw-r--r--src/test/ui/issue-19380.stderr11
-rw-r--r--src/test/ui/issue-19482.rs (renamed from src/test/compile-fail/issue-19482.rs)0
-rw-r--r--src/test/ui/issue-19482.stderr9
-rw-r--r--src/test/ui/issue-19521.rs (renamed from src/test/compile-fail/issue-19521.rs)0
-rw-r--r--src/test/ui/issue-19521.stderr9
-rw-r--r--src/test/ui/issue-19538.rs (renamed from src/test/compile-fail/issue-19538.rs)0
-rw-r--r--src/test/ui/issue-19538.stderr20
-rw-r--r--src/test/ui/issue-19601.rs (renamed from src/test/compile-fail/issue-19601.rs)0
-rw-r--r--src/test/ui/issue-19601.stderr9
-rw-r--r--src/test/ui/issue-19660.rs (renamed from src/test/compile-fail/issue-19660.rs)0
-rw-r--r--src/test/ui/issue-19660.stderr4
-rw-r--r--src/test/ui/issue-19692.rs (renamed from src/test/compile-fail/issue-19692.rs)0
-rw-r--r--src/test/ui/issue-19692.stderr12
-rw-r--r--src/test/ui/issue-19734.rs (renamed from src/test/compile-fail/issue-19734.rs)0
-rw-r--r--src/test/ui/issue-19734.stderr8
-rw-r--r--src/test/ui/issue-19883.rs (renamed from src/test/compile-fail/issue-19883.rs)0
-rw-r--r--src/test/ui/issue-19883.stderr9
-rw-r--r--src/test/ui/issue-19982.rs (renamed from src/test/compile-fail/issue-19982.rs)0
-rw-r--r--src/test/ui/issue-19982.stderr9
-rw-r--r--src/test/ui/issue-19991.rs (renamed from src/test/compile-fail/issue-19991.rs)0
-rw-r--r--src/test/ui/issue-19991.stderr17
-rw-r--r--src/test/ui/issue-20005.rs (renamed from src/test/compile-fail/issue-20005.rs)0
-rw-r--r--src/test/ui/issue-20005.stderr22
-rw-r--r--src/test/ui/issue-20162.rs (renamed from src/test/compile-fail/issue-20162.rs)0
-rw-r--r--src/test/ui/issue-20162.stderr9
-rw-r--r--src/test/ui/issue-20225.rs (renamed from src/test/compile-fail/issue-20225.rs)0
-rw-r--r--src/test/ui/issue-20225.stderr30
-rw-r--r--src/test/ui/issue-20261.rs (renamed from src/test/compile-fail/issue-20261.rs)0
-rw-r--r--src/test/ui/issue-20261.stderr13
-rw-r--r--src/test/ui/issue-20313.rs (renamed from src/test/compile-fail/issue-20313.rs)0
-rw-r--r--src/test/ui/issue-20313.stderr11
-rw-r--r--src/test/ui/issue-20413.rs (renamed from src/test/compile-fail/issue-20413.rs)0
-rw-r--r--src/test/ui/issue-20413.stderr94
-rw-r--r--src/test/ui/issue-20433.rs (renamed from src/test/compile-fail/issue-20433.rs)0
-rw-r--r--src/test/ui/issue-20433.stderr13
-rw-r--r--src/test/ui/issue-20605.rs (renamed from src/test/compile-fail/issue-20605.rs)0
-rw-r--r--src/test/ui/issue-20605.stderr13
-rw-r--r--src/test/ui/issue-20616-1.rs (renamed from src/test/compile-fail/issue-20616-1.rs)0
-rw-r--r--src/test/ui/issue-20616-1.stderr8
-rw-r--r--src/test/ui/issue-20616-2.rs (renamed from src/test/compile-fail/issue-20616-2.rs)0
-rw-r--r--src/test/ui/issue-20616-2.stderr8
-rw-r--r--src/test/ui/issue-20616-3.rs (renamed from src/test/compile-fail/issue-20616-3.rs)0
-rw-r--r--src/test/ui/issue-20616-3.stderr8
-rw-r--r--src/test/ui/issue-20616-4.rs (renamed from src/test/compile-fail/issue-20616-4.rs)0
-rw-r--r--src/test/ui/issue-20616-4.stderr8
-rw-r--r--src/test/ui/issue-20616-5.rs (renamed from src/test/compile-fail/issue-20616-5.rs)0
-rw-r--r--src/test/ui/issue-20616-5.stderr8
-rw-r--r--src/test/ui/issue-20616-6.rs (renamed from src/test/compile-fail/issue-20616-6.rs)0
-rw-r--r--src/test/ui/issue-20616-6.stderr8
-rw-r--r--src/test/ui/issue-20616-7.rs (renamed from src/test/compile-fail/issue-20616-7.rs)0
-rw-r--r--src/test/ui/issue-20616-7.stderr8
-rw-r--r--src/test/ui/issue-20616-8.rs (renamed from src/test/compile-fail/issue-20616-8.rs)0
-rw-r--r--src/test/ui/issue-20616-8.stderr8
-rw-r--r--src/test/ui/issue-20616-9.rs (renamed from src/test/compile-fail/issue-20616-9.rs)0
-rw-r--r--src/test/ui/issue-20616-9.stderr8
-rw-r--r--src/test/ui/issue-20714.rs (renamed from src/test/compile-fail/issue-20714.rs)0
-rw-r--r--src/test/ui/issue-20714.stderr12
-rw-r--r--src/test/ui/issue-20772.rs (renamed from src/test/compile-fail/issue-20772.rs)0
-rw-r--r--src/test/ui/issue-20772.stderr21
-rw-r--r--src/test/ui/issue-20801.nll.stderr8
-rw-r--r--src/test/ui/issue-20801.rs (renamed from src/test/compile-fail/issue-20801.rs)0
-rw-r--r--src/test/ui/issue-20801.stderr27
-rw-r--r--src/test/ui/issue-20825.rs (renamed from src/test/compile-fail/issue-20825.rs)0
-rw-r--r--src/test/ui/issue-20825.stderr11
-rw-r--r--src/test/ui/issue-20831-debruijn.rs (renamed from src/test/compile-fail/issue-20831-debruijn.rs)0
-rw-r--r--src/test/ui/issue-20831-debruijn.stderr35
-rw-r--r--src/test/ui/issue-20939.rs (renamed from src/test/compile-fail/issue-20939.rs)0
-rw-r--r--src/test/ui/issue-20939.stderr9
-rw-r--r--src/test/ui/issue-2111.rs (renamed from src/test/compile-fail/issue-2111.rs)0
-rw-r--r--src/test/ui/issue-2111.stderr9
-rw-r--r--src/test/ui/issue-21160.rs (renamed from src/test/compile-fail/issue-21160.rs)0
-rw-r--r--src/test/ui/issue-21160.stderr11
-rw-r--r--src/test/ui/issue-21174.rs (renamed from src/test/compile-fail/issue-21174.rs)0
-rw-r--r--src/test/ui/issue-21174.stderr12
-rw-r--r--src/test/ui/issue-21177.rs (renamed from src/test/compile-fail/issue-21177.rs)0
-rw-r--r--src/test/ui/issue-21177.stderr23
-rw-r--r--src/test/ui/issue-21332.rs (renamed from src/test/compile-fail/issue-21332.rs)0
-rw-r--r--src/test/ui/issue-21332.stderr12
-rw-r--r--src/test/ui/issue-21356.rs (renamed from src/test/compile-fail/issue-21356.rs)0
-rw-r--r--src/test/ui/issue-21356.stderr10
-rw-r--r--src/test/ui/issue-21449.rs (renamed from src/test/compile-fail/issue-21449.rs)0
-rw-r--r--src/test/ui/issue-21449.stderr9
-rw-r--r--src/test/ui/issue-2149.rs (renamed from src/test/compile-fail/issue-2149.rs)0
-rw-r--r--src/test/ui/issue-2149.stderr22
-rw-r--r--src/test/ui/issue-2150.rs (renamed from src/test/compile-fail/issue-2150.rs)0
-rw-r--r--src/test/ui/issue-2150.stderr14
-rw-r--r--src/test/ui/issue-2151.rs (renamed from src/test/compile-fail/issue-2151.rs)0
-rw-r--r--src/test/ui/issue-2151.stderr13
-rw-r--r--src/test/ui/issue-21554.rs (renamed from src/test/compile-fail/issue-21554.rs)0
-rw-r--r--src/test/ui/issue-21554.stderr9
-rw-r--r--src/test/ui/issue-21701.rs (renamed from src/test/compile-fail/issue-21701.rs)0
-rw-r--r--src/test/ui/issue-21701.stderr20
-rw-r--r--src/test/ui/issue-21763.rs (renamed from src/test/compile-fail/issue-21763.rs)0
-rw-r--r--src/test/ui/issue-21763.stderr20
-rw-r--r--src/test/ui/issue-21837.rs (renamed from src/test/compile-fail/issue-21837.rs)0
-rw-r--r--src/test/ui/issue-21837.stderr16
-rw-r--r--src/test/ui/issue-21946.rs (renamed from src/test/compile-fail/issue-21946.rs)0
-rw-r--r--src/test/ui/issue-21946.stderr9
-rw-r--r--src/test/ui/issue-21974.rs (renamed from src/test/compile-fail/issue-21974.rs)0
-rw-r--r--src/test/ui/issue-21974.stderr21
-rw-r--r--src/test/ui/issue-22034.rs (renamed from src/test/compile-fail/issue-22034.rs)0
-rw-r--r--src/test/ui/issue-22034.stderr11
-rw-r--r--src/test/ui/issue-22037.rs (renamed from src/test/compile-fail/issue-22037.rs)0
-rw-r--r--src/test/ui/issue-22037.stderr9
-rw-r--r--src/test/ui/issue-22289.rs (renamed from src/test/compile-fail/issue-22289.rs)0
-rw-r--r--src/test/ui/issue-22289.stderr11
-rw-r--r--src/test/ui/issue-22312.rs (renamed from src/test/compile-fail/issue-22312.rs)0
-rw-r--r--src/test/ui/issue-22312.stderr11
-rw-r--r--src/test/ui/issue-22384.rs (renamed from src/test/compile-fail/issue-22384.rs)0
-rw-r--r--src/test/ui/issue-22384.stderr9
-rw-r--r--src/test/ui/issue-22434.rs (renamed from src/test/compile-fail/issue-22434.rs)0
-rw-r--r--src/test/ui/issue-22434.stderr9
-rw-r--r--src/test/ui/issue-22468.rs (renamed from src/test/compile-fail/issue-22468.rs)0
-rw-r--r--src/test/ui/issue-22468.stderr11
-rw-r--r--src/test/ui/issue-22599.rs (renamed from src/test/compile-fail/issue-22599.rs)0
-rw-r--r--src/test/ui/issue-22599.stderr14
-rw-r--r--src/test/ui/issue-22603.rs (renamed from src/test/compile-fail/issue-22603.rs)0
-rw-r--r--src/test/ui/issue-22603.stderr10
-rw-r--r--src/test/ui/issue-22673.rs (renamed from src/test/compile-fail/issue-22673.rs)0
-rw-r--r--src/test/ui/issue-22673.stderr11
-rw-r--r--src/test/ui/issue-22684.rs (renamed from src/test/compile-fail/issue-22684.rs)0
-rw-r--r--src/test/ui/issue-22684.stderr12
-rw-r--r--src/test/ui/issue-22706.rs (renamed from src/test/compile-fail/issue-22706.rs)0
-rw-r--r--src/test/ui/issue-22706.stderr9
-rw-r--r--src/test/ui/issue-22789.rs (renamed from src/test/compile-fail/issue-22789.rs)0
-rw-r--r--src/test/ui/issue-22789.stderr11
-rw-r--r--src/test/ui/issue-2281-part1.rs (renamed from src/test/compile-fail/issue-2281-part1.rs)0
-rw-r--r--src/test/ui/issue-2281-part1.stderr9
-rw-r--r--src/test/ui/issue-22874.rs (renamed from src/test/compile-fail/issue-22874.rs)0
-rw-r--r--src/test/ui/issue-22874.stderr13
-rw-r--r--src/test/ui/issue-22933-1.rs (renamed from src/test/compile-fail/issue-22933-1.rs)0
-rw-r--r--src/test/ui/issue-22933-1.stderr8
-rw-r--r--src/test/ui/issue-22933-3.rs (renamed from src/test/compile-fail/issue-22933-3.rs)0
-rw-r--r--src/test/ui/issue-22933-3.stderr9
-rw-r--r--src/test/ui/issue-23024.rs (renamed from src/test/compile-fail/issue-23024.rs)0
-rw-r--r--src/test/ui/issue-23024.stderr24
-rw-r--r--src/test/ui/issue-23046.rs (renamed from src/test/compile-fail/issue-23046.rs)0
-rw-r--r--src/test/ui/issue-23046.stderr9
-rw-r--r--src/test/ui/issue-23073.rs (renamed from src/test/compile-fail/issue-23073.rs)0
-rw-r--r--src/test/ui/issue-23073.stderr11
-rw-r--r--src/test/ui/issue-23080-2.rs (renamed from src/test/compile-fail/issue-23080-2.rs)0
-rw-r--r--src/test/ui/issue-23080-2.stderr18
-rw-r--r--src/test/ui/issue-23080.rs (renamed from src/test/compile-fail/issue-23080.rs)0
-rw-r--r--src/test/ui/issue-23080.stderr14
-rw-r--r--src/test/ui/issue-23122-1.rs (renamed from src/test/compile-fail/issue-23122-1.rs)0
-rw-r--r--src/test/ui/issue-23122-1.stderr9
-rw-r--r--src/test/ui/issue-23122-2.rs (renamed from src/test/compile-fail/issue-23122-2.rs)0
-rw-r--r--src/test/ui/issue-23122-2.stderr11
-rw-r--r--src/test/ui/issue-23253.rs (renamed from src/test/compile-fail/issue-23253.rs)0
-rw-r--r--src/test/ui/issue-23253.stderr9
-rw-r--r--src/test/ui/issue-23281.rs (renamed from src/test/compile-fail/issue-23281.rs)0
-rw-r--r--src/test/ui/issue-23281.stderr13
-rw-r--r--src/test/ui/issue-2330.rs (renamed from src/test/compile-fail/issue-2330.rs)0
-rw-r--r--src/test/ui/issue-2330.stderr9
-rw-r--r--src/test/ui/issue-23589.rs (renamed from src/test/compile-fail/issue-23589.rs)0
-rw-r--r--src/test/ui/issue-23589.stderr9
-rw-r--r--src/test/ui/issue-23595-1.rs (renamed from src/test/compile-fail/issue-23595-1.rs)0
-rw-r--r--src/test/ui/issue-23595-1.stderr21
-rw-r--r--src/test/ui/issue-23595-2.rs (renamed from src/test/compile-fail/issue-23595-2.rs)0
-rw-r--r--src/test/ui/issue-23595-2.stderr9
-rw-r--r--src/test/ui/issue-23966.rs (renamed from src/test/compile-fail/issue-23966.rs)0
-rw-r--r--src/test/ui/issue-23966.stderr9
-rw-r--r--src/test/ui/issue-24013.rs (renamed from src/test/compile-fail/issue-24013.rs)0
-rw-r--r--src/test/ui/issue-24013.stderr9
-rw-r--r--src/test/ui/issue-24204.rs (renamed from src/test/compile-fail/issue-24204.rs)0
-rw-r--r--src/test/ui/issue-24204.stderr17
-rw-r--r--src/test/ui/issue-24267-flow-exit.nll.stderr15
-rw-r--r--src/test/ui/issue-24267-flow-exit.rs (renamed from src/test/compile-fail/issue-24267-flow-exit.rs)0
-rw-r--r--src/test/ui/issue-24267-flow-exit.stderr15
-rw-r--r--src/test/ui/issue-24322.rs (renamed from src/test/compile-fail/issue-24322.rs)0
-rw-r--r--src/test/ui/issue-24322.stderr12
-rw-r--r--src/test/ui/issue-24352.rs (renamed from src/test/compile-fail/issue-24352.rs)0
-rw-r--r--src/test/ui/issue-24352.stderr11
-rw-r--r--src/test/ui/issue-24357.nll.stderr14
-rw-r--r--src/test/ui/issue-24357.rs (renamed from src/test/compile-fail/issue-24357.rs)0
-rw-r--r--src/test/ui/issue-24357.stderr14
-rw-r--r--src/test/ui/issue-24363.rs (renamed from src/test/compile-fail/issue-24363.rs)0
-rw-r--r--src/test/ui/issue-24363.stderr18
-rw-r--r--src/test/ui/issue-24365.rs (renamed from src/test/compile-fail/issue-24365.rs)0
-rw-r--r--src/test/ui/issue-24365.stderr21
-rw-r--r--src/test/ui/issue-24446.rs (renamed from src/test/compile-fail/issue-24446.rs)0
-rw-r--r--src/test/ui/issue-24446.stderr33
-rw-r--r--src/test/ui/issue-24682.rs (renamed from src/test/compile-fail/issue-24682.rs)0
-rw-r--r--src/test/ui/issue-24682.stderr22
-rw-r--r--src/test/ui/issue-24819.rs (renamed from src/test/compile-fail/issue-24819.rs)0
-rw-r--r--src/test/ui/issue-24819.stderr12
-rw-r--r--src/test/ui/issue-24883.rs (renamed from src/test/compile-fail/issue-24883.rs)0
-rw-r--r--src/test/ui/issue-24883.stderr11
-rw-r--r--src/test/ui/issue-25076.rs (renamed from src/test/compile-fail/issue-25076.rs)0
-rw-r--r--src/test/ui/issue-25076.stderr15
-rw-r--r--src/test/ui/issue-25368.rs (renamed from src/test/compile-fail/issue-25368.rs)0
-rw-r--r--src/test/ui/issue-25368.stderr12
-rw-r--r--src/test/ui/issue-25386.rs (renamed from src/test/compile-fail/issue-25386.rs)0
-rw-r--r--src/test/ui/issue-25386.stderr21
-rw-r--r--src/test/ui/issue-25396.rs (renamed from src/test/compile-fail/issue-25396.rs)0
-rw-r--r--src/test/ui/issue-25396.stderr59
-rw-r--r--src/test/ui/issue-25439.rs (renamed from src/test/compile-fail/issue-25439.rs)0
-rw-r--r--src/test/ui/issue-25439.stderr13
-rw-r--r--src/test/ui/issue-25579.ast.nll.stderr9
-rw-r--r--src/test/ui/issue-25579.ast.stderr21
-rw-r--r--src/test/ui/issue-25579.mir.stderr9
-rw-r--r--src/test/ui/issue-25579.rs (renamed from src/test/compile-fail/issue-25579.rs)0
-rw-r--r--src/test/ui/issue-25700.rs (renamed from src/test/compile-fail/issue-25700.rs)0
-rw-r--r--src/test/ui/issue-25700.stderr13
-rw-r--r--src/test/ui/issue-2590.nll.stderr9
-rw-r--r--src/test/ui/issue-2590.rs (renamed from src/test/compile-fail/issue-2590.rs)0
-rw-r--r--src/test/ui/issue-2590.stderr9
-rw-r--r--src/test/ui/issue-25901.rs (renamed from src/test/compile-fail/issue-25901.rs)0
-rw-r--r--src/test/ui/issue-25901.stderr9
-rw-r--r--src/test/ui/issue-26094.rs (renamed from src/test/compile-fail/issue-26094.rs)0
-rw-r--r--src/test/ui/issue-26094.stderr15
-rw-r--r--src/test/ui/issue-26158.rs (renamed from src/test/compile-fail/issue-26158.rs)0
-rw-r--r--src/test/ui/issue-26158.stderr9
-rw-r--r--src/test/ui/issue-26217.nll.stderr15
-rw-r--r--src/test/ui/issue-26217.rs (renamed from src/test/compile-fail/issue-26217.rs)0
-rw-r--r--src/test/ui/issue-26217.stderr11
-rw-r--r--src/test/ui/issue-26237.rs (renamed from src/test/compile-fail/issue-26237.rs)0
-rw-r--r--src/test/ui/issue-26237.stderr15
-rw-r--r--src/test/ui/issue-26262.rs (renamed from src/test/compile-fail/issue-26262.rs)0
-rw-r--r--src/test/ui/issue-26262.stderr15
-rw-r--r--src/test/ui/issue-26459.rs (renamed from src/test/compile-fail/issue-26459.rs)0
-rw-r--r--src/test/ui/issue-26459.stderr9
-rw-r--r--src/test/ui/issue-26548.rs (renamed from src/test/compile-fail/issue-26548.rs)7
-rw-r--r--src/test/ui/issue-26548.stderr9
-rw-r--r--src/test/ui/issue-26614.rs (renamed from src/test/compile-fail/issue-26614.rs)0
-rw-r--r--src/test/ui/issue-26614.stderr11
-rw-r--r--src/test/ui/issue-26812.rs (renamed from src/test/compile-fail/issue-26812.rs)0
-rw-r--r--src/test/ui/issue-26812.stderr9
-rw-r--r--src/test/ui/issue-26905.rs (renamed from src/test/compile-fail/issue-26905.rs)0
-rw-r--r--src/test/ui/issue-26905.stderr12
-rw-r--r--src/test/ui/issue-26930.rs (renamed from src/test/compile-fail/issue-26930.rs)0
-rw-r--r--src/test/ui/issue-26930.stderr8
-rw-r--r--src/test/ui/issue-26948.rs (renamed from src/test/compile-fail/issue-26948.rs)0
-rw-r--r--src/test/ui/issue-26948.stderr9
-rw-r--r--src/test/ui/issue-27008.rs (renamed from src/test/compile-fail/issue-27008.rs)0
-rw-r--r--src/test/ui/issue-27008.stderr12
-rw-r--r--src/test/ui/issue-27033.rs (renamed from src/test/compile-fail/issue-27033.rs)0
-rw-r--r--src/test/ui/issue-27033.stderr18
-rw-r--r--src/test/ui/issue-27042.rs (renamed from src/test/compile-fail/issue-27042.rs)0
-rw-r--r--src/test/ui/issue-27042.stderr42
-rw-r--r--src/test/ui/issue-27060-2.rs (renamed from src/test/compile-fail/issue-27060-2.rs)0
-rw-r--r--src/test/ui/issue-27060-2.stderr14
-rw-r--r--src/test/ui/issue-27078.rs (renamed from src/test/compile-fail/issue-27078.rs)0
-rw-r--r--src/test/ui/issue-27078.stderr14
-rw-r--r--src/test/ui/issue-2718-a.rs (renamed from src/test/compile-fail/issue-2718-a.rs)0
-rw-r--r--src/test/ui/issue-2718-a.stderr14
-rw-r--r--src/test/ui/issue-27340.rs (renamed from src/test/compile-fail/issue-27340.rs)0
-rw-r--r--src/test/ui/issue-27340.stderr12
-rw-r--r--src/test/ui/issue-27433.rs (renamed from src/test/compile-fail/issue-27433.rs)0
-rw-r--r--src/test/ui/issue-27433.stderr11
-rw-r--r--src/test/ui/issue-27592.nll.stderr19
-rw-r--r--src/test/ui/issue-27592.rs (renamed from src/test/compile-fail/issue-27592.rs)0
-rw-r--r--src/test/ui/issue-27592.stderr21
-rw-r--r--src/test/ui/issue-27815.rs (renamed from src/test/compile-fail/issue-27815.rs)0
-rw-r--r--src/test/ui/issue-27815.stderr27
-rw-r--r--src/test/ui/issue-27895.rs (renamed from src/test/compile-fail/issue-27895.rs)0
-rw-r--r--src/test/ui/issue-27895.stderr9
-rw-r--r--src/test/ui/issue-28098.rs (renamed from src/test/compile-fail/issue-28098.rs)0
-rw-r--r--src/test/ui/issue-28098.stderr57
-rw-r--r--src/test/ui/issue-28105.rs (renamed from src/test/compile-fail/issue-28105.rs)0
-rw-r--r--src/test/ui/issue-28105.stderr15
-rw-r--r--src/test/ui/issue-28109.rs (renamed from src/test/compile-fail/issue-28109.rs)0
-rw-r--r--src/test/ui/issue-28109.stderr15
-rw-r--r--src/test/ui/issue-28113.rs (renamed from src/test/compile-fail/issue-28113.rs)0
-rw-r--r--src/test/ui/issue-28113.stderr9
-rw-r--r--src/test/ui/issue-2823.rs (renamed from src/test/compile-fail/issue-2823.rs)0
-rw-r--r--src/test/ui/issue-2823.stderr16
-rw-r--r--src/test/ui/issue-28324.rs (renamed from src/test/compile-fail/issue-28324.rs)0
-rw-r--r--src/test/ui/issue-28324.stderr9
-rw-r--r--src/test/ui/issue-28344.rs (renamed from src/test/compile-fail/issue-28344.rs)0
-rw-r--r--src/test/ui/issue-28344.stderr32
-rw-r--r--src/test/ui/issue-28433.rs (renamed from src/test/compile-fail/issue-28433.rs)0
-rw-r--r--src/test/ui/issue-28433.stderr14
-rw-r--r--src/test/ui/issue-28472.rs (renamed from src/test/compile-fail/issue-28472.rs)0
-rw-r--r--src/test/ui/issue-28472.stderr27
-rw-r--r--src/test/ui/issue-2849.rs (renamed from src/test/compile-fail/issue-2849.rs)0
-rw-r--r--src/test/ui/issue-2849.stderr11
-rw-r--r--src/test/ui/issue-28576.rs (renamed from src/test/compile-fail/issue-28576.rs)0
-rw-r--r--src/test/ui/issue-28576.stderr12
-rw-r--r--src/test/ui/issue-28586.rs (renamed from src/test/compile-fail/issue-28586.rs)0
-rw-r--r--src/test/ui/issue-28586.stderr9
-rw-r--r--src/test/ui/issue-28625.rs (renamed from src/test/compile-fail/issue-28625.rs)0
-rw-r--r--src/test/ui/issue-28625.stderr12
-rw-r--r--src/test/ui/issue-28992-empty.rs (renamed from src/test/compile-fail/issue-28992-empty.rs)0
-rw-r--r--src/test/ui/issue-28992-empty.stderr16
-rw-r--r--src/test/ui/issue-29084.rs (renamed from src/test/compile-fail/issue-29084.rs)0
-rw-r--r--src/test/ui/issue-29084.stderr15
-rw-r--r--src/test/ui/issue-29147.rs (renamed from src/test/compile-fail/issue-29147.rs)0
-rw-r--r--src/test/ui/issue-29147.stderr15
-rw-r--r--src/test/ui/issue-29161.rs (renamed from src/test/compile-fail/issue-29161.rs)0
-rw-r--r--src/test/ui/issue-29161.stderr16
-rw-r--r--src/test/ui/issue-29184.rs (renamed from src/test/compile-fail/issue-29184.rs)0
-rw-r--r--src/test/ui/issue-29184.stderr9
-rw-r--r--src/test/ui/issue-2937.rs (renamed from src/test/compile-fail/issue-2937.rs)0
-rw-r--r--src/test/ui/issue-2937.stderr9
-rw-r--r--src/test/ui/issue-2951.rs (renamed from src/test/compile-fail/issue-2951.rs)0
-rw-r--r--src/test/ui/issue-2951.stderr12
-rw-r--r--src/test/ui/issue-29857.rs (renamed from src/test/compile-fail/issue-29857.rs)0
-rw-r--r--src/test/ui/issue-29857.stderr8
-rw-r--r--src/test/ui/issue-29861.rs (renamed from src/test/compile-fail/issue-29861.rs)0
-rw-r--r--src/test/ui/issue-29861.stderr9
-rw-r--r--src/test/ui/issue-2995.rs (renamed from src/test/compile-fail/issue-2995.rs)0
-rw-r--r--src/test/ui/issue-2995.stderr11
-rw-r--r--src/test/ui/issue-30079.rs (renamed from src/test/compile-fail/issue-30079.rs)0
-rw-r--r--src/test/ui/issue-30079.stderr31
-rw-r--r--src/test/ui/issue-3008-3.rs (renamed from src/test/compile-fail/issue-3008-3.rs)0
-rw-r--r--src/test/ui/issue-3008-3.stderr13
-rw-r--r--src/test/ui/issue-3021-b.rs (renamed from src/test/compile-fail/issue-3021-b.rs)0
-rw-r--r--src/test/ui/issue-3021-b.stderr11
-rw-r--r--src/test/ui/issue-3021-c.rs (renamed from src/test/compile-fail/issue-3021-c.rs)0
-rw-r--r--src/test/ui/issue-3021-c.stderr25
-rw-r--r--src/test/ui/issue-3021-d.rs (renamed from src/test/compile-fail/issue-3021-d.rs)0
-rw-r--r--src/test/ui/issue-3021-d.stderr19
-rw-r--r--src/test/ui/issue-3021.rs (renamed from src/test/compile-fail/issue-3021.rs)0
-rw-r--r--src/test/ui/issue-3021.stderr11
-rw-r--r--src/test/ui/issue-30225.rs (renamed from src/test/compile-fail/issue-30225.rs)0
-rw-r--r--src/test/ui/issue-30225.stderr12
-rw-r--r--src/test/ui/issue-30236.rs (renamed from src/test/compile-fail/issue-30236.rs)0
-rw-r--r--src/test/ui/issue-30236.stderr9
-rw-r--r--src/test/ui/issue-30240-b.rs (renamed from src/test/compile-fail/issue-30240-b.rs)0
-rw-r--r--src/test/ui/issue-30240-b.stderr14
-rw-r--r--src/test/ui/issue-30240.rs (renamed from src/test/compile-fail/issue-30240.rs)0
-rw-r--r--src/test/ui/issue-30240.stderr15
-rw-r--r--src/test/ui/issue-30355.nll.stderr22
-rw-r--r--src/test/ui/issue-30355.rs (renamed from src/test/compile-fail/issue-30355.rs)0
-rw-r--r--src/test/ui/issue-30355.stderr22
-rw-r--r--src/test/ui/issue-3038.rs (renamed from src/test/compile-fail/issue-3038.rs)0
-rw-r--r--src/test/ui/issue-3038.stderr21
-rw-r--r--src/test/ui/issue-30438-a.nll.stderr20
-rw-r--r--src/test/ui/issue-30438-a.rs (renamed from src/test/compile-fail/issue-30438-a.rs)0
-rw-r--r--src/test/ui/issue-30438-a.stderr21
-rw-r--r--src/test/ui/issue-30438-b.rs (renamed from src/test/compile-fail/issue-30438-b.rs)0
-rw-r--r--src/test/ui/issue-30438-b.stderr21
-rw-r--r--src/test/ui/issue-30438-c.nll.stderr18
-rw-r--r--src/test/ui/issue-30438-c.rs (renamed from src/test/compile-fail/issue-30438-c.rs)0
-rw-r--r--src/test/ui/issue-30438-c.stderr18
-rw-r--r--src/test/ui/issue-30560.rs (renamed from src/test/compile-fail/issue-30560.rs)0
-rw-r--r--src/test/ui/issue-30560.stderr21
-rw-r--r--src/test/ui/issue-30589.rs (renamed from src/test/compile-fail/issue-30589.rs)0
-rw-r--r--src/test/ui/issue-30589.stderr9
-rw-r--r--src/test/ui/issue-3080.rs (renamed from src/test/compile-fail/issue-3080.rs)0
-rw-r--r--src/test/ui/issue-3080.stderr11
-rw-r--r--src/test/ui/issue-3096-1.rs (renamed from src/test/compile-fail/issue-3096-1.rs)0
-rw-r--r--src/test/ui/issue-3096-1.stderr15
-rw-r--r--src/test/ui/issue-3096-2.rs (renamed from src/test/compile-fail/issue-3096-2.rs)0
-rw-r--r--src/test/ui/issue-3096-2.stderr15
-rw-r--r--src/test/ui/issue-3099-a.rs (renamed from src/test/compile-fail/issue-3099-a.rs)0
-rw-r--r--src/test/ui/issue-3099-a.stderr14
-rw-r--r--src/test/ui/issue-3099-b.rs (renamed from src/test/compile-fail/issue-3099-b.rs)0
-rw-r--r--src/test/ui/issue-3099-b.stderr14
-rw-r--r--src/test/ui/issue-3099.rs (renamed from src/test/compile-fail/issue-3099.rs)0
-rw-r--r--src/test/ui/issue-3099.stderr14
-rw-r--r--src/test/ui/issue-31011.rs (renamed from src/test/compile-fail/issue-31011.rs)0
-rw-r--r--src/test/ui/issue-31011.stderr12
-rw-r--r--src/test/ui/issue-31109.rs (renamed from src/test/compile-fail/issue-31109.rs)0
-rw-r--r--src/test/ui/issue-31109.stderr8
-rw-r--r--src/test/ui/issue-31173.rs (renamed from src/test/compile-fail/issue-31173.rs)0
-rw-r--r--src/test/ui/issue-31173.stderr23
-rw-r--r--src/test/ui/issue-31212.rs (renamed from src/test/compile-fail/issue-31212.rs)0
-rw-r--r--src/test/ui/issue-31212.stderr16
-rw-r--r--src/test/ui/issue-31495.rs (renamed from src/test/compile-fail/issue-31495.rs)0
-rw-r--r--src/test/ui/issue-31511.rs (renamed from src/test/compile-fail/issue-31511.rs)0
-rw-r--r--src/test/ui/issue-31511.stderr9
-rw-r--r--src/test/ui/issue-3154.nll.stderr23
-rw-r--r--src/test/ui/issue-3154.rs (renamed from src/test/compile-fail/issue-3154.rs)0
-rw-r--r--src/test/ui/issue-3154.stderr11
-rw-r--r--src/test/ui/issue-31561.rs (renamed from src/test/compile-fail/issue-31561.rs)0
-rw-r--r--src/test/ui/issue-31561.stderr9
-rw-r--r--src/test/ui/issue-31769.rs (renamed from src/test/compile-fail/issue-31769.rs)0
-rw-r--r--src/test/ui/issue-31769.stderr16
-rw-r--r--src/test/ui/issue-31804.rs (renamed from src/test/compile-fail/issue-31804.rs)0
-rw-r--r--src/test/ui/issue-31804.stderr8
-rw-r--r--src/test/ui/issue-31845.rs (renamed from src/test/compile-fail/issue-31845.rs)0
-rw-r--r--src/test/ui/issue-31845.stderr9
-rw-r--r--src/test/ui/issue-31910.rs (renamed from src/test/compile-fail/issue-31910.rs)0
-rw-r--r--src/test/ui/issue-31910.stderr9
-rw-r--r--src/test/ui/issue-31924-non-snake-ffi.rs (renamed from src/test/compile-fail/issue-31924-non-snake-ffi.rs)0
-rw-r--r--src/test/ui/issue-31924-non-snake-ffi.stderr8
-rw-r--r--src/test/ui/issue-32004.rs (renamed from src/test/compile-fail/issue-32004.rs)0
-rw-r--r--src/test/ui/issue-32004.stderr17
-rw-r--r--src/test/ui/issue-32086.rs (renamed from src/test/compile-fail/issue-32086.rs)0
-rw-r--r--src/test/ui/issue-32086.stderr15
-rw-r--r--src/test/ui/issue-32119.rs (renamed from src/test/compile-fail/issue-32119.rs)0
-rw-r--r--src/test/ui/issue-32119.stderr8
-rw-r--r--src/test/ui/issue-3214.rs (renamed from src/test/compile-fail/issue-3214.rs)0
-rw-r--r--src/test/ui/issue-3214.stderr21
-rw-r--r--src/test/ui/issue-32201.rs (renamed from src/test/compile-fail/issue-32201.rs)0
-rw-r--r--src/test/ui/issue-32201.stderr9
-rw-r--r--src/test/ui/issue-32222.rs (renamed from src/test/compile-fail/issue-32222.rs)0
-rw-r--r--src/test/ui/issue-32222.stderr8
-rw-r--r--src/test/ui/issue-32323.rs (renamed from src/test/compile-fail/issue-32323.rs)0
-rw-r--r--src/test/ui/issue-32323.stderr12
-rw-r--r--src/test/ui/issue-32377.rs (renamed from src/test/compile-fail/issue-32377.rs)0
-rw-r--r--src/test/ui/issue-32377.stderr12
-rw-r--r--src/test/ui/issue-32655.rs (renamed from src/test/compile-fail/issue-32655.rs)0
-rw-r--r--src/test/ui/issue-32655.stderr22
-rw-r--r--src/test/ui/issue-32709.rs (renamed from src/test/compile-fail/issue-32709.rs)0
-rw-r--r--src/test/ui/issue-32709.stderr11
-rw-r--r--src/test/ui/issue-32782.rs (renamed from src/test/compile-fail/issue-32782.rs)0
-rw-r--r--src/test/ui/issue-32782.stderr14
-rw-r--r--src/test/ui/issue-32797.rs (renamed from src/test/compile-fail/issue-32797.rs)0
-rw-r--r--src/test/ui/issue-32797.stderr8
-rw-r--r--src/test/ui/issue-32829.rs (renamed from src/test/compile-fail/issue-32829.rs)0
-rw-r--r--src/test/ui/issue-32829.stderr11
-rw-r--r--src/test/ui/issue-32833.rs (renamed from src/test/compile-fail/issue-32833.rs)0
-rw-r--r--src/test/ui/issue-32833.stderr9
-rw-r--r--src/test/ui/issue-32922.rs (renamed from src/test/compile-fail/issue-32922.rs)0
-rw-r--r--src/test/ui/issue-32922.stderr14
-rw-r--r--src/test/ui/issue-32963.rs (renamed from src/test/compile-fail/issue-32963.rs)0
-rw-r--r--src/test/ui/issue-32963.stderr22
-rw-r--r--src/test/ui/issue-32995-2.rs (renamed from src/test/compile-fail/issue-32995-2.rs)0
-rw-r--r--src/test/ui/issue-32995-2.stderr30
-rw-r--r--src/test/ui/issue-32995.rs (renamed from src/test/compile-fail/issue-32995.rs)0
-rw-r--r--src/test/ui/issue-32995.stderr66
-rw-r--r--src/test/ui/issue-33241.rs (renamed from src/test/compile-fail/issue-33241.rs)0
-rw-r--r--src/test/ui/issue-33241.stderr11
-rw-r--r--src/test/ui/issue-33293.rs (renamed from src/test/compile-fail/issue-33293.rs)0
-rw-r--r--src/test/ui/issue-33293.stderr9
-rw-r--r--src/test/ui/issue-3344.rs (renamed from src/test/compile-fail/issue-3344.rs)0
-rw-r--r--src/test/ui/issue-3344.stderr11
-rw-r--r--src/test/ui/issue-33464.rs (renamed from src/test/compile-fail/issue-33464.rs)0
-rw-r--r--src/test/ui/issue-33464.stderr21
-rw-r--r--src/test/ui/issue-33504.rs (renamed from src/test/compile-fail/issue-33504.rs)0
-rw-r--r--src/test/ui/issue-33504.stderr12
-rw-r--r--src/test/ui/issue-33571.rs (renamed from src/test/compile-fail/issue-33571.rs)0
-rw-r--r--src/test/ui/issue-33571.stderr8
-rw-r--r--src/test/ui/issue-33819.nll.stderr12
-rw-r--r--src/test/ui/issue-33819.rs (renamed from src/test/compile-fail/issue-33819.rs)0
-rw-r--r--src/test/ui/issue-33819.stderr9
-rw-r--r--src/test/ui/issue-34028.rs (renamed from src/test/compile-fail/issue-34028.rs)0
-rw-r--r--src/test/ui/issue-34028.stderr8
-rw-r--r--src/test/ui/issue-34171.rs (renamed from src/test/compile-fail/issue-34171.rs)0
-rw-r--r--src/test/ui/issue-34171.stderr10
-rw-r--r--src/test/ui/issue-34222-1.rs (renamed from src/test/compile-fail/issue-34222-1.rs)0
-rw-r--r--src/test/ui/issue-34222-1.stderr11
-rw-r--r--src/test/ui/issue-34334.rs (renamed from src/test/compile-fail/issue-34334.rs)0
-rw-r--r--src/test/ui/issue-34334.stderr10
-rw-r--r--src/test/ui/issue-34349.rs (renamed from src/test/compile-fail/issue-34349.rs)0
-rw-r--r--src/test/ui/issue-34349.stderr14
-rw-r--r--src/test/ui/issue-34373.rs (renamed from src/test/compile-fail/issue-34373.rs)0
-rw-r--r--src/test/ui/issue-34373.stderr16
-rw-r--r--src/test/ui/issue-34418.rs (renamed from src/test/compile-fail/issue-34418.rs)0
-rw-r--r--src/test/ui/issue-34418.stderr8
-rw-r--r--src/test/ui/issue-3477.rs (renamed from src/test/compile-fail/issue-3477.rs)0
-rw-r--r--src/test/ui/issue-3477.stderr9
-rw-r--r--src/test/ui/issue-34839.rs (renamed from src/test/compile-fail/issue-34839.rs)0
-rw-r--r--src/test/ui/issue-34839.stderr8
-rw-r--r--src/test/ui/issue-35075.rs (renamed from src/test/compile-fail/issue-35075.rs)0
-rw-r--r--src/test/ui/issue-35075.stderr21
-rw-r--r--src/test/ui/issue-3521-2.rs (renamed from src/test/compile-fail/issue-3521-2.rs)0
-rw-r--r--src/test/ui/issue-3521-2.stderr11
-rw-r--r--src/test/ui/issue-3521.rs (renamed from src/test/compile-fail/issue-3521.rs)0
-rw-r--r--src/test/ui/issue-3521.stderr9
-rw-r--r--src/test/ui/issue-35450.rs (renamed from src/test/compile-fail/issue-35450.rs)0
-rw-r--r--src/test/ui/issue-35450.stderr8
-rw-r--r--src/test/ui/issue-35570.rs (renamed from src/test/compile-fail/issue-35570.rs)0
-rw-r--r--src/test/ui/issue-35570.stderr10
-rw-r--r--src/test/ui/issue-35668.rs (renamed from src/test/compile-fail/issue-35668.rs)0
-rw-r--r--src/test/ui/issue-35668.stderr11
-rw-r--r--src/test/ui/issue-35988.rs (renamed from src/test/compile-fail/issue-35988.rs)0
-rw-r--r--src/test/ui/issue-35988.stderr13
-rw-r--r--src/test/ui/issue-3601.rs (renamed from src/test/compile-fail/issue-3601.rs)0
-rw-r--r--src/test/ui/issue-3601.stderr9
-rw-r--r--src/test/ui/issue-36082.ast.nll.stderr14
-rw-r--r--src/test/ui/issue-36082.ast.stderr16
-rw-r--r--src/test/ui/issue-36082.mir.stderr14
-rw-r--r--src/test/ui/issue-36082.rs (renamed from src/test/compile-fail/issue-36082.rs)0
-rw-r--r--src/test/ui/issue-36116.rs (renamed from src/test/compile-fail/issue-36116.rs)0
-rw-r--r--src/test/ui/issue-36116.stderr20
-rw-r--r--src/test/ui/issue-36299.rs (renamed from src/test/compile-fail/issue-36299.rs)0
-rw-r--r--src/test/ui/issue-36299.stderr19
-rw-r--r--src/test/ui/issue-36379.rs (renamed from src/test/compile-fail/issue-36379.rs)0
-rw-r--r--src/test/ui/issue-36379.stderr8
-rw-r--r--src/test/ui/issue-36617.rs (renamed from src/test/compile-fail/issue-36617.rs)0
-rw-r--r--src/test/ui/issue-36617.stderr8
-rw-r--r--src/test/ui/issue-36638.rs (renamed from src/test/compile-fail/issue-36638.rs)0
-rw-r--r--src/test/ui/issue-36638.stderr14
-rw-r--r--src/test/ui/issue-3668-2.rs (renamed from src/test/compile-fail/issue-3668-2.rs)0
-rw-r--r--src/test/ui/issue-3668-2.stderr11
-rw-r--r--src/test/ui/issue-3668.rs (renamed from src/test/compile-fail/issue-3668.rs)0
-rw-r--r--src/test/ui/issue-3668.stderr11
-rw-r--r--src/test/ui/issue-3680.rs (renamed from src/test/compile-fail/issue-3680.rs)0
-rw-r--r--src/test/ui/issue-3680.stderr12
-rw-r--r--src/test/ui/issue-36839.rs (renamed from src/test/compile-fail/issue-36839.rs)0
-rw-r--r--src/test/ui/issue-36839.stderr10
-rw-r--r--src/test/ui/issue-3702-2.rs (renamed from src/test/compile-fail/issue-3702-2.rs)0
-rw-r--r--src/test/ui/issue-3702-2.stderr20
-rw-r--r--src/test/ui/issue-37026.rs (renamed from src/test/compile-fail/issue-37026.rs)0
-rw-r--r--src/test/ui/issue-37026.stderr21
-rw-r--r--src/test/ui/issue-37051.rs (renamed from src/test/compile-fail/issue-37051.rs)0
-rw-r--r--src/test/ui/issue-37051.stderr9
-rw-r--r--src/test/ui/issue-3707.rs (renamed from src/test/compile-fail/issue-3707.rs)0
-rw-r--r--src/test/ui/issue-3707.stderr19
-rw-r--r--src/test/ui/issue-37323.rs (renamed from src/test/compile-fail/issue-37323.rs)0
-rw-r--r--src/test/ui/issue-37323.stderr20
-rw-r--r--src/test/ui/issue-37366.rs (renamed from src/test/compile-fail/issue-37366.rs)0
-rw-r--r--src/test/ui/issue-37366.stderr9
-rw-r--r--src/test/ui/issue-37510.rs (renamed from src/test/compile-fail/issue-37510.rs)0
-rw-r--r--src/test/ui/issue-37510.stderr14
-rw-r--r--src/test/ui/issue-37515.rs (renamed from src/test/compile-fail/issue-37515.rs)0
-rw-r--r--src/test/ui/issue-37515.stderr22
-rw-r--r--src/test/ui/issue-37534.rs (renamed from src/test/compile-fail/issue-37534.rs)0
-rw-r--r--src/test/ui/issue-37534.stderr28
-rw-r--r--src/test/ui/issue-37550.rs (renamed from src/test/compile-fail/issue-37550.rs)0
-rw-r--r--src/test/ui/issue-37550.stderr35
-rw-r--r--src/test/ui/issue-37576.rs (renamed from src/test/compile-fail/issue-37576.rs)0
-rw-r--r--src/test/ui/issue-37576.stderr51
-rw-r--r--src/test/ui/issue-3763.rs (renamed from src/test/compile-fail/issue-3763.rs)0
-rw-r--r--src/test/ui/issue-3763.stderr34
-rw-r--r--src/test/ui/issue-37665.rs (renamed from src/test/compile-fail/issue-37665.rs)0
-rw-r--r--src/test/ui/issue-37665.stderr12
-rw-r--r--src/test/ui/issue-37887.rs (renamed from src/test/compile-fail/issue-37887.rs)0
-rw-r--r--src/test/ui/issue-37887.stderr18
-rw-r--r--src/test/ui/issue-38160.rs (renamed from src/test/compile-fail/issue-38160.rs)0
-rw-r--r--src/test/ui/issue-38160.stderr8
-rw-r--r--src/test/ui/issue-3820.rs (renamed from src/test/compile-fail/issue-3820.rs)0
-rw-r--r--src/test/ui/issue-3820.stderr11
-rw-r--r--src/test/ui/issue-38293.rs (renamed from src/test/compile-fail/issue-38293.rs)0
-rw-r--r--src/test/ui/issue-38293.stderr20
-rw-r--r--src/test/ui/issue-38381.rs (renamed from src/test/compile-fail/issue-38381.rs)0
-rw-r--r--src/test/ui/issue-38381.stderr10
-rw-r--r--src/test/ui/issue-38404.rs (renamed from src/test/compile-fail/issue-38404.rs)0
-rw-r--r--src/test/ui/issue-38404.stderr11
-rw-r--r--src/test/ui/issue-38412.rs (renamed from src/test/compile-fail/issue-38412.rs)0
-rw-r--r--src/test/ui/issue-38412.stderr9
-rw-r--r--src/test/ui/issue-38458.rs (renamed from src/test/compile-fail/issue-38458.rs)0
-rw-r--r--src/test/ui/issue-38458.stderr9
-rw-r--r--src/test/ui/issue-38604.rs (renamed from src/test/compile-fail/issue-38604.rs)0
-rw-r--r--src/test/ui/issue-38604.stderr20
-rw-r--r--src/test/ui/issue-38857.rs (renamed from src/test/compile-fail/issue-38857.rs)0
-rw-r--r--src/test/ui/issue-38857.stderr16
-rw-r--r--src/test/ui/issue-38868.rs (renamed from src/test/compile-fail/issue-38868.rs)0
-rw-r--r--src/test/ui/issue-38868.stderr21
-rw-r--r--src/test/ui/issue-38919.rs (renamed from src/test/compile-fail/issue-38919.rs)0
-rw-r--r--src/test/ui/issue-38919.stderr9
-rw-r--r--src/test/ui/issue-38954.rs (renamed from src/test/compile-fail/issue-38954.rs)0
-rw-r--r--src/test/ui/issue-38954.stderr12
-rw-r--r--src/test/ui/issue-39211.rs (renamed from src/test/compile-fail/issue-39211.rs)0
-rw-r--r--src/test/ui/issue-39211.stderr9
-rw-r--r--src/test/ui/issue-39362.rs (renamed from src/test/compile-fail/issue-39362.rs)0
-rw-r--r--src/test/ui/issue-39362.stderr9
-rw-r--r--src/test/ui/issue-39388.rs (renamed from src/test/compile-fail/issue-39388.rs)0
-rw-r--r--src/test/ui/issue-39388.stderr8
-rw-r--r--src/test/ui/issue-39404.rs (renamed from src/test/compile-fail/issue-39404.rs)0
-rw-r--r--src/test/ui/issue-39404.stderr12
-rw-r--r--src/test/ui/issue-39559-2.rs (renamed from src/test/compile-fail/issue-39559-2.rs)0
-rw-r--r--src/test/ui/issue-39559-2.stderr30
-rw-r--r--src/test/ui/issue-39559.rs (renamed from src/test/compile-fail/issue-39559.rs)0
-rw-r--r--src/test/ui/issue-39559.stderr13
-rw-r--r--src/test/ui/issue-39616.rs (renamed from src/test/compile-fail/issue-39616.rs)0
-rw-r--r--src/test/ui/issue-39616.stderr14
-rw-r--r--src/test/ui/issue-39687.rs (renamed from src/test/compile-fail/issue-39687.rs)0
-rw-r--r--src/test/ui/issue-39687.stderr9
-rw-r--r--src/test/ui/issue-3973.rs (renamed from src/test/compile-fail/issue-3973.rs)0
-rw-r--r--src/test/ui/issue-3973.stderr22
-rw-r--r--src/test/ui/issue-39848.rs (renamed from src/test/compile-fail/issue-39848.rs)0
-rw-r--r--src/test/ui/issue-39848.stderr13
-rw-r--r--src/test/ui/issue-3993.rs (renamed from src/test/compile-fail/issue-3993.rs)0
-rw-r--r--src/test/ui/issue-3993.stderr9
-rw-r--r--src/test/ui/issue-39970.rs (renamed from src/test/compile-fail/issue-39970.rs)0
-rw-r--r--src/test/ui/issue-39970.stderr18
-rw-r--r--src/test/ui/issue-39974.rs (renamed from src/test/compile-fail/issue-39974.rs)0
-rw-r--r--src/test/ui/issue-39974.stderr9
-rw-r--r--src/test/ui/issue-40000.rs (renamed from src/test/compile-fail/issue-40000.rs)0
-rw-r--r--src/test/ui/issue-40000.stderr12
-rw-r--r--src/test/ui/issue-40288-2.nll.stderr55
-rw-r--r--src/test/ui/issue-40288-2.rs (renamed from src/test/compile-fail/issue-40288-2.rs)0
-rw-r--r--src/test/ui/issue-40288-2.stderr21
-rw-r--r--src/test/ui/issue-40288.nll.stderr15
-rw-r--r--src/test/ui/issue-40288.rs (renamed from src/test/compile-fail/issue-40288.rs)0
-rw-r--r--src/test/ui/issue-40288.stderr12
-rw-r--r--src/test/ui/issue-40350.rs (renamed from src/test/compile-fail/issue-40350.rs)0
-rw-r--r--src/test/ui/issue-40350.stderr8
-rw-r--r--src/test/ui/issue-40510-1.nll.stderr17
-rw-r--r--src/test/ui/issue-40510-1.rs (renamed from src/test/compile-fail/issue-40510-1.rs)0
-rw-r--r--src/test/ui/issue-40510-1.stderr8
-rw-r--r--src/test/ui/issue-40510-2.rs (renamed from src/test/compile-fail/issue-40510-2.rs)0
-rw-r--r--src/test/ui/issue-40510-2.stderr8
-rw-r--r--src/test/ui/issue-40510-3.nll.stderr20
-rw-r--r--src/test/ui/issue-40510-3.rs (renamed from src/test/compile-fail/issue-40510-3.rs)0
-rw-r--r--src/test/ui/issue-40510-3.stderr8
-rw-r--r--src/test/ui/issue-40510-4.rs (renamed from src/test/compile-fail/issue-40510-4.rs)0
-rw-r--r--src/test/ui/issue-40510-4.stderr8
-rw-r--r--src/test/ui/issue-40610.rs (renamed from src/test/compile-fail/issue-40610.rs)0
-rw-r--r--src/test/ui/issue-40610.stderr11
-rw-r--r--src/test/ui/issue-40749.rs (renamed from src/test/compile-fail/issue-40749.rs)0
-rw-r--r--src/test/ui/issue-40749.stderr12
-rw-r--r--src/test/ui/issue-40845.rs (renamed from src/test/compile-fail/issue-40845.rs)0
-rw-r--r--src/test/ui/issue-40845.stderr14
-rw-r--r--src/test/ui/issue-40861.rs (renamed from src/test/compile-fail/issue-40861.rs)0
-rw-r--r--src/test/ui/issue-40861.stderr11
-rw-r--r--src/test/ui/issue-41139.nll.stderr9
-rw-r--r--src/test/ui/issue-41139.rs (renamed from src/test/compile-fail/issue-41139.rs)0
-rw-r--r--src/test/ui/issue-41139.stderr9
-rw-r--r--src/test/ui/issue-41229-ref-str.rs (renamed from src/test/compile-fail/issue-41229-ref-str.rs)0
-rw-r--r--src/test/ui/issue-41229-ref-str.stderr12
-rw-r--r--src/test/ui/issue-41255.rs (renamed from src/test/compile-fail/issue-41255.rs)0
-rw-r--r--src/test/ui/issue-41255.stderr88
-rw-r--r--src/test/ui/issue-41394.rs (renamed from src/test/compile-fail/issue-41394.rs)0
-rw-r--r--src/test/ui/issue-41394.stderr11
-rw-r--r--src/test/ui/issue-41726.nll.stderr9
-rw-r--r--src/test/ui/issue-41726.rs (renamed from src/test/compile-fail/issue-41726.rs)0
-rw-r--r--src/test/ui/issue-41726.stderr9
-rw-r--r--src/test/ui/issue-41742.rs (renamed from src/test/compile-fail/issue-41742.rs)0
-rw-r--r--src/test/ui/issue-41742.stderr12
-rw-r--r--src/test/ui/issue-41776.rs (renamed from src/test/compile-fail/issue-41776.rs)0
-rw-r--r--src/test/ui/issue-41776.stderr8
-rw-r--r--src/test/ui/issue-41880.rs (renamed from src/test/compile-fail/issue-41880.rs)0
-rw-r--r--src/test/ui/issue-41880.stderr12
-rw-r--r--src/test/ui/issue-41974.rs (renamed from src/test/compile-fail/issue-41974.rs)0
-rw-r--r--src/test/ui/issue-41974.stderr29
-rw-r--r--src/test/ui/issue-41998.rs (renamed from src/test/compile-fail/issue-41998.rs)0
-rw-r--r--src/test/ui/issue-41998.stderr14
-rw-r--r--src/test/ui/issue-4201.rs (renamed from src/test/compile-fail/issue-4201.rs)0
-rw-r--r--src/test/ui/issue-4201.stderr19
-rw-r--r--src/test/ui/issue-42312.rs (renamed from src/test/compile-fail/issue-42312.rs)0
-rw-r--r--src/test/ui/issue-42312.stderr22
-rw-r--r--src/test/ui/issue-42344.nll.stderr9
-rw-r--r--src/test/ui/issue-42344.rs (renamed from src/test/compile-fail/issue-42344.rs)0
-rw-r--r--src/test/ui/issue-42344.stderr9
-rw-r--r--src/test/ui/issue-4265.rs (renamed from src/test/compile-fail/issue-4265.rs)0
-rw-r--r--src/test/ui/issue-4265.stderr15
-rw-r--r--src/test/ui/issue-42755.rs (renamed from src/test/compile-fail/issue-42755.rs)0
-rw-r--r--src/test/ui/issue-42755.stderr13
-rw-r--r--src/test/ui/issue-42796.nll.stderr14
-rw-r--r--src/test/ui/issue-42796.rs (renamed from src/test/compile-fail/issue-42796.rs)0
-rw-r--r--src/test/ui/issue-42796.stderr14
-rw-r--r--src/test/ui/issue-42880.rs (renamed from src/test/compile-fail/issue-42880.rs)0
-rw-r--r--src/test/ui/issue-42880.stderr9
-rw-r--r--src/test/ui/issue-43023.rs (renamed from src/test/compile-fail/issue-43023.rs)0
-rw-r--r--src/test/ui/issue-43023.stderr20
-rw-r--r--src/test/ui/issue-43105.rs (renamed from src/test/compile-fail/issue-43105.rs)0
-rw-r--r--src/test/ui/issue-43105.stderr19
-rw-r--r--src/test/ui/issue-43162.rs (renamed from src/test/compile-fail/issue-43162.rs)0
-rw-r--r--src/test/ui/issue-43162.stderr30
-rw-r--r--src/test/ui/issue-4321.rs (renamed from src/test/compile-fail/issue-4321.rs)0
-rw-r--r--src/test/ui/issue-4321.stderr9
-rw-r--r--src/test/ui/issue-43250.rs (renamed from src/test/compile-fail/issue-43250.rs)0
-rw-r--r--src/test/ui/issue-43250.stderr14
-rw-r--r--src/test/ui/issue-43355.rs (renamed from src/test/compile-fail/issue-43355.rs)0
-rw-r--r--src/test/ui/issue-43355.stderr16
-rw-r--r--src/test/ui/issue-43424.rs (renamed from src/test/compile-fail/issue-43424.rs)0
-rw-r--r--src/test/ui/issue-43424.stderr8
-rw-r--r--src/test/ui/issue-43431.rs (renamed from src/test/compile-fail/issue-43431.rs)0
-rw-r--r--src/test/ui/issue-43431.stderr9
-rw-r--r--src/test/ui/issue-4366-2.rs (renamed from src/test/compile-fail/issue-4366-2.rs)0
-rw-r--r--src/test/ui/issue-4366-2.stderr26
-rw-r--r--src/test/ui/issue-4366.rs (renamed from src/test/compile-fail/issue-4366.rs)0
-rw-r--r--src/test/ui/issue-4366.stderr15
-rw-r--r--src/test/ui/issue-43733-2.rs (renamed from src/test/compile-fail/issue-43733-2.rs)0
-rw-r--r--src/test/ui/issue-43733-2.stderr23
-rw-r--r--src/test/ui/issue-43733.rs (renamed from src/test/compile-fail/issue-43733.rs)0
-rw-r--r--src/test/ui/issue-43733.stderr19
-rw-r--r--src/test/ui/issue-43784-associated-type.rs (renamed from src/test/compile-fail/issue-43784-associated-type.rs)0
-rw-r--r--src/test/ui/issue-43784-associated-type.stderr16
-rw-r--r--src/test/ui/issue-43784-supertrait.rs (renamed from src/test/compile-fail/issue-43784-supertrait.rs)0
-rw-r--r--src/test/ui/issue-43784-supertrait.stderr16
-rw-r--r--src/test/ui/issue-43925.rs (renamed from src/test/compile-fail/issue-43925.rs)0
-rw-r--r--src/test/ui/issue-43925.stderr8
-rw-r--r--src/test/ui/issue-43926.rs (renamed from src/test/compile-fail/issue-43926.rs)0
-rw-r--r--src/test/ui/issue-43926.stderr8
-rw-r--r--src/test/ui/issue-43988.rs (renamed from src/test/compile-fail/issue-43988.rs)0
-rw-r--r--src/test/ui/issue-43988.stderr79
-rw-r--r--src/test/ui/issue-44021.rs (renamed from src/test/compile-fail/issue-44021.rs)0
-rw-r--r--src/test/ui/issue-44021.stderr8
-rw-r--r--src/test/ui/issue-44239.rs (renamed from src/test/compile-fail/issue-44239.rs)0
-rw-r--r--src/test/ui/issue-44239.stderr9
-rw-r--r--src/test/ui/issue-44373.rs (renamed from src/test/compile-fail/issue-44373.rs)0
-rw-r--r--src/test/ui/issue-44373.stderr13
-rw-r--r--src/test/ui/issue-44415.rs (renamed from src/test/compile-fail/issue-44415.rs)2
-rw-r--r--src/test/ui/issue-44415.stderr18
-rw-r--r--src/test/ui/issue-45087-unreachable-unsafe.rs (renamed from src/test/compile-fail/issue-45087-unreachable-unsafe.rs)0
-rw-r--r--src/test/ui/issue-45087-unreachable-unsafe.stderr11
-rw-r--r--src/test/ui/issue-4517.rs (renamed from src/test/compile-fail/issue-4517.rs)0
-rw-r--r--src/test/ui/issue-4517.stderr12
-rw-r--r--src/test/ui/issue-45199.ast.nll.stderr36
-rw-r--r--src/test/ui/issue-45199.ast.stderr30
-rw-r--r--src/test/ui/issue-45199.mir.stderr36
-rw-r--r--src/test/ui/issue-45199.rs (renamed from src/test/compile-fail/issue-45199.rs)0
-rw-r--r--src/test/ui/issue-45729-unsafe-in-generator.rs (renamed from src/test/compile-fail/issue-45729-unsafe-in-generator.rs)0
-rw-r--r--src/test/ui/issue-45729-unsafe-in-generator.stderr11
-rw-r--r--src/test/ui/issue-45801.rs (renamed from src/test/compile-fail/issue-45801.rs)0
-rw-r--r--src/test/ui/issue-45801.stderr12
-rw-r--r--src/test/ui/issue-45965.rs (renamed from src/test/compile-fail/issue-45965.rs)0
-rw-r--r--src/test/ui/issue-45965.stderr9
-rw-r--r--src/test/ui/issue-46023.ast.nll.stderr9
-rw-r--r--src/test/ui/issue-46023.ast.stderr12
-rw-r--r--src/test/ui/issue-46023.mir.stderr9
-rw-r--r--src/test/ui/issue-46023.rs (renamed from src/test/compile-fail/issue-46023.rs)0
-rw-r--r--src/test/ui/issue-46036.rs (renamed from src/test/compile-fail/issue-46036.rs)0
-rw-r--r--src/test/ui/issue-46036.stderr14
-rw-r--r--src/test/ui/issue-46311.rs (renamed from src/test/compile-fail/issue-46311.rs)0
-rw-r--r--src/test/ui/issue-46311.stderr8
-rw-r--r--src/test/ui/issue-46438.rs (renamed from src/test/compile-fail/issue-46438.rs)0
-rw-r--r--src/test/ui/issue-46438.stderr8
-rw-r--r--src/test/ui/issue-46604.ast.nll.stderr16
-rw-r--r--src/test/ui/issue-46604.ast.stderr16
-rw-r--r--src/test/ui/issue-46604.mir.stderr16
-rw-r--r--src/test/ui/issue-46604.rs (renamed from src/test/compile-fail/issue-46604.rs)0
-rw-r--r--src/test/ui/issue-46771.rs (renamed from src/test/compile-fail/issue-46771.rs)0
-rw-r--r--src/test/ui/issue-46771.stderr11
-rw-r--r--src/test/ui/issue-46843.rs (renamed from src/test/compile-fail/issue-46843.rs)0
-rw-r--r--src/test/ui/issue-46843.stderr16
-rw-r--r--src/test/ui/issue-47309.rs (renamed from src/test/compile-fail/issue-47309.rs)0
-rw-r--r--src/test/ui/issue-4736.rs (renamed from src/test/compile-fail/issue-4736.rs)0
-rw-r--r--src/test/ui/issue-4736.stderr9
-rw-r--r--src/test/ui/issue-47412.rs (renamed from src/test/compile-fail/issue-47412.rs)0
-rw-r--r--src/test/ui/issue-47412.stderr19
-rw-r--r--src/test/ui/issue-47715.rs (renamed from src/test/compile-fail/issue-47715.rs)0
-rw-r--r--src/test/ui/issue-47715.stderr27
-rw-r--r--src/test/ui/issue-48131.rs (renamed from src/test/compile-fail/issue-48131.rs)0
-rw-r--r--src/test/ui/issue-48131.stderr20
-rw-r--r--src/test/ui/issue-48838.rs (renamed from src/test/compile-fail/issue-48838.rs)0
-rw-r--r--src/test/ui/issue-48838.stderr12
-rw-r--r--src/test/ui/issue-4968.rs (renamed from src/test/compile-fail/issue-4968.rs)0
-rw-r--r--src/test/ui/issue-4968.stderr12
-rw-r--r--src/test/ui/issue-4972.rs (renamed from src/test/compile-fail/issue-4972.rs)0
-rw-r--r--src/test/ui/issue-4972.stderr9
-rw-r--r--src/test/ui/issue-50471.rs (renamed from src/test/compile-fail/issue-50471.rs)0
-rw-r--r--src/test/ui/issue-50600.rs (renamed from src/test/compile-fail/issue-50600.rs)0
-rw-r--r--src/test/ui/issue-50600.stderr12
-rw-r--r--src/test/ui/issue-5062.rs (renamed from src/test/compile-fail/issue-5062.rs)0
-rw-r--r--src/test/ui/issue-5062.stderr9
-rw-r--r--src/test/ui/issue-5067.rs (renamed from src/test/compile-fail/issue-5067.rs)0
-rw-r--r--src/test/ui/issue-5067.stderr62
-rw-r--r--src/test/ui/issue-50688.rs (renamed from src/test/compile-fail/issue-50688.rs)0
-rw-r--r--src/test/ui/issue-50688.stderr12
-rw-r--r--src/test/ui/issue-5099.rs (renamed from src/test/compile-fail/issue-5099.rs)0
-rw-r--r--src/test/ui/issue-5099.stderr9
-rw-r--r--src/test/ui/issue-5100.rs (renamed from src/test/compile-fail/issue-5100.rs)0
-rw-r--r--src/test/ui/issue-5100.stderr63
-rw-r--r--src/test/ui/issue-5153.rs (renamed from src/test/compile-fail/issue-5153.rs)0
-rw-r--r--src/test/ui/issue-5153.stderr13
-rw-r--r--src/test/ui/issue-5216.rs (renamed from src/test/compile-fail/issue-5216.rs)0
-rw-r--r--src/test/ui/issue-5216.stderr21
-rw-r--r--src/test/ui/issue-52213.nll.stderr14
-rw-r--r--src/test/ui/issue-52213.rs (renamed from src/test/compile-fail/issue-52213.rs)0
-rw-r--r--src/test/ui/issue-52213.stderr28
-rw-r--r--src/test/ui/issue-5358-1.rs (renamed from src/test/compile-fail/issue-5358-1.rs)0
-rw-r--r--src/test/ui/issue-5358-1.stderr12
-rw-r--r--src/test/ui/issue-5439.rs (renamed from src/test/compile-fail/issue-5439.rs)0
-rw-r--r--src/test/ui/issue-5439.stderr11
-rw-r--r--src/test/ui/issue-5883.rs (renamed from src/test/compile-fail/issue-5883.rs)0
-rw-r--r--src/test/ui/issue-5883.stderr24
-rw-r--r--src/test/ui/issue-5927.rs (renamed from src/test/compile-fail/issue-5927.rs)0
-rw-r--r--src/test/ui/issue-5927.stderr16
-rw-r--r--src/test/ui/issue-5997-enum.rs (renamed from src/test/compile-fail/issue-5997-enum.rs)0
-rw-r--r--src/test/ui/issue-5997-enum.stderr13
-rw-r--r--src/test/ui/issue-5997-struct.rs (renamed from src/test/compile-fail/issue-5997-struct.rs)0
-rw-r--r--src/test/ui/issue-5997-struct.stderr13
-rw-r--r--src/test/ui/issue-6458-2.rs (renamed from src/test/compile-fail/issue-6458-2.rs)0
-rw-r--r--src/test/ui/issue-6458-2.stderr9
-rw-r--r--src/test/ui/issue-6596-1.rs (renamed from src/test/compile-fail/issue-6596-1.rs)2
-rw-r--r--src/test/ui/issue-6596-1.stderr11
-rw-r--r--src/test/ui/issue-6596-2.rs (renamed from src/test/compile-fail/issue-6596-2.rs)4
-rw-r--r--src/test/ui/issue-6596-2.stderr20
-rw-r--r--src/test/ui/issue-6642.rs (renamed from src/test/compile-fail/issue-6642.rs)0
-rw-r--r--src/test/ui/issue-6642.stderr11
-rw-r--r--src/test/ui/issue-6738.rs (renamed from src/test/compile-fail/issue-6738.rs)0
-rw-r--r--src/test/ui/issue-6738.stderr13
-rw-r--r--src/test/ui/issue-6801.nll.stderr14
-rw-r--r--src/test/ui/issue-6801.rs (renamed from src/test/compile-fail/issue-6801.rs)0
-rw-r--r--src/test/ui/issue-6801.stderr12
-rw-r--r--src/test/ui/issue-6804.rs (renamed from src/test/compile-fail/issue-6804.rs)0
-rw-r--r--src/test/ui/issue-6804.stderr25
-rw-r--r--src/test/ui/issue-6936.rs (renamed from src/test/compile-fail/issue-6936.rs)0
-rw-r--r--src/test/ui/issue-6936.stderr43
-rw-r--r--src/test/ui/issue-7013.rs (renamed from src/test/compile-fail/issue-7013.rs)0
-rw-r--r--src/test/ui/issue-7013.stderr14
-rw-r--r--src/test/ui/issue-7044.rs (renamed from src/test/compile-fail/issue-7044.rs)0
-rw-r--r--src/test/ui/issue-7044.stderr13
-rw-r--r--src/test/ui/issue-7061.rs (renamed from src/test/compile-fail/issue-7061.rs)0
-rw-r--r--src/test/ui/issue-7061.stderr14
-rw-r--r--src/test/ui/issue-7092.rs (renamed from src/test/compile-fail/issue-7092.rs)0
-rw-r--r--src/test/ui/issue-7092.stderr12
-rw-r--r--src/test/ui/issue-7246.rs (renamed from src/test/compile-fail/issue-7246.rs)0
-rw-r--r--src/test/ui/issue-7246.stderr14
-rw-r--r--src/test/ui/issue-7364.rs (renamed from src/test/compile-fail/issue-7364.rs)0
-rw-r--r--src/test/ui/issue-7364.stderr21
-rw-r--r--src/test/ui/issue-7607-1.rs (renamed from src/test/compile-fail/issue-7607-1.rs)0
-rw-r--r--src/test/ui/issue-7607-1.stderr9
-rw-r--r--src/test/ui/issue-7867.rs (renamed from src/test/compile-fail/issue-7867.rs)0
-rw-r--r--src/test/ui/issue-7867.stderr12
-rw-r--r--src/test/ui/issue-7950.rs (renamed from src/test/compile-fail/issue-7950.rs)0
-rw-r--r--src/test/ui/issue-7950.stderr12
-rw-r--r--src/test/ui/issue-7970a.rs (renamed from src/test/compile-fail/issue-7970a.rs)0
-rw-r--r--src/test/ui/issue-7970a.stderr8
-rw-r--r--src/test/ui/issue-7970b.rs (renamed from src/test/compile-fail/issue-7970b.rs)0
-rw-r--r--src/test/ui/issue-7970b.stderr8
-rw-r--r--src/test/ui/issue-8153.rs (renamed from src/test/compile-fail/issue-8153.rs)0
-rw-r--r--src/test/ui/issue-8153.stderr11
-rw-r--r--src/test/ui/issue-8208.rs (renamed from src/test/compile-fail/issue-8208.rs)0
-rw-r--r--src/test/ui/issue-8208.stderr21
-rw-r--r--src/test/ui/issue-8460-const.rs (renamed from src/test/compile-fail/issue-8460-const.rs)0
-rw-r--r--src/test/ui/issue-8460-const.stderr248
-rw-r--r--src/test/ui/issue-8640.rs (renamed from src/test/compile-fail/issue-8640.rs)0
-rw-r--r--src/test/ui/issue-8640.stderr17
-rw-r--r--src/test/ui/issue-8727.rs (renamed from src/test/compile-fail/issue-8727.rs)5
-rw-r--r--src/test/ui/issue-8727.stderr21
-rw-r--r--src/test/ui/issue-8761.rs (renamed from src/test/compile-fail/issue-8761.rs)0
-rw-r--r--src/test/ui/issue-8761.stderr15
-rw-r--r--src/test/ui/issue-8767.rs (renamed from src/test/compile-fail/issue-8767.rs)0
-rw-r--r--src/test/ui/issue-8767.stderr9
-rw-r--r--src/test/ui/issue-9575.rs (renamed from src/test/compile-fail/issue-9575.rs)0
-rw-r--r--src/test/ui/issue-9575.stderr12
-rw-r--r--src/test/ui/issue-9725.rs (renamed from src/test/compile-fail/issue-9725.rs)0
-rw-r--r--src/test/ui/issue-9725.stderr18
-rw-r--r--src/test/ui/issue-9814.rs (renamed from src/test/compile-fail/issue-9814.rs)0
-rw-r--r--src/test/ui/issue-9814.stderr9
-rw-r--r--src/test/ui/issue-pr29383.rs (renamed from src/test/compile-fail/issue-pr29383.rs)0
-rw-r--r--src/test/ui/issue-pr29383.stderr15
1152 files changed, 9668 insertions, 17 deletions
diff --git a/src/test/compile-fail/issue-10176.rs b/src/test/ui/issue-10176.rs
index c968844ae21..c968844ae21 100644
--- a/src/test/compile-fail/issue-10176.rs
+++ b/src/test/ui/issue-10176.rs
diff --git a/src/test/ui/issue-10176.stderr b/src/test/ui/issue-10176.stderr
new file mode 100644
index 00000000000..02e0b899b3f
--- /dev/null
+++ b/src/test/ui/issue-10176.stderr
@@ -0,0 +1,14 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-10176.rs:12:5
+   |
+LL | fn f() -> isize {
+   |           ----- expected `isize` because of return type
+LL |     (return 1, return 2)
+   |     ^^^^^^^^^^^^^^^^^^^^ expected isize, found tuple
+   |
+   = note: expected type `isize`
+              found type `(!, !)`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-10200.rs b/src/test/ui/issue-10200.rs
index 8c58ef6261e..8c58ef6261e 100644
--- a/src/test/compile-fail/issue-10200.rs
+++ b/src/test/ui/issue-10200.rs
diff --git a/src/test/ui/issue-10200.stderr b/src/test/ui/issue-10200.stderr
new file mode 100644
index 00000000000..4eb07827628
--- /dev/null
+++ b/src/test/ui/issue-10200.stderr
@@ -0,0 +1,9 @@
+error[E0532]: expected tuple struct/variant, found function `foo`
+  --> $DIR/issue-10200.rs:16:9
+   |
+LL |         foo(x) //~ ERROR expected tuple struct/variant, found function `foo`
+   |         ^^^ did you mean `Foo`?
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0532`.
diff --git a/src/test/ui/issue-10291.nll.stderr b/src/test/ui/issue-10291.nll.stderr
new file mode 100644
index 00000000000..1358fe010b4
--- /dev/null
+++ b/src/test/ui/issue-10291.nll.stderr
@@ -0,0 +1,14 @@
+warning: not reporting region error due to nll
+  --> $DIR/issue-10291.rs:13:9
+   |
+LL |         x //~ ERROR E0312
+   |         ^
+
+error: unsatisfied lifetime constraints
+  --> $DIR/issue-10291.rs:12:5
+   |
+LL |     drop::<Box<for<'z> FnMut(&'z isize) -> &'z isize>>(Box::new(|z| {
+   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ free region requires that `'x` must outlive `'static`
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-10291.rs b/src/test/ui/issue-10291.rs
index d4e7dc7e9a3..d4e7dc7e9a3 100644
--- a/src/test/compile-fail/issue-10291.rs
+++ b/src/test/ui/issue-10291.rs
diff --git a/src/test/ui/issue-10291.stderr b/src/test/ui/issue-10291.stderr
new file mode 100644
index 00000000000..af5929782f6
--- /dev/null
+++ b/src/test/ui/issue-10291.stderr
@@ -0,0 +1,23 @@
+error[E0312]: lifetime of reference outlives lifetime of borrowed content...
+  --> $DIR/issue-10291.rs:13:9
+   |
+LL |         x //~ ERROR E0312
+   |         ^
+   |
+note: ...the reference is valid for the anonymous lifetime #2 defined on the body at 12:65...
+  --> $DIR/issue-10291.rs:12:65
+   |
+LL |       drop::<Box<for<'z> FnMut(&'z isize) -> &'z isize>>(Box::new(|z| {
+   |  _________________________________________________________________^
+LL | |         x //~ ERROR E0312
+LL | |     }));
+   | |_____^
+note: ...but the borrowed content is only valid for the lifetime 'x as defined on the function body at 11:9
+  --> $DIR/issue-10291.rs:11:9
+   |
+LL | fn test<'x>(x: &'x isize) {
+   |         ^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0312`.
diff --git a/src/test/ui/issue-10398.nll.stderr b/src/test/ui/issue-10398.nll.stderr
new file mode 100644
index 00000000000..d13e843b94b
--- /dev/null
+++ b/src/test/ui/issue-10398.nll.stderr
@@ -0,0 +1,13 @@
+error[E0382]: use of moved value: `x`
+  --> $DIR/issue-10398.rs:17:14
+   |
+LL |         let _a = x;
+   |                  - value moved here
+LL |         drop(x);
+   |              ^ value used here after move
+   |
+   = note: move occurs because `x` has type `std::boxed::Box<i32>`, which does not implement the `Copy` trait
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0382`.
diff --git a/src/test/compile-fail/issue-10398.rs b/src/test/ui/issue-10398.rs
index 08e8effc626..08e8effc626 100644
--- a/src/test/compile-fail/issue-10398.rs
+++ b/src/test/ui/issue-10398.rs
diff --git a/src/test/ui/issue-10398.stderr b/src/test/ui/issue-10398.stderr
new file mode 100644
index 00000000000..e3b816df3f4
--- /dev/null
+++ b/src/test/ui/issue-10398.stderr
@@ -0,0 +1,13 @@
+error[E0382]: use of moved value: `x`
+  --> $DIR/issue-10398.rs:17:14
+   |
+LL |         let _a = x;
+   |             -- value moved here
+LL |         drop(x);
+   |              ^ value used here after move
+   |
+   = note: move occurs because `x` has type `std::boxed::Box<i32>`, which does not implement the `Copy` trait
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0382`.
diff --git a/src/test/compile-fail/issue-10401.rs b/src/test/ui/issue-10401.rs
index e36193aee25..e36193aee25 100644
--- a/src/test/compile-fail/issue-10401.rs
+++ b/src/test/ui/issue-10401.rs
diff --git a/src/test/ui/issue-10401.stderr b/src/test/ui/issue-10401.stderr
new file mode 100644
index 00000000000..8c91c11a67c
--- /dev/null
+++ b/src/test/ui/issue-10401.stderr
@@ -0,0 +1,16 @@
+error[E0368]: binary assignment operation `+=` cannot be applied to type `&str`
+  --> $DIR/issue-10401.rs:13:5
+   |
+LL |     a += { "b" };
+   |     -^^^^^^^^^^^
+   |     |
+   |     cannot use `+=` on type `&str`
+   |     `+` can't be used to concatenate two `&str` strings
+help: `to_owned()` can be used to create an owned `String` from a string reference. String concatenation appends the string on the right to the string on the left and may require reallocation. This requires ownership of the string on the left
+   |
+LL |     a.to_owned() += { "b" };
+   |     ^^^^^^^^^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0368`.
diff --git a/src/test/compile-fail/issue-10412.rs b/src/test/ui/issue-10412.rs
index ee553730a35..ee553730a35 100644
--- a/src/test/compile-fail/issue-10412.rs
+++ b/src/test/ui/issue-10412.rs
diff --git a/src/test/ui/issue-10412.stderr b/src/test/ui/issue-10412.stderr
new file mode 100644
index 00000000000..7f2f2dbf509
--- /dev/null
+++ b/src/test/ui/issue-10412.stderr
@@ -0,0 +1,51 @@
+error: lifetimes cannot use keyword names
+  --> $DIR/issue-10412.rs:11:20
+   |
+LL | trait Serializable<'self, T> { //~ ERROR lifetimes cannot use keyword names
+   |                    ^^^^^
+
+error: lifetimes cannot use keyword names
+  --> $DIR/issue-10412.rs:12:25
+   |
+LL |     fn serialize(val : &'self T) -> Vec<u8>; //~ ERROR lifetimes cannot use keyword names
+   |                         ^^^^^
+
+error: lifetimes cannot use keyword names
+  --> $DIR/issue-10412.rs:13:38
+   |
+LL |     fn deserialize(repr : &[u8]) -> &'self T; //~ ERROR lifetimes cannot use keyword names
+   |                                      ^^^^^
+
+error: lifetimes cannot use keyword names
+  --> $DIR/issue-10412.rs:16:6
+   |
+LL | impl<'self> Serializable<str> for &'self str { //~ ERROR lifetimes cannot use keyword names
+   |      ^^^^^
+
+error: lifetimes cannot use keyword names
+  --> $DIR/issue-10412.rs:16:36
+   |
+LL | impl<'self> Serializable<str> for &'self str { //~ ERROR lifetimes cannot use keyword names
+   |                                    ^^^^^
+
+error: lifetimes cannot use keyword names
+  --> $DIR/issue-10412.rs:19:25
+   |
+LL |     fn serialize(val : &'self str) -> Vec<u8> { //~ ERROR lifetimes cannot use keyword names
+   |                         ^^^^^
+
+error: lifetimes cannot use keyword names
+  --> $DIR/issue-10412.rs:22:37
+   |
+LL |     fn deserialize(repr: &[u8]) -> &'self str { //~ ERROR lifetimes cannot use keyword names
+   |                                     ^^^^^
+
+error[E0106]: missing lifetime specifier
+  --> $DIR/issue-10412.rs:16:13
+   |
+LL | impl<'self> Serializable<str> for &'self str { //~ ERROR lifetimes cannot use keyword names
+   |             ^^^^^^^^^^^^^^^^^ expected lifetime parameter
+
+error: aborting due to 8 previous errors
+
+For more information about this error, try `rustc --explain E0106`.
diff --git a/src/test/compile-fail/issue-10465.rs b/src/test/ui/issue-10465.rs
index ed91e935407..ed91e935407 100644
--- a/src/test/compile-fail/issue-10465.rs
+++ b/src/test/ui/issue-10465.rs
diff --git a/src/test/ui/issue-10465.stderr b/src/test/ui/issue-10465.stderr
new file mode 100644
index 00000000000..add4b832e83
--- /dev/null
+++ b/src/test/ui/issue-10465.stderr
@@ -0,0 +1,13 @@
+error[E0599]: no method named `foo` found for type `&b::B` in the current scope
+  --> $DIR/issue-10465.rs:27:15
+   |
+LL |             b.foo(); //~ ERROR: no method named `foo` found
+   |               ^^^
+   |
+   = help: items from traits can only be used if the trait is in scope
+   = note: the following trait is implemented but not in scope, perhaps add a `use` for it:
+           `use a::A;`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0599`.
diff --git a/src/test/compile-fail/issue-10536.rs b/src/test/ui/issue-10536.rs
index 3b0ea55cfa9..2b71fb5c67f 100644
--- a/src/test/compile-fail/issue-10536.rs
+++ b/src/test/ui/issue-10536.rs
@@ -24,8 +24,10 @@ pub fn main() {
     foo!();
 
     assert!({one! two()});
+    //~^ ERROR macros that expand to items must either be surrounded with braces or followed by a
 
     // regardless of whether nested macro_rules works, the following should at
     // least throw a conventional error.
     assert!({one! two});
+    //~^ ERROR expected
 }
diff --git a/src/test/ui/issue-10536.stderr b/src/test/ui/issue-10536.stderr
new file mode 100644
index 00000000000..ba404d0dd3f
--- /dev/null
+++ b/src/test/ui/issue-10536.stderr
@@ -0,0 +1,14 @@
+error: macros that expand to items must either be surrounded with braces or followed by a semicolon
+  --> $DIR/issue-10536.rs:26:22
+   |
+LL |     assert!({one! two()});
+   |                      ^^
+
+error: expected `(` or `{`, found `}`
+  --> $DIR/issue-10536.rs:31:22
+   |
+LL |     assert!({one! two});
+   |                      ^ expected `(` or `{`
+
+error: aborting due to 2 previous errors
+
diff --git a/src/test/compile-fail/issue-10545.rs b/src/test/ui/issue-10545.rs
index 708eea39a95..708eea39a95 100644
--- a/src/test/compile-fail/issue-10545.rs
+++ b/src/test/ui/issue-10545.rs
diff --git a/src/test/ui/issue-10545.stderr b/src/test/ui/issue-10545.stderr
new file mode 100644
index 00000000000..28f95dff3bc
--- /dev/null
+++ b/src/test/ui/issue-10545.stderr
@@ -0,0 +1,9 @@
+error[E0603]: struct `S` is private
+  --> $DIR/issue-10545.rs:17:11
+   |
+LL | fn foo(_: a::S) { //~ ERROR: struct `S` is private
+   |           ^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0603`.
diff --git a/src/test/compile-fail/issue-10656.rs b/src/test/ui/issue-10656.rs
index 0b335a526a4..7fd5a0d1348 100644
--- a/src/test/compile-fail/issue-10656.rs
+++ b/src/test/ui/issue-10656.rs
@@ -8,7 +8,6 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-// error-pattern: missing documentation for crate
-
 #![deny(missing_docs)]
 #![crate_type="lib"]
+//~^^ ERROR missing documentation for crate
diff --git a/src/test/ui/issue-10656.stderr b/src/test/ui/issue-10656.stderr
new file mode 100644
index 00000000000..d67463f0263
--- /dev/null
+++ b/src/test/ui/issue-10656.stderr
@@ -0,0 +1,15 @@
+error: missing documentation for crate
+  --> $DIR/issue-10656.rs:11:1
+   |
+LL | / #![deny(missing_docs)]
+LL | | #![crate_type="lib"]
+   | |____________________^
+   |
+note: lint level defined here
+  --> $DIR/issue-10656.rs:11:9
+   |
+LL | #![deny(missing_docs)]
+   |         ^^^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-10755.rs b/src/test/ui/issue-10755.rs
index 57915bce456..57915bce456 100644
--- a/src/test/compile-fail/issue-10755.rs
+++ b/src/test/ui/issue-10755.rs
diff --git a/src/test/ui/issue-10755.stderr b/src/test/ui/issue-10755.stderr
new file mode 100644
index 00000000000..db64944d44f
--- /dev/null
+++ b/src/test/ui/issue-10755.stderr
@@ -0,0 +1,6 @@
+error: linker `llllll` not found
+   |
+   = note: No such file or directory (os error 2)
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-10764.rs b/src/test/ui/issue-10764.rs
index cd4ec495556..cd4ec495556 100644
--- a/src/test/compile-fail/issue-10764.rs
+++ b/src/test/ui/issue-10764.rs
diff --git a/src/test/ui/issue-10764.stderr b/src/test/ui/issue-10764.stderr
new file mode 100644
index 00000000000..6aacbef0897
--- /dev/null
+++ b/src/test/ui/issue-10764.stderr
@@ -0,0 +1,12 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-10764.rs:14:15
+   |
+LL | fn main() { f(bar) }
+   |               ^^^ expected "Rust" fn, found "C" fn
+   |
+   = note: expected type `fn()`
+              found type `extern "C" fn() {bar}`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-10877.rs b/src/test/ui/issue-10877.rs
index 39f25b837cd..39f25b837cd 100644
--- a/src/test/compile-fail/issue-10877.rs
+++ b/src/test/ui/issue-10877.rs
diff --git a/src/test/ui/issue-10877.stderr b/src/test/ui/issue-10877.stderr
new file mode 100644
index 00000000000..6db0bf6dc65
--- /dev/null
+++ b/src/test/ui/issue-10877.stderr
@@ -0,0 +1,27 @@
+error[E0130]: patterns aren't allowed in foreign function declarations
+  --> $DIR/issue-10877.rs:13:12
+   |
+LL |     fn foo(1: ());
+   |            ^ pattern not allowed in foreign function
+
+error[E0130]: patterns aren't allowed in foreign function declarations
+  --> $DIR/issue-10877.rs:15:12
+   |
+LL |     fn bar((): isize);
+   |            ^^ pattern not allowed in foreign function
+
+error[E0130]: patterns aren't allowed in foreign function declarations
+  --> $DIR/issue-10877.rs:17:12
+   |
+LL |     fn baz(Foo { x }: isize);
+   |            ^^^^^^^^^ pattern not allowed in foreign function
+
+error[E0130]: patterns aren't allowed in foreign function declarations
+  --> $DIR/issue-10877.rs:19:12
+   |
+LL |     fn qux((x,y): ());
+   |            ^^^^^ pattern not allowed in foreign function
+
+error: aborting due to 4 previous errors
+
+For more information about this error, try `rustc --explain E0130`.
diff --git a/src/test/compile-fail/issue-10991.rs b/src/test/ui/issue-10991.rs
index 2d00f339f33..2d00f339f33 100644
--- a/src/test/compile-fail/issue-10991.rs
+++ b/src/test/ui/issue-10991.rs
diff --git a/src/test/ui/issue-10991.stderr b/src/test/ui/issue-10991.stderr
new file mode 100644
index 00000000000..3ae3bbe06cb
--- /dev/null
+++ b/src/test/ui/issue-10991.stderr
@@ -0,0 +1,11 @@
+error[E0605]: non-primitive cast: `()` as `usize`
+  --> $DIR/issue-10991.rs:13:14
+   |
+LL |     let _t = nil as usize; //~ ERROR: non-primitive cast: `()` as `usize`
+   |              ^^^^^^^^^^^^
+   |
+   = note: an `as` expression can only be used to convert between primitive types. Consider using the `From` trait
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0605`.
diff --git a/src/test/compile-fail/issue-11154.rs b/src/test/ui/issue-11154.rs
index 1ff68123374..1ff68123374 100644
--- a/src/test/compile-fail/issue-11154.rs
+++ b/src/test/ui/issue-11154.rs
diff --git a/src/test/ui/issue-11154.stderr b/src/test/ui/issue-11154.stderr
new file mode 100644
index 00000000000..8eec8b37c85
--- /dev/null
+++ b/src/test/ui/issue-11154.stderr
@@ -0,0 +1,6 @@
+error: cannot prefer dynamic linking when performing LTO
+
+note: only 'staticlib', 'bin', and 'cdylib' outputs are supported with LTO
+
+error: aborting due to previous error
+
diff --git a/src/test/ui/issue-11192.nll.stderr b/src/test/ui/issue-11192.nll.stderr
new file mode 100644
index 00000000000..d5a67083a23
--- /dev/null
+++ b/src/test/ui/issue-11192.nll.stderr
@@ -0,0 +1,18 @@
+error[E0502]: cannot borrow `*ptr` as immutable because it is also borrowed as mutable
+  --> $DIR/issue-11192.rs:30:10
+   |
+LL |     let mut test = |foo: &Foo| {
+   |                    ----------- mutable borrow occurs here
+LL |         println!("access {}", foo.x);
+LL |         ptr = box Foo { x: ptr.x + 1 };
+   |         --- previous borrow occurs due to use of `ptr` in closure
+...
+LL |     test(&*ptr);
+   |     -----^^^^^-
+   |     |    |
+   |     |    immutable borrow occurs here
+   |     borrow later used here
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0502`.
diff --git a/src/test/compile-fail/issue-11192.rs b/src/test/ui/issue-11192.rs
index 7d8a1528aba..7d8a1528aba 100644
--- a/src/test/compile-fail/issue-11192.rs
+++ b/src/test/ui/issue-11192.rs
diff --git a/src/test/ui/issue-11192.stderr b/src/test/ui/issue-11192.stderr
new file mode 100644
index 00000000000..e9853ac0ca8
--- /dev/null
+++ b/src/test/ui/issue-11192.stderr
@@ -0,0 +1,18 @@
+error[E0502]: cannot borrow `*ptr` as immutable because `ptr` is also borrowed as mutable
+  --> $DIR/issue-11192.rs:30:11
+   |
+LL |     let mut test = |foo: &Foo| {
+   |                    ----------- mutable borrow occurs here
+LL |         println!("access {}", foo.x);
+LL |         ptr = box Foo { x: ptr.x + 1 };
+   |         --- previous borrow occurs due to use of `ptr` in closure
+...
+LL |     test(&*ptr);
+   |           ^^^^ immutable borrow occurs here
+LL |     //~^ ERROR: cannot borrow `*ptr` as immutable
+LL | }
+   | - mutable borrow ends here
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0502`.
diff --git a/src/test/compile-fail/issue-11374.rs b/src/test/ui/issue-11374.rs
index 1e444a6bebf..1e444a6bebf 100644
--- a/src/test/compile-fail/issue-11374.rs
+++ b/src/test/ui/issue-11374.rs
diff --git a/src/test/ui/issue-11374.stderr b/src/test/ui/issue-11374.stderr
new file mode 100644
index 00000000000..3465069129b
--- /dev/null
+++ b/src/test/ui/issue-11374.stderr
@@ -0,0 +1,15 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-11374.rs:36:15
+   |
+LL |     c.read_to(v); //~ ERROR E0308
+   |               ^
+   |               |
+   |               expected &mut [u8], found struct `std::vec::Vec`
+   |               help: consider mutably borrowing here: `&mut v`
+   |
+   = note: expected type `&mut [u8]`
+              found type `std::vec::Vec<_>`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/ui/issue-11493.ast.stderr b/src/test/ui/issue-11493.ast.stderr
new file mode 100644
index 00000000000..99b996387e7
--- /dev/null
+++ b/src/test/ui/issue-11493.ast.stderr
@@ -0,0 +1,16 @@
+error[E0597]: borrowed value does not live long enough (Ast)
+  --> $DIR/issue-11493.rs:20:35
+   |
+LL |     let y = x.as_ref().unwrap_or(&id(5));
+   |                                   ^^^^^ - temporary value dropped here while still borrowed
+   |                                   |
+   |                                   temporary value does not live long enough
+...
+LL | }
+   | - temporary value needs to live until here
+   |
+   = note: consider using a `let` binding to increase its lifetime
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0597`.
diff --git a/src/test/ui/issue-11493.mir.stderr b/src/test/ui/issue-11493.mir.stderr
new file mode 100644
index 00000000000..99b996387e7
--- /dev/null
+++ b/src/test/ui/issue-11493.mir.stderr
@@ -0,0 +1,16 @@
+error[E0597]: borrowed value does not live long enough (Ast)
+  --> $DIR/issue-11493.rs:20:35
+   |
+LL |     let y = x.as_ref().unwrap_or(&id(5));
+   |                                   ^^^^^ - temporary value dropped here while still borrowed
+   |                                   |
+   |                                   temporary value does not live long enough
+...
+LL | }
+   | - temporary value needs to live until here
+   |
+   = note: consider using a `let` binding to increase its lifetime
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0597`.
diff --git a/src/test/compile-fail/issue-11493.rs b/src/test/ui/issue-11493.rs
index 3045c06ca4c..80ecc24543e 100644
--- a/src/test/compile-fail/issue-11493.rs
+++ b/src/test/ui/issue-11493.rs
@@ -9,10 +9,16 @@
 // except according to those terms.
 
 // This file must never have a trailing newline
+//
+// revisions: ast mir
+// compile-flags: -Z borrowck=compare
 
 fn id<T>(x: T) -> T { x }
 
 fn main() {
     let x = Some(3);
-    let y = x.as_ref().unwrap_or(&id(5)); //~ ERROR: borrowed value does not live long enough
+    let y = x.as_ref().unwrap_or(&id(5));
+    //[ast]~^ ERROR borrowed value does not live long enough (Ast)
+    //[mir]~^^ ERROR borrowed value does not live long enough (Ast)
+    // This actually passes in mir
 }
diff --git a/src/test/compile-fail/issue-11515.rs b/src/test/ui/issue-11515.rs
index 7afb8314ea6..7afb8314ea6 100644
--- a/src/test/compile-fail/issue-11515.rs
+++ b/src/test/ui/issue-11515.rs
diff --git a/src/test/ui/issue-11515.stderr b/src/test/ui/issue-11515.stderr
new file mode 100644
index 00000000000..25e2a45438e
--- /dev/null
+++ b/src/test/ui/issue-11515.stderr
@@ -0,0 +1,12 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-11515.rs:19:33
+   |
+LL |     let test = box Test { func: closure }; //~ ERROR mismatched types
+   |                                 ^^^^^^^ expected trait `std::ops::FnMut`, found trait `std::ops::Fn`
+   |
+   = note: expected type `std::boxed::Box<(dyn std::ops::FnMut() + 'static)>`
+              found type `std::boxed::Box<(dyn std::ops::Fn() + 'static)>`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-11681.rs b/src/test/ui/issue-11681.rs
index 71f1d5dcc9a..71f1d5dcc9a 100644
--- a/src/test/compile-fail/issue-11681.rs
+++ b/src/test/ui/issue-11681.rs
diff --git a/src/test/ui/issue-11681.stderr b/src/test/ui/issue-11681.stderr
new file mode 100644
index 00000000000..ef3d24c6657
--- /dev/null
+++ b/src/test/ui/issue-11681.stderr
@@ -0,0 +1,18 @@
+error[E0597]: borrowed value does not live long enough
+  --> $DIR/issue-11681.rs:22:20
+   |
+LL |   let testValue = &Test; //~ ERROR borrowed value does not live long enough
+   |                    ^^^^ temporary value does not live long enough
+LL |   return testValue;
+LL | }
+   | - temporary value only lives until here
+   |
+note: borrowed value must be valid for the lifetime 'a as defined on the function body at 21:15...
+  --> $DIR/issue-11681.rs:21:15
+   |
+LL | fn createTest<'a>() -> &'a Test {
+   |               ^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0597`.
diff --git a/src/test/compile-fail/issue-11692-1.rs b/src/test/ui/issue-11692-1.rs
index f577aad04e6..f577aad04e6 100644
--- a/src/test/compile-fail/issue-11692-1.rs
+++ b/src/test/ui/issue-11692-1.rs
diff --git a/src/test/ui/issue-11692-1.stderr b/src/test/ui/issue-11692-1.stderr
new file mode 100644
index 00000000000..daf53af3ace
--- /dev/null
+++ b/src/test/ui/issue-11692-1.stderr
@@ -0,0 +1,8 @@
+error: format argument must be a string literal.
+  --> $DIR/issue-11692-1.rs:12:12
+   |
+LL |     print!(test!());
+   |            ^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-11692-2.rs b/src/test/ui/issue-11692-2.rs
index acac2d151fe..acac2d151fe 100644
--- a/src/test/compile-fail/issue-11692-2.rs
+++ b/src/test/ui/issue-11692-2.rs
diff --git a/src/test/ui/issue-11692-2.stderr b/src/test/ui/issue-11692-2.stderr
new file mode 100644
index 00000000000..51d6041e922
--- /dev/null
+++ b/src/test/ui/issue-11692-2.stderr
@@ -0,0 +1,8 @@
+error: cannot find macro `test!` in this scope
+  --> $DIR/issue-11692-2.rs:12:13
+   |
+LL |     concat!(test!());
+   |             ^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-11740.rs b/src/test/ui/issue-11740.rs
index 0bda06be9e8..0bda06be9e8 100644
--- a/src/test/compile-fail/issue-11740.rs
+++ b/src/test/ui/issue-11740.rs
diff --git a/src/test/ui/issue-11740.stderr b/src/test/ui/issue-11740.stderr
new file mode 100644
index 00000000000..a1913e0057c
--- /dev/null
+++ b/src/test/ui/issue-11740.stderr
@@ -0,0 +1,11 @@
+error: compilation successful
+  --> $DIR/issue-11740.rs:35:1
+   |
+LL | / fn main() { //~ ERROR compilation successful
+LL | |     let element = Element { attrs: Vec::new() };
+LL | |     let _ = unsafe { element.get_attr("foo") };
+LL | | }
+   | |_^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-11771.rs b/src/test/ui/issue-11771.rs
index 69899105bc3..69899105bc3 100644
--- a/src/test/compile-fail/issue-11771.rs
+++ b/src/test/ui/issue-11771.rs
diff --git a/src/test/ui/issue-11771.stderr b/src/test/ui/issue-11771.stderr
new file mode 100644
index 00000000000..a31c4fa008d
--- /dev/null
+++ b/src/test/ui/issue-11771.stderr
@@ -0,0 +1,19 @@
+error[E0277]: cannot add `()` to `{integer}`
+  --> $DIR/issue-11771.rs:13:7
+   |
+LL |     1 +
+   |       ^ no implementation for `{integer} + ()`
+   |
+   = help: the trait `std::ops::Add<()>` is not implemented for `{integer}`
+
+error[E0277]: cannot add `()` to `{integer}`
+  --> $DIR/issue-11771.rs:18:7
+   |
+LL |     1 +
+   |       ^ no implementation for `{integer} + ()`
+   |
+   = help: the trait `std::ops::Add<()>` is not implemented for `{integer}`
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/compile-fail/issue-11844.rs b/src/test/ui/issue-11844.rs
index a6dbe954ec0..a6dbe954ec0 100644
--- a/src/test/compile-fail/issue-11844.rs
+++ b/src/test/ui/issue-11844.rs
diff --git a/src/test/ui/issue-11844.stderr b/src/test/ui/issue-11844.stderr
new file mode 100644
index 00000000000..d773e88d01c
--- /dev/null
+++ b/src/test/ui/issue-11844.stderr
@@ -0,0 +1,12 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-11844.rs:16:9
+   |
+LL |         Ok(a) => //~ ERROR: mismatched types
+   |         ^^^^^ expected enum `std::option::Option`, found enum `std::result::Result`
+   |
+   = note: expected type `std::option::Option<std::boxed::Box<{integer}>>`
+              found type `std::result::Result<_, _>`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/ui/issue-11873.nll.stderr b/src/test/ui/issue-11873.nll.stderr
new file mode 100644
index 00000000000..c12cbbfdd53
--- /dev/null
+++ b/src/test/ui/issue-11873.nll.stderr
@@ -0,0 +1,14 @@
+error[E0505]: cannot move out of `v` because it is borrowed
+  --> $DIR/issue-11873.rs:14:14
+   |
+LL |     let mut f = || v.push(2);
+   |                 ------------ borrow of `v` occurs here
+LL |     let _w = v; //~ ERROR: cannot move out of `v`
+   |              ^ move out of `v` occurs here
+LL | 
+LL |     f();
+   |     - borrow later used here
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0505`.
diff --git a/src/test/compile-fail/issue-11873.rs b/src/test/ui/issue-11873.rs
index 4618851529a..4618851529a 100644
--- a/src/test/compile-fail/issue-11873.rs
+++ b/src/test/ui/issue-11873.rs
diff --git a/src/test/ui/issue-11873.stderr b/src/test/ui/issue-11873.stderr
new file mode 100644
index 00000000000..f4da011f572
--- /dev/null
+++ b/src/test/ui/issue-11873.stderr
@@ -0,0 +1,11 @@
+error[E0505]: cannot move out of `v` because it is borrowed
+  --> $DIR/issue-11873.rs:14:9
+   |
+LL |     let mut f = || v.push(2);
+   |                 -- borrow of `v` occurs here
+LL |     let _w = v; //~ ERROR: cannot move out of `v`
+   |         ^^ move out of `v` occurs here
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0505`.
diff --git a/src/test/compile-fail/issue-12028.rs b/src/test/ui/issue-12028.rs
index 980385ce4cc..980385ce4cc 100644
--- a/src/test/compile-fail/issue-12028.rs
+++ b/src/test/ui/issue-12028.rs
diff --git a/src/test/ui/issue-12028.stderr b/src/test/ui/issue-12028.stderr
new file mode 100644
index 00000000000..f756e0a29d1
--- /dev/null
+++ b/src/test/ui/issue-12028.stderr
@@ -0,0 +1,9 @@
+error[E0284]: type annotations required: cannot resolve `<_ as StreamHasher>::S == <H as StreamHasher>::S`
+  --> $DIR/issue-12028.rs:39:14
+   |
+LL |         self.input_stream(&mut stream); //~ ERROR type annotations required
+   |              ^^^^^^^^^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0284`.
diff --git a/src/test/ui/issue-12041.nll.stderr b/src/test/ui/issue-12041.nll.stderr
new file mode 100644
index 00000000000..b880317a2a6
--- /dev/null
+++ b/src/test/ui/issue-12041.nll.stderr
@@ -0,0 +1,11 @@
+error[E0382]: use of moved value: `tx`
+  --> $DIR/issue-12041.rs:18:22
+   |
+LL |             let tx = tx;
+   |                      ^^ value moved here in previous iteration of loop
+   |
+   = note: move occurs because `tx` has type `std::sync::mpsc::Sender<i32>`, which does not implement the `Copy` trait
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0382`.
diff --git a/src/test/compile-fail/issue-12041.rs b/src/test/ui/issue-12041.rs
index f0f4bf5ca71..f0f4bf5ca71 100644
--- a/src/test/compile-fail/issue-12041.rs
+++ b/src/test/ui/issue-12041.rs
diff --git a/src/test/ui/issue-12041.stderr b/src/test/ui/issue-12041.stderr
new file mode 100644
index 00000000000..6172d78b513
--- /dev/null
+++ b/src/test/ui/issue-12041.stderr
@@ -0,0 +1,11 @@
+error[E0382]: use of moved value: `tx`
+  --> $DIR/issue-12041.rs:18:17
+   |
+LL |             let tx = tx;
+   |                 ^^ value moved here in previous iteration of loop
+   |
+   = note: move occurs because `tx` has type `std::sync::mpsc::Sender<i32>`, which does not implement the `Copy` trait
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0382`.
diff --git a/src/test/compile-fail/issue-12116.rs b/src/test/ui/issue-12116.rs
index a8d2c552553..a8d2c552553 100644
--- a/src/test/compile-fail/issue-12116.rs
+++ b/src/test/ui/issue-12116.rs
diff --git a/src/test/ui/issue-12116.stderr b/src/test/ui/issue-12116.stderr
new file mode 100644
index 00000000000..3bf0984b256
--- /dev/null
+++ b/src/test/ui/issue-12116.stderr
@@ -0,0 +1,14 @@
+error: unreachable pattern
+  --> $DIR/issue-12116.rs:25:9
+   |
+LL |         &IntList::Cons(val, box IntList::Nil)  => IntList::Cons(val, box IntList::Nil),
+   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |
+note: lint level defined here
+  --> $DIR/issue-12116.rs:15:9
+   |
+LL | #![deny(unreachable_patterns)]
+   |         ^^^^^^^^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-12127.rs b/src/test/ui/issue-12127.rs
index 5565a9a5761..5565a9a5761 100644
--- a/src/test/compile-fail/issue-12127.rs
+++ b/src/test/ui/issue-12127.rs
diff --git a/src/test/ui/issue-12127.stderr b/src/test/ui/issue-12127.stderr
new file mode 100644
index 00000000000..afd483823a6
--- /dev/null
+++ b/src/test/ui/issue-12127.stderr
@@ -0,0 +1,13 @@
+error[E0382]: use of moved value: `f`
+  --> $DIR/issue-12127.rs:21:9
+   |
+LL |         f();
+   |         - value moved here
+LL |         f();
+   |         ^ value used here after move
+   |
+   = note: move occurs because `f` has type `[closure@$DIR/issue-12127.rs:18:24: 18:41 x:std::boxed::Box<isize>]`, which does not implement the `Copy` trait
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0382`.
diff --git a/src/test/compile-fail/issue-12369.rs b/src/test/ui/issue-12369.rs
index 1b9af393ccc..1b9af393ccc 100644
--- a/src/test/compile-fail/issue-12369.rs
+++ b/src/test/ui/issue-12369.rs
diff --git a/src/test/ui/issue-12369.stderr b/src/test/ui/issue-12369.stderr
new file mode 100644
index 00000000000..2e8cd840fb7
--- /dev/null
+++ b/src/test/ui/issue-12369.stderr
@@ -0,0 +1,14 @@
+error: unreachable pattern
+  --> $DIR/issue-12369.rs:20:9
+   |
+LL |         &[10,a, ref rest..] => 10 //~ ERROR: unreachable pattern
+   |         ^^^^^^^^^^^^^^^^^^^
+   |
+note: lint level defined here
+  --> $DIR/issue-12369.rs:12:9
+   |
+LL | #![deny(unreachable_patterns)]
+   |         ^^^^^^^^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/ui/issue-12470.nll.stderr b/src/test/ui/issue-12470.nll.stderr
new file mode 100644
index 00000000000..09cbfe4f66d
--- /dev/null
+++ b/src/test/ui/issue-12470.nll.stderr
@@ -0,0 +1,18 @@
+error[E0597]: `*b` does not live long enough
+  --> $DIR/issue-12470.rs:38:18
+   |
+LL |     let bb: &B = &*b;    //~ ERROR does not live long enough
+   |                  ^^^ borrowed value does not live long enough
+LL |     make_a(bb)
+LL | }
+   | - borrowed value only lives until here
+   |
+note: borrowed value must be valid for the lifetime 'a as defined on the function body at 36:16...
+  --> $DIR/issue-12470.rs:36:16
+   |
+LL | fn make_make_a<'a>() -> A<'a> {
+   |                ^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0597`.
diff --git a/src/test/compile-fail/issue-12470.rs b/src/test/ui/issue-12470.rs
index 93785817e14..93785817e14 100644
--- a/src/test/compile-fail/issue-12470.rs
+++ b/src/test/ui/issue-12470.rs
diff --git a/src/test/ui/issue-12470.stderr b/src/test/ui/issue-12470.stderr
new file mode 100644
index 00000000000..91788e96297
--- /dev/null
+++ b/src/test/ui/issue-12470.stderr
@@ -0,0 +1,18 @@
+error[E0597]: `*b` does not live long enough
+  --> $DIR/issue-12470.rs:38:19
+   |
+LL |     let bb: &B = &*b;    //~ ERROR does not live long enough
+   |                   ^^ borrowed value does not live long enough
+LL |     make_a(bb)
+LL | }
+   | - borrowed value only lives until here
+   |
+note: borrowed value must be valid for the lifetime 'a as defined on the function body at 36:16...
+  --> $DIR/issue-12470.rs:36:16
+   |
+LL | fn make_make_a<'a>() -> A<'a> {
+   |                ^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0597`.
diff --git a/src/test/compile-fail/issue-12552.rs b/src/test/ui/issue-12552.rs
index e4788bac256..e4788bac256 100644
--- a/src/test/compile-fail/issue-12552.rs
+++ b/src/test/ui/issue-12552.rs
diff --git a/src/test/ui/issue-12552.stderr b/src/test/ui/issue-12552.stderr
new file mode 100644
index 00000000000..9a3d5ef02c6
--- /dev/null
+++ b/src/test/ui/issue-12552.stderr
@@ -0,0 +1,21 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-12552.rs:16:5
+   |
+LL |     Some(k) => match k { //~ ERROR mismatched types
+   |     ^^^^^^^ expected enum `std::result::Result`, found enum `std::option::Option`
+   |
+   = note: expected type `std::result::Result<_, {integer}>`
+              found type `std::option::Option<_>`
+
+error[E0308]: mismatched types
+  --> $DIR/issue-12552.rs:19:5
+   |
+LL |     None => () //~ ERROR mismatched types
+   |     ^^^^ expected enum `std::result::Result`, found enum `std::option::Option`
+   |
+   = note: expected type `std::result::Result<_, {integer}>`
+              found type `std::option::Option<_>`
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/ui/issue-12567.nll.stderr b/src/test/ui/issue-12567.nll.stderr
new file mode 100644
index 00000000000..a040f7c3c8d
--- /dev/null
+++ b/src/test/ui/issue-12567.nll.stderr
@@ -0,0 +1,31 @@
+error[E0508]: cannot move out of type `[T]`, a non-copy slice
+  --> $DIR/issue-12567.rs:14:11
+   |
+LL |     match (l1, l2) {
+   |           ^^^^^^^^ cannot move out of here
+help: to prevent move, use ref or ref mut
+   |
+LL |         (&[], &[ref hd, ..]) | (&[hd, ..], &[])
+   |                 ^^^^^^
+help: to prevent move, use ref or ref mut
+   |
+LL |         (&[hd1, ..], &[ref hd2, ..])
+   |                        ^^^^^^^
+
+error[E0508]: cannot move out of type `[T]`, a non-copy slice
+  --> $DIR/issue-12567.rs:14:11
+   |
+LL |     match (l1, l2) {
+   |           ^^^^^^^^ cannot move out of here
+help: to prevent move, use ref or ref mut
+   |
+LL |         (&[], &[ref hd, ..]) | (&[hd, ..], &[])
+   |                 ^^^^^^
+help: to prevent move, use ref or ref mut
+   |
+LL |         (&[ref hd1, ..], &[hd2, ..])
+   |            ^^^^^^^
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0508`.
diff --git a/src/test/compile-fail/issue-12567.rs b/src/test/ui/issue-12567.rs
index 30cdd07b399..30cdd07b399 100644
--- a/src/test/compile-fail/issue-12567.rs
+++ b/src/test/ui/issue-12567.rs
diff --git a/src/test/ui/issue-12567.stderr b/src/test/ui/issue-12567.stderr
new file mode 100644
index 00000000000..60acffdcb06
--- /dev/null
+++ b/src/test/ui/issue-12567.stderr
@@ -0,0 +1,39 @@
+error[E0508]: cannot move out of type `[T]`, a non-copy slice
+  --> $DIR/issue-12567.rs:16:16
+   |
+LL |         (&[], &[hd, ..]) | (&[hd, ..], &[])
+   |                ^--^^^^^
+   |                ||
+   |                |hint: to prevent move, use `ref hd` or `ref mut hd`
+   |                cannot move out of here
+
+error[E0508]: cannot move out of type `[T]`, a non-copy slice
+  --> $DIR/issue-12567.rs:16:30
+   |
+LL |         (&[], &[hd, ..]) | (&[hd, ..], &[])
+   |                              ^--^^^^^
+   |                              ||
+   |                              |hint: to prevent move, use `ref hd` or `ref mut hd`
+   |                              cannot move out of here
+
+error[E0508]: cannot move out of type `[T]`, a non-copy slice
+  --> $DIR/issue-12567.rs:20:11
+   |
+LL |         (&[hd1, ..], &[hd2, ..])
+   |           ^---^^^^^
+   |           ||
+   |           |hint: to prevent move, use `ref hd1` or `ref mut hd1`
+   |           cannot move out of here
+
+error[E0508]: cannot move out of type `[T]`, a non-copy slice
+  --> $DIR/issue-12567.rs:20:23
+   |
+LL |         (&[hd1, ..], &[hd2, ..])
+   |                       ^---^^^^^
+   |                       ||
+   |                       |hint: to prevent move, use `ref hd2` or `ref mut hd2`
+   |                       cannot move out of here
+
+error: aborting due to 4 previous errors
+
+For more information about this error, try `rustc --explain E0508`.
diff --git a/src/test/compile-fail/issue-12796.rs b/src/test/ui/issue-12796.rs
index 0c3c82a99f2..0c3c82a99f2 100644
--- a/src/test/compile-fail/issue-12796.rs
+++ b/src/test/ui/issue-12796.rs
diff --git a/src/test/ui/issue-12796.stderr b/src/test/ui/issue-12796.stderr
new file mode 100644
index 00000000000..c8bedd3853c
--- /dev/null
+++ b/src/test/ui/issue-12796.stderr
@@ -0,0 +1,11 @@
+error[E0401]: can't use type parameters from outer function
+  --> $DIR/issue-12796.rs:13:22
+   |
+LL |         fn inner(_: &Self) {
+   |            -----     ^^^^ use of type variable from outer function
+   |            |
+   |            help: try using a local type parameter instead: `inner<Self>`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0401`.
diff --git a/src/test/compile-fail/issue-12863.rs b/src/test/ui/issue-12863.rs
index d3432410c54..d3432410c54 100644
--- a/src/test/compile-fail/issue-12863.rs
+++ b/src/test/ui/issue-12863.rs
diff --git a/src/test/ui/issue-12863.stderr b/src/test/ui/issue-12863.stderr
new file mode 100644
index 00000000000..eb2957a8225
--- /dev/null
+++ b/src/test/ui/issue-12863.stderr
@@ -0,0 +1,9 @@
+error[E0532]: expected unit struct/variant or constant, found function `foo::bar`
+  --> $DIR/issue-12863.rs:15:9
+   |
+LL |         foo::bar => {} //~ ERROR expected unit struct/variant or constant, found function `foo::bar`
+   |         ^^^^^^^^ not a unit struct/variant or constant
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0532`.
diff --git a/src/test/compile-fail/issue-12997-1.rs b/src/test/ui/issue-12997-1.rs
index 2d8d7857c99..2d8d7857c99 100644
--- a/src/test/compile-fail/issue-12997-1.rs
+++ b/src/test/ui/issue-12997-1.rs
diff --git a/src/test/ui/issue-12997-1.stderr b/src/test/ui/issue-12997-1.stderr
new file mode 100644
index 00000000000..856538417d9
--- /dev/null
+++ b/src/test/ui/issue-12997-1.stderr
@@ -0,0 +1,14 @@
+error: functions used as benches must have signature `fn(&mut Bencher) -> impl Termination`
+  --> $DIR/issue-12997-1.rs:16:1
+   |
+LL | fn foo() { } //~ ERROR functions used as benches
+   | ^^^^^^^^^^^^
+
+error: functions used as benches must have signature `fn(&mut Bencher) -> impl Termination`
+  --> $DIR/issue-12997-1.rs:19:1
+   |
+LL | fn bar(x: isize, y: isize) { } //~ ERROR functions used as benches
+   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+error: aborting due to 2 previous errors
+
diff --git a/src/test/compile-fail/issue-12997-2.rs b/src/test/ui/issue-12997-2.rs
index 8d3df68577b..8d3df68577b 100644
--- a/src/test/compile-fail/issue-12997-2.rs
+++ b/src/test/ui/issue-12997-2.rs
diff --git a/src/test/ui/issue-12997-2.stderr b/src/test/ui/issue-12997-2.stderr
new file mode 100644
index 00000000000..3030ee4779b
--- /dev/null
+++ b/src/test/ui/issue-12997-2.stderr
@@ -0,0 +1,12 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-12997-2.rs:16:1
+   |
+LL | fn bar(x: isize) { }
+   | ^^^^^^^^^^^^^^^^^^^^ expected isize, found mutable reference
+   |
+   = note: expected type `isize`
+              found type `&mut __test::test::Bencher`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-13033.rs b/src/test/ui/issue-13033.rs
index f1fd617717a..f1fd617717a 100644
--- a/src/test/compile-fail/issue-13033.rs
+++ b/src/test/ui/issue-13033.rs
diff --git a/src/test/ui/issue-13033.stderr b/src/test/ui/issue-13033.stderr
new file mode 100644
index 00000000000..2db3cb80a81
--- /dev/null
+++ b/src/test/ui/issue-13033.stderr
@@ -0,0 +1,15 @@
+error[E0053]: method `bar` has an incompatible type for trait
+  --> $DIR/issue-13033.rs:18:30
+   |
+LL |     fn bar(&mut self, other: &mut Foo);
+   |                              -------- type in trait
+...
+LL |     fn bar(&mut self, other: &Foo) {}
+   |                              ^^^^ types differ in mutability
+   |
+   = note: expected type `fn(&mut Baz, &mut dyn Foo)`
+              found type `fn(&mut Baz, &dyn Foo)`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0053`.
diff --git a/src/test/compile-fail/issue-13352.rs b/src/test/ui/issue-13352.rs
index e9d76c758cd..e9d76c758cd 100644
--- a/src/test/compile-fail/issue-13352.rs
+++ b/src/test/ui/issue-13352.rs
diff --git a/src/test/ui/issue-13352.stderr b/src/test/ui/issue-13352.stderr
new file mode 100644
index 00000000000..5324eb21186
--- /dev/null
+++ b/src/test/ui/issue-13352.stderr
@@ -0,0 +1,11 @@
+error[E0277]: cannot add `()` to `usize`
+  --> $DIR/issue-13352.rs:19:13
+   |
+LL |     2_usize + (loop {});
+   |             ^ no implementation for `usize + ()`
+   |
+   = help: the trait `std::ops::Add<()>` is not implemented for `usize`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/compile-fail/issue-13359.rs b/src/test/ui/issue-13359.rs
index e33859e8c19..e33859e8c19 100644
--- a/src/test/compile-fail/issue-13359.rs
+++ b/src/test/ui/issue-13359.rs
diff --git a/src/test/ui/issue-13359.stderr b/src/test/ui/issue-13359.stderr
new file mode 100644
index 00000000000..77f10be982b
--- /dev/null
+++ b/src/test/ui/issue-13359.stderr
@@ -0,0 +1,15 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-13359.rs:16:9
+   |
+LL |     foo(1*(1 as isize));
+   |         ^^^^^^^^^^^^^^ expected i16, found isize
+
+error[E0308]: mismatched types
+  --> $DIR/issue-13359.rs:20:9
+   |
+LL |     bar(1*(1 as usize));
+   |         ^^^^^^^^^^^^^^ expected u32, found usize
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-13404.rs b/src/test/ui/issue-13404.rs
index 0059e92e07f..0059e92e07f 100644
--- a/src/test/compile-fail/issue-13404.rs
+++ b/src/test/ui/issue-13404.rs
diff --git a/src/test/ui/issue-13404.stderr b/src/test/ui/issue-13404.stderr
new file mode 100644
index 00000000000..b71d3ceab5b
--- /dev/null
+++ b/src/test/ui/issue-13404.stderr
@@ -0,0 +1,9 @@
+error[E0432]: unresolved import `b::f`
+  --> $DIR/issue-13404.rs:12:5
+   |
+LL | use b::f; //~ ERROR: unresolved import `b::f` [E0432]
+   |     ^^^^ no `f` in `b`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0432`.
diff --git a/src/test/compile-fail/issue-13407.rs b/src/test/ui/issue-13407.rs
index afb2e867f45..afb2e867f45 100644
--- a/src/test/compile-fail/issue-13407.rs
+++ b/src/test/ui/issue-13407.rs
diff --git a/src/test/ui/issue-13407.stderr b/src/test/ui/issue-13407.stderr
new file mode 100644
index 00000000000..e5ef50e984a
--- /dev/null
+++ b/src/test/ui/issue-13407.stderr
@@ -0,0 +1,25 @@
+error[E0603]: unit struct `C` is private
+  --> $DIR/issue-13407.rs:16:5
+   |
+LL |     A::C = 1;
+   |     ^^^^
+
+error[E0308]: mismatched types
+  --> $DIR/issue-13407.rs:16:12
+   |
+LL |     A::C = 1;
+   |            ^ expected struct `A::C`, found integral variable
+   |
+   = note: expected type `A::C`
+              found type `{integer}`
+
+error[E0070]: invalid left-hand side expression
+  --> $DIR/issue-13407.rs:16:5
+   |
+LL |     A::C = 1;
+   |     ^^^^^^^^ left-hand of expression not valid
+
+error: aborting due to 3 previous errors
+
+Some errors occurred: E0070, E0308, E0603.
+For more information about an error, try `rustc --explain E0070`.
diff --git a/src/test/compile-fail/issue-13446.rs b/src/test/ui/issue-13446.rs
index 6ad3ec67b29..6ad3ec67b29 100644
--- a/src/test/compile-fail/issue-13446.rs
+++ b/src/test/ui/issue-13446.rs
diff --git a/src/test/ui/issue-13446.stderr b/src/test/ui/issue-13446.stderr
new file mode 100644
index 00000000000..68fece30c81
--- /dev/null
+++ b/src/test/ui/issue-13446.stderr
@@ -0,0 +1,13 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-13446.rs:16:26
+   |
+LL | static VEC: [u32; 256] = vec![];
+   |                          ^^^^^^ expected array of 256 elements, found struct `std::vec::Vec`
+   |
+   = note: expected type `[u32; 256]`
+              found type `std::vec::Vec<_>`
+   = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-13466.rs b/src/test/ui/issue-13466.rs
index abddf6ba7a3..abddf6ba7a3 100644
--- a/src/test/compile-fail/issue-13466.rs
+++ b/src/test/ui/issue-13466.rs
diff --git a/src/test/ui/issue-13466.stderr b/src/test/ui/issue-13466.stderr
new file mode 100644
index 00000000000..be845fb8e22
--- /dev/null
+++ b/src/test/ui/issue-13466.stderr
@@ -0,0 +1,21 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-13466.rs:18:9
+   |
+LL |         Ok(u) => u,
+   |         ^^^^^ expected enum `std::option::Option`, found enum `std::result::Result`
+   |
+   = note: expected type `std::option::Option<{integer}>`
+              found type `std::result::Result<_, _>`
+
+error[E0308]: mismatched types
+  --> $DIR/issue-13466.rs:24:9
+   |
+LL |         Err(e) => panic!(e)
+   |         ^^^^^^ expected enum `std::option::Option`, found enum `std::result::Result`
+   |
+   = note: expected type `std::option::Option<{integer}>`
+              found type `std::result::Result<_, _>`
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-13482-2.rs b/src/test/ui/issue-13482-2.rs
index fe7fbb176cc..fe7fbb176cc 100644
--- a/src/test/compile-fail/issue-13482-2.rs
+++ b/src/test/ui/issue-13482-2.rs
diff --git a/src/test/ui/issue-13482-2.stderr b/src/test/ui/issue-13482-2.stderr
new file mode 100644
index 00000000000..1ecae3b867a
--- /dev/null
+++ b/src/test/ui/issue-13482-2.stderr
@@ -0,0 +1,9 @@
+error[E0527]: pattern requires 0 elements but array has 2
+  --> $DIR/issue-13482-2.rs:16:9
+   |
+LL |         [] => None, //~ ERROR pattern requires 0 elements but array has 2
+   |         ^^ expected 2 elements
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0527`.
diff --git a/src/test/compile-fail/issue-13482.rs b/src/test/ui/issue-13482.rs
index 32a63b79a32..32a63b79a32 100644
--- a/src/test/compile-fail/issue-13482.rs
+++ b/src/test/ui/issue-13482.rs
diff --git a/src/test/ui/issue-13482.stderr b/src/test/ui/issue-13482.stderr
new file mode 100644
index 00000000000..95273bb46bc
--- /dev/null
+++ b/src/test/ui/issue-13482.stderr
@@ -0,0 +1,9 @@
+error[E0527]: pattern requires 0 elements but array has 2
+  --> $DIR/issue-13482.rs:14:5
+   |
+LL |     [] => None, //~ ERROR pattern requires 0 elements but array has 2
+   |     ^^ expected 2 elements
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0527`.
diff --git a/src/test/compile-fail/issue-13497-2.rs b/src/test/ui/issue-13497-2.rs
index 31716837493..31716837493 100644
--- a/src/test/compile-fail/issue-13497-2.rs
+++ b/src/test/ui/issue-13497-2.rs
diff --git a/src/test/ui/issue-13497-2.stderr b/src/test/ui/issue-13497-2.stderr
new file mode 100644
index 00000000000..72770f8c84c
--- /dev/null
+++ b/src/test/ui/issue-13497-2.stderr
@@ -0,0 +1,18 @@
+error[E0597]: `rawLines` does not live long enough
+  --> $DIR/issue-13497-2.rs:13:5
+   |
+LL |     rawLines //~ ERROR `rawLines` does not live long enough
+   |     ^^^^^^^^ borrowed value does not live long enough
+LL |         .iter().map(|l| l.trim()).collect()
+LL | }
+   | - borrowed value only lives until here
+   |
+note: borrowed value must be valid for the lifetime 'a as defined on the function body at 11:24...
+  --> $DIR/issue-13497-2.rs:11:24
+   |
+LL | fn read_lines_borrowed<'a>() -> Vec<&'a str> {
+   |                        ^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0597`.
diff --git a/src/test/compile-fail/issue-13497.rs b/src/test/ui/issue-13497.rs
index d544a92d9c3..d544a92d9c3 100644
--- a/src/test/compile-fail/issue-13497.rs
+++ b/src/test/ui/issue-13497.rs
diff --git a/src/test/ui/issue-13497.stderr b/src/test/ui/issue-13497.stderr
new file mode 100644
index 00000000000..ab6d041bd48
--- /dev/null
+++ b/src/test/ui/issue-13497.stderr
@@ -0,0 +1,12 @@
+error[E0106]: missing lifetime specifier
+  --> $DIR/issue-13497.rs:12:5
+   |
+LL |     &str //~ ERROR missing lifetime specifier
+   |     ^ expected lifetime parameter
+   |
+   = help: this function's return type contains a borrowed value, but there is no value for it to be borrowed from
+   = help: consider giving it a 'static lifetime
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0106`.
diff --git a/src/test/compile-fail/issue-1362.rs b/src/test/ui/issue-1362.rs
index d51db479599..d51db479599 100644
--- a/src/test/compile-fail/issue-1362.rs
+++ b/src/test/ui/issue-1362.rs
diff --git a/src/test/ui/issue-1362.stderr b/src/test/ui/issue-1362.stderr
new file mode 100644
index 00000000000..c19e256eb92
--- /dev/null
+++ b/src/test/ui/issue-1362.stderr
@@ -0,0 +1,9 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-1362.rs:14:16
+   |
+LL |   let x: u32 = 20i32; //~ ERROR mismatched types
+   |                ^^^^^ expected u32, found i32
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-13641.rs b/src/test/ui/issue-13641.rs
index 3b690e08f61..3b690e08f61 100644
--- a/src/test/compile-fail/issue-13641.rs
+++ b/src/test/ui/issue-13641.rs
diff --git a/src/test/ui/issue-13641.stderr b/src/test/ui/issue-13641.stderr
new file mode 100644
index 00000000000..0f96b5f66b1
--- /dev/null
+++ b/src/test/ui/issue-13641.stderr
@@ -0,0 +1,15 @@
+error[E0603]: struct `Foo` is private
+  --> $DIR/issue-13641.rs:19:5
+   |
+LL |     a::Foo::new();
+   |     ^^^^^^^^^^^
+
+error[E0603]: enum `Bar` is private
+  --> $DIR/issue-13641.rs:21:5
+   |
+LL |     a::Bar::new();
+   |     ^^^^^^^^^^^
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0603`.
diff --git a/src/test/compile-fail/issue-13727.rs b/src/test/ui/issue-13727.rs
index 2e815548e89..2e815548e89 100644
--- a/src/test/compile-fail/issue-13727.rs
+++ b/src/test/ui/issue-13727.rs
diff --git a/src/test/ui/issue-13727.stderr b/src/test/ui/issue-13727.stderr
new file mode 100644
index 00000000000..47b9a0211a9
--- /dev/null
+++ b/src/test/ui/issue-13727.stderr
@@ -0,0 +1,14 @@
+error: unreachable pattern
+  --> $DIR/issue-13727.rs:17:5
+   |
+LL |     512 => print!("0b1111/n"),
+   |     ^^^
+   |
+note: lint level defined here
+  --> $DIR/issue-13727.rs:12:9
+   |
+LL | #![deny(unreachable_patterns)]
+   |         ^^^^^^^^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-13847.rs b/src/test/ui/issue-13847.rs
index 0314f109a7c..0314f109a7c 100644
--- a/src/test/compile-fail/issue-13847.rs
+++ b/src/test/ui/issue-13847.rs
diff --git a/src/test/ui/issue-13847.stderr b/src/test/ui/issue-13847.stderr
new file mode 100644
index 00000000000..fad3245034d
--- /dev/null
+++ b/src/test/ui/issue-13847.stderr
@@ -0,0 +1,9 @@
+error[E0609]: no field `is_failure` on type `!`
+  --> $DIR/issue-13847.rs:12:12
+   |
+LL |     return.is_failure //~ ERROR no field `is_failure` on type `!`
+   |            ^^^^^^^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0609`.
diff --git a/src/test/compile-fail/issue-13853-2.rs b/src/test/ui/issue-13853-2.rs
index 1635a8f69a6..1635a8f69a6 100644
--- a/src/test/compile-fail/issue-13853-2.rs
+++ b/src/test/ui/issue-13853-2.rs
diff --git a/src/test/ui/issue-13853-2.stderr b/src/test/ui/issue-13853-2.stderr
new file mode 100644
index 00000000000..c15290fb1d9
--- /dev/null
+++ b/src/test/ui/issue-13853-2.stderr
@@ -0,0 +1,11 @@
+error[E0615]: attempted to take value of method `get` on type `std::boxed::Box<(dyn ResponseHook + 'static)>`
+  --> $DIR/issue-13853-2.rs:15:39
+   |
+LL | fn foo(res : Box<ResponseHook>) { res.get } //~ ERROR attempted to take value of method
+   |                                       ^^^
+   |
+   = help: maybe a `()` to call it is missing?
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0615`.
diff --git a/src/test/compile-fail/issue-13853-5.rs b/src/test/ui/issue-13853-5.rs
index 78b079a7c44..78b079a7c44 100644
--- a/src/test/compile-fail/issue-13853-5.rs
+++ b/src/test/ui/issue-13853-5.rs
diff --git a/src/test/ui/issue-13853-5.stderr b/src/test/ui/issue-13853-5.stderr
new file mode 100644
index 00000000000..e93b03b43ee
--- /dev/null
+++ b/src/test/ui/issue-13853-5.stderr
@@ -0,0 +1,9 @@
+error[E0207]: the type parameter `T` is not constrained by the impl trait, self type, or predicates
+  --> $DIR/issue-13853-5.rs:17:10
+   |
+LL | impl<'a, T: Deserializable> Deserializable for &'a str {
+   |          ^ unconstrained type parameter
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0207`.
diff --git a/src/test/compile-fail/issue-13853.rs b/src/test/ui/issue-13853.rs
index 86a6bdfd4dd..86a6bdfd4dd 100644
--- a/src/test/compile-fail/issue-13853.rs
+++ b/src/test/ui/issue-13853.rs
diff --git a/src/test/ui/issue-13853.stderr b/src/test/ui/issue-13853.stderr
new file mode 100644
index 00000000000..188bfd59301
--- /dev/null
+++ b/src/test/ui/issue-13853.stderr
@@ -0,0 +1,34 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-13853.rs:24:9
+   |
+LL |     fn nodes<'a, I: Iterator<Item=&'a N>>(&self) -> I
+   |                                                     - expected `I` because of return type
+...
+LL |         self.iter() //~ ERROR mismatched types
+   |         ^^^^^^^^^^^ expected type parameter, found struct `std::slice::Iter`
+   |
+   = note: expected type `I`
+              found type `std::slice::Iter<'_, N>`
+
+error[E0599]: no method named `iter` found for type `&G` in the current scope
+  --> $DIR/issue-13853.rs:37:23
+   |
+LL |     for node in graph.iter() { //~ ERROR no method named `iter` found
+   |                       ^^^^
+
+error[E0308]: mismatched types
+  --> $DIR/issue-13853.rs:47:13
+   |
+LL |     iterate(graph); //~ ERROR mismatched types
+   |             ^^^^^
+   |             |
+   |             expected reference, found struct `std::vec::Vec`
+   |             help: consider borrowing here: `&graph`
+   |
+   = note: expected type `&_`
+              found type `std::vec::Vec<Stuff>`
+
+error: aborting due to 3 previous errors
+
+Some errors occurred: E0308, E0599.
+For more information about an error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-14091-2.rs b/src/test/ui/issue-14091-2.rs
index d3823a8cc55..a4351733a87 100644
--- a/src/test/compile-fail/issue-14091-2.rs
+++ b/src/test/ui/issue-14091-2.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-// error-pattern: cannot apply unary operator `!` to type `BytePos`
+//
 
 // Very
 
@@ -23,4 +23,5 @@ fn main() {
     let x = BytePos(1);
 
     assert!(x, x);
+    //~^ ERROR cannot apply unary operator `!` to type `BytePos`
 }
diff --git a/src/test/ui/issue-14091-2.stderr b/src/test/ui/issue-14091-2.stderr
new file mode 100644
index 00000000000..ccabd801c85
--- /dev/null
+++ b/src/test/ui/issue-14091-2.stderr
@@ -0,0 +1,11 @@
+error[E0600]: cannot apply unary operator `!` to type `BytePos`
+  --> $DIR/issue-14091-2.rs:25:5
+   |
+LL |     assert!(x, x);
+   |     ^^^^^^^^^^^^^^ cannot apply unary operator `!`
+   |
+   = note: an implementation of `std::ops::Not` might be missing for `BytePos`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0600`.
diff --git a/src/test/compile-fail/issue-14091.rs b/src/test/ui/issue-14091.rs
index 9c594ef485f..9e436b8e629 100644
--- a/src/test/compile-fail/issue-14091.rs
+++ b/src/test/ui/issue-14091.rs
@@ -8,6 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-// error-pattern:mismatched types
-
-fn main(){assert!(1,1);}
+fn main(){
+    assert!(1,1);
+    //~^ ERROR mismatched types
+}
diff --git a/src/test/ui/issue-14091.stderr b/src/test/ui/issue-14091.stderr
new file mode 100644
index 00000000000..9db2a0e2a86
--- /dev/null
+++ b/src/test/ui/issue-14091.stderr
@@ -0,0 +1,12 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-14091.rs:12:5
+   |
+LL |     assert!(1,1);
+   |     ^^^^^^^^^^^^^ expected bool, found integral variable
+   |
+   = note: expected type `bool`
+              found type `{integer}`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-14221.rs b/src/test/ui/issue-14221.rs
index d11fe99c07f..d11fe99c07f 100644
--- a/src/test/compile-fail/issue-14221.rs
+++ b/src/test/ui/issue-14221.rs
diff --git a/src/test/ui/issue-14221.stderr b/src/test/ui/issue-14221.stderr
new file mode 100644
index 00000000000..9252a4f304f
--- /dev/null
+++ b/src/test/ui/issue-14221.stderr
@@ -0,0 +1,30 @@
+warning[E0170]: pattern binding `A` is named the same as one of the variants of the type `E`
+  --> $DIR/issue-14221.rs:23:13
+   |
+LL |             A => "A",
+   |             ^ help: to match on the variant, qualify the path: `E::A`
+
+warning[E0170]: pattern binding `B` is named the same as one of the variants of the type `E`
+  --> $DIR/issue-14221.rs:25:13
+   |
+LL |             B => "B", //~ ERROR: unreachable pattern
+   |             ^ help: to match on the variant, qualify the path: `E::B`
+
+error: unreachable pattern
+  --> $DIR/issue-14221.rs:25:13
+   |
+LL |             A => "A",
+   |             - matches any value
+LL | //~^ WARN pattern binding `A` is named the same as one of the variants of the type `E`
+LL |             B => "B", //~ ERROR: unreachable pattern
+   |             ^ unreachable pattern
+   |
+note: lint level defined here
+  --> $DIR/issue-14221.rs:11:9
+   |
+LL | #![deny(unreachable_patterns)]
+   |         ^^^^^^^^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0170`.
diff --git a/src/test/compile-fail/issue-14227.rs b/src/test/ui/issue-14227.rs
index 250e78ce246..250e78ce246 100644
--- a/src/test/compile-fail/issue-14227.rs
+++ b/src/test/ui/issue-14227.rs
diff --git a/src/test/ui/issue-14227.stderr b/src/test/ui/issue-14227.stderr
new file mode 100644
index 00000000000..f5f39465b18
--- /dev/null
+++ b/src/test/ui/issue-14227.stderr
@@ -0,0 +1,9 @@
+error[E0080]: could not evaluate static initializer
+  --> $DIR/issue-14227.rs:16:20
+   |
+LL | static CRASH: () = symbol;
+   |                    ^^^^^^ tried to read from foreign (extern) static
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0080`.
diff --git a/src/test/ui/issue-14285.nll.stderr b/src/test/ui/issue-14285.nll.stderr
new file mode 100644
index 00000000000..440365cae3e
--- /dev/null
+++ b/src/test/ui/issue-14285.nll.stderr
@@ -0,0 +1,17 @@
+warning: not reporting region error due to nll
+  --> $DIR/issue-14285.rs:22:7
+   |
+LL |     B(a)    //~ ERROR 22:5: 22:9: explicit lifetime required in the type of `a` [E0621]
+   |       ^
+
+error[E0621]: explicit lifetime required in the type of `a`
+  --> $DIR/issue-14285.rs:22:7
+   |
+LL | fn foo<'a>(a: &Foo) -> B<'a> {
+   |            - consider changing the type of `a` to `&'a (dyn Foo + 'a)`
+LL |     B(a)    //~ ERROR 22:5: 22:9: explicit lifetime required in the type of `a` [E0621]
+   |       ^ lifetime `'a` required
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0621`.
diff --git a/src/test/compile-fail/issue-14285.rs b/src/test/ui/issue-14285.rs
index dceecee6ca7..dceecee6ca7 100644
--- a/src/test/compile-fail/issue-14285.rs
+++ b/src/test/ui/issue-14285.rs
diff --git a/src/test/ui/issue-14285.stderr b/src/test/ui/issue-14285.stderr
new file mode 100644
index 00000000000..b5ab7bdb9d1
--- /dev/null
+++ b/src/test/ui/issue-14285.stderr
@@ -0,0 +1,11 @@
+error[E0621]: explicit lifetime required in the type of `a`
+  --> $DIR/issue-14285.rs:22:5
+   |
+LL | fn foo<'a>(a: &Foo) -> B<'a> {
+   |            - consider changing the type of `a` to `&'a (dyn Foo + 'a)`
+LL |     B(a)    //~ ERROR 22:5: 22:9: explicit lifetime required in the type of `a` [E0621]
+   |     ^^^^ lifetime `'a` required
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0621`.
diff --git a/src/test/compile-fail/issue-14309.rs b/src/test/ui/issue-14309.rs
index f76fa3e4a8e..f76fa3e4a8e 100644
--- a/src/test/compile-fail/issue-14309.rs
+++ b/src/test/ui/issue-14309.rs
diff --git a/src/test/ui/issue-14309.stderr b/src/test/ui/issue-14309.stderr
new file mode 100644
index 00000000000..e062c633ee6
--- /dev/null
+++ b/src/test/ui/issue-14309.stderr
@@ -0,0 +1,82 @@
+error: `extern` block uses type `A` which is not FFI-safe: this struct has unspecified layout
+  --> $DIR/issue-14309.rs:40:15
+   |
+LL |     fn foo(x: A); //~ ERROR type `A` which is not FFI-safe
+   |               ^
+   |
+note: lint level defined here
+  --> $DIR/issue-14309.rs:11:9
+   |
+LL | #![deny(improper_ctypes)]
+   |         ^^^^^^^^^^^^^^^
+   = help: consider adding a #[repr(C)] or #[repr(transparent)] attribute to this struct
+note: type defined here
+  --> $DIR/issue-14309.rs:14:1
+   |
+LL | / struct A {
+LL | |     x: i32
+LL | | }
+   | |_^
+
+error: `extern` block uses type `A` which is not FFI-safe: this struct has unspecified layout
+  --> $DIR/issue-14309.rs:41:15
+   |
+LL |     fn bar(x: B); //~ ERROR type `A`
+   |               ^
+   |
+   = help: consider adding a #[repr(C)] or #[repr(transparent)] attribute to this struct
+note: type defined here
+  --> $DIR/issue-14309.rs:14:1
+   |
+LL | / struct A {
+LL | |     x: i32
+LL | | }
+   | |_^
+
+error: `extern` block uses type `A` which is not FFI-safe: this struct has unspecified layout
+  --> $DIR/issue-14309.rs:43:15
+   |
+LL |     fn qux(x: A2); //~ ERROR type `A`
+   |               ^^
+   |
+   = help: consider adding a #[repr(C)] or #[repr(transparent)] attribute to this struct
+note: type defined here
+  --> $DIR/issue-14309.rs:14:1
+   |
+LL | / struct A {
+LL | |     x: i32
+LL | | }
+   | |_^
+
+error: `extern` block uses type `A` which is not FFI-safe: this struct has unspecified layout
+  --> $DIR/issue-14309.rs:44:16
+   |
+LL |     fn quux(x: B2); //~ ERROR type `A`
+   |                ^^
+   |
+   = help: consider adding a #[repr(C)] or #[repr(transparent)] attribute to this struct
+note: type defined here
+  --> $DIR/issue-14309.rs:14:1
+   |
+LL | / struct A {
+LL | |     x: i32
+LL | | }
+   | |_^
+
+error: `extern` block uses type `A` which is not FFI-safe: this struct has unspecified layout
+  --> $DIR/issue-14309.rs:46:16
+   |
+LL |     fn fred(x: D); //~ ERROR type `A`
+   |                ^
+   |
+   = help: consider adding a #[repr(C)] or #[repr(transparent)] attribute to this struct
+note: type defined here
+  --> $DIR/issue-14309.rs:14:1
+   |
+LL | / struct A {
+LL | |     x: i32
+LL | | }
+   | |_^
+
+error: aborting due to 5 previous errors
+
diff --git a/src/test/compile-fail/issue-14366.rs b/src/test/ui/issue-14366.rs
index 0b154d0a3ea..0b154d0a3ea 100644
--- a/src/test/compile-fail/issue-14366.rs
+++ b/src/test/ui/issue-14366.rs
diff --git a/src/test/ui/issue-14366.stderr b/src/test/ui/issue-14366.stderr
new file mode 100644
index 00000000000..260ca443689
--- /dev/null
+++ b/src/test/ui/issue-14366.stderr
@@ -0,0 +1,13 @@
+error[E0277]: the size for values of type `str` cannot be known at compilation time
+  --> $DIR/issue-14366.rs:12:14
+   |
+LL |     let _x = "test" as &::std::any::Any;
+   |              ^^^^^^ doesn't have a size known at compile-time
+   |
+   = help: the trait `std::marker::Sized` is not implemented for `str`
+   = note: to learn more, visit <https://doc.rust-lang.org/book/second-edition/ch19-04-advanced-types.html#dynamically-sized-types--sized>
+   = note: required for the cast to the object type `dyn std::any::Any`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/compile-fail/issue-1448-2.rs b/src/test/ui/issue-1448-2.rs
index ddfed3647c2..ddfed3647c2 100644
--- a/src/test/compile-fail/issue-1448-2.rs
+++ b/src/test/ui/issue-1448-2.rs
diff --git a/src/test/ui/issue-1448-2.stderr b/src/test/ui/issue-1448-2.stderr
new file mode 100644
index 00000000000..5769b0c3b9f
--- /dev/null
+++ b/src/test/ui/issue-1448-2.stderr
@@ -0,0 +1,9 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-1448-2.rs:16:24
+   |
+LL |     println!("{}", foo(10i32)); //~ ERROR mismatched types
+   |                        ^^^^^ expected u32, found i32
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-14541.rs b/src/test/ui/issue-14541.rs
index 84c600d2201..84c600d2201 100644
--- a/src/test/compile-fail/issue-14541.rs
+++ b/src/test/ui/issue-14541.rs
diff --git a/src/test/ui/issue-14541.stderr b/src/test/ui/issue-14541.stderr
new file mode 100644
index 00000000000..fcff500cfda
--- /dev/null
+++ b/src/test/ui/issue-14541.stderr
@@ -0,0 +1,12 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-14541.rs:15:9
+   |
+LL |     let vec3 { y: _, z: _ } = v;
+   |         ^^^^^^^^^^^^^^^^^^^ expected struct `vec2`, found struct `vec3`
+   |
+   = note: expected type `vec2`
+              found type `vec3`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-14721.rs b/src/test/ui/issue-14721.rs
index 58e8e10ee37..58e8e10ee37 100644
--- a/src/test/compile-fail/issue-14721.rs
+++ b/src/test/ui/issue-14721.rs
diff --git a/src/test/ui/issue-14721.stderr b/src/test/ui/issue-14721.stderr
new file mode 100644
index 00000000000..93e51140caa
--- /dev/null
+++ b/src/test/ui/issue-14721.stderr
@@ -0,0 +1,9 @@
+error[E0609]: no field `desc` on type `&str`
+  --> $DIR/issue-14721.rs:13:24
+   |
+LL |     println!("{}", foo.desc); //~ no field `desc` on type `&str`
+   |                        ^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0609`.
diff --git a/src/test/compile-fail/issue-1476.rs b/src/test/ui/issue-1476.rs
index 48bf71f5892..48bf71f5892 100644
--- a/src/test/compile-fail/issue-1476.rs
+++ b/src/test/ui/issue-1476.rs
diff --git a/src/test/ui/issue-1476.stderr b/src/test/ui/issue-1476.stderr
new file mode 100644
index 00000000000..afdda3e15da
--- /dev/null
+++ b/src/test/ui/issue-1476.stderr
@@ -0,0 +1,9 @@
+error[E0425]: cannot find value `x` in this scope
+  --> $DIR/issue-1476.rs:12:20
+   |
+LL |     println!("{}", x); //~ ERROR cannot find value `x` in this scope
+   |                    ^ not found in this scope
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0425`.
diff --git a/src/test/compile-fail/issue-14772.rs b/src/test/ui/issue-14772.rs
index aaaad67be52..aaaad67be52 100644
--- a/src/test/compile-fail/issue-14772.rs
+++ b/src/test/ui/issue-14772.rs
diff --git a/src/test/ui/issue-14772.stderr b/src/test/ui/issue-14772.stderr
new file mode 100644
index 00000000000..1116cd38edf
--- /dev/null
+++ b/src/test/ui/issue-14772.stderr
@@ -0,0 +1,8 @@
+error: only functions may be used as tests
+  --> $DIR/issue-14772.rs:14:1
+   |
+LL | mod foo {} //~ ERROR only functions may be used as tests
+   | ^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-14845.rs b/src/test/ui/issue-14845.rs
index 74f0833e8d1..74f0833e8d1 100644
--- a/src/test/compile-fail/issue-14845.rs
+++ b/src/test/ui/issue-14845.rs
diff --git a/src/test/ui/issue-14845.stderr b/src/test/ui/issue-14845.stderr
new file mode 100644
index 00000000000..a994026946e
--- /dev/null
+++ b/src/test/ui/issue-14845.stderr
@@ -0,0 +1,15 @@
+error[E0606]: casting `&[u8; 1]` as `*mut u8` is invalid
+  --> $DIR/issue-14845.rs:18:14
+   |
+LL |     let _f = &x.a as *mut u8; //~ ERROR casting
+   |              ^^^^^^^^^^^^^^^
+
+error[E0606]: casting `&[u8; 1]` as `*mut u8` is invalid
+  --> $DIR/issue-14845.rs:21:14
+   |
+LL |     let _v = &local as *mut u8; //~ ERROR casting
+   |              ^^^^^^^^^^^^^^^^^
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0606`.
diff --git a/src/test/compile-fail/issue-14853.rs b/src/test/ui/issue-14853.rs
index e4da3e4fa43..e4da3e4fa43 100644
--- a/src/test/compile-fail/issue-14853.rs
+++ b/src/test/ui/issue-14853.rs
diff --git a/src/test/ui/issue-14853.stderr b/src/test/ui/issue-14853.stderr
new file mode 100644
index 00000000000..6c2f6bb9c69
--- /dev/null
+++ b/src/test/ui/issue-14853.stderr
@@ -0,0 +1,12 @@
+error[E0276]: impl has stricter requirements than trait
+  --> $DIR/issue-14853.rs:22:5
+   |
+LL |     fn yay<T: Debug>(_: Option<Self>, thing: &[T]);
+   |     ----------------------------------------------- definition of `yay` from trait
+...
+LL |     fn yay<T: Str>(_:Option<X>, thing: &[T]) {
+   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ impl has extra requirement `T: Str`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0276`.
diff --git a/src/test/compile-fail/issue-14915.rs b/src/test/ui/issue-14915.rs
index 810d6656a8f..810d6656a8f 100644
--- a/src/test/compile-fail/issue-14915.rs
+++ b/src/test/ui/issue-14915.rs
diff --git a/src/test/ui/issue-14915.stderr b/src/test/ui/issue-14915.stderr
new file mode 100644
index 00000000000..aa418f5df86
--- /dev/null
+++ b/src/test/ui/issue-14915.stderr
@@ -0,0 +1,11 @@
+error[E0369]: binary operation `+` cannot be applied to type `std::boxed::Box<isize>`
+  --> $DIR/issue-14915.rs:16:20
+   |
+LL |     println!("{}", x + 1);
+   |                    ^^^^^
+   |
+   = note: an implementation of `std::ops::Add` might be missing for `std::boxed::Box<isize>`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0369`.
diff --git a/src/test/ui/issue-15034.nll.stderr b/src/test/ui/issue-15034.nll.stderr
new file mode 100644
index 00000000000..19fe83f8f6c
--- /dev/null
+++ b/src/test/ui/issue-15034.nll.stderr
@@ -0,0 +1,17 @@
+warning: not reporting region error due to nll
+  --> $DIR/issue-15034.rs:27:9
+   |
+LL |         Parser { lexer: lexer }
+   |         ^^^^^^
+
+error[E0621]: explicit lifetime required in the type of `lexer`
+  --> $DIR/issue-15034.rs:27:25
+   |
+LL |     pub fn new(lexer: &'a mut Lexer) -> Parser<'a> {
+   |                ----- consider changing the type of `lexer` to `&'a mut Lexer<'a>`
+LL |         Parser { lexer: lexer }
+   |                         ^^^^^ lifetime `'a` required
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0621`.
diff --git a/src/test/compile-fail/issue-15034.rs b/src/test/ui/issue-15034.rs
index a62e46820d3..a62e46820d3 100644
--- a/src/test/compile-fail/issue-15034.rs
+++ b/src/test/ui/issue-15034.rs
diff --git a/src/test/ui/issue-15034.stderr b/src/test/ui/issue-15034.stderr
new file mode 100644
index 00000000000..3bbf4235a29
--- /dev/null
+++ b/src/test/ui/issue-15034.stderr
@@ -0,0 +1,11 @@
+error[E0621]: explicit lifetime required in the type of `lexer`
+  --> $DIR/issue-15034.rs:27:25
+   |
+LL |     pub fn new(lexer: &'a mut Lexer) -> Parser<'a> {
+   |                ----- consider changing the type of `lexer` to `&'a mut Lexer<'a>`
+LL |         Parser { lexer: lexer }
+   |                         ^^^^^ lifetime `'a` required
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0621`.
diff --git a/src/test/compile-fail/issue-15094.rs b/src/test/ui/issue-15094.rs
index 1dd6763cbe5..1dd6763cbe5 100644
--- a/src/test/compile-fail/issue-15094.rs
+++ b/src/test/ui/issue-15094.rs
diff --git a/src/test/ui/issue-15094.stderr b/src/test/ui/issue-15094.stderr
new file mode 100644
index 00000000000..7928a6be350
--- /dev/null
+++ b/src/test/ui/issue-15094.stderr
@@ -0,0 +1,12 @@
+error[E0053]: method `call_once` has an incompatible type for trait
+  --> $DIR/issue-15094.rs:21:5
+   |
+LL |     fn call_once(self, _args: ()) {
+   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected "rust-call" fn, found "Rust" fn
+   |
+   = note: expected type `extern "rust-call" fn(Debuger<T>, ())`
+              found type `fn(Debuger<T>, ())`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0053`.
diff --git a/src/test/compile-fail/issue-15129.rs b/src/test/ui/issue-15129.rs
index 7a7ba46de74..7a7ba46de74 100644
--- a/src/test/compile-fail/issue-15129.rs
+++ b/src/test/ui/issue-15129.rs
diff --git a/src/test/ui/issue-15129.stderr b/src/test/ui/issue-15129.stderr
new file mode 100644
index 00000000000..e65e6516222
--- /dev/null
+++ b/src/test/ui/issue-15129.stderr
@@ -0,0 +1,9 @@
+error[E0004]: non-exhaustive patterns: `(T1(()), V2(_))` not covered
+  --> $DIR/issue-15129.rs:22:11
+   |
+LL |     match (T::T1(()), V::V2(true)) {
+   |           ^^^^^^^^^^^^^^^^^^^^^^^^ pattern `(T1(()), V2(_))` not covered
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0004`.
diff --git a/src/test/compile-fail/issue-15167.rs b/src/test/ui/issue-15167.rs
index d224b8a548c..d224b8a548c 100644
--- a/src/test/compile-fail/issue-15167.rs
+++ b/src/test/ui/issue-15167.rs
diff --git a/src/test/ui/issue-15167.stderr b/src/test/ui/issue-15167.stderr
new file mode 100644
index 00000000000..b15c493ad69
--- /dev/null
+++ b/src/test/ui/issue-15167.stderr
@@ -0,0 +1,39 @@
+error[E0425]: cannot find value `n` in this scope
+  --> $DIR/issue-15167.rs:13:25
+   |
+LL | macro_rules! f { () => (n) }
+   |                         ^ not found in this scope
+...
+LL |         println!("{}", f!());
+   |                        ---- in this macro invocation
+
+error[E0425]: cannot find value `n` in this scope
+  --> $DIR/issue-15167.rs:13:25
+   |
+LL | macro_rules! f { () => (n) }
+   |                         ^ not found in this scope
+...
+LL |         println!("{}", f!());
+   |                        ---- in this macro invocation
+
+error[E0425]: cannot find value `n` in this scope
+  --> $DIR/issue-15167.rs:13:25
+   |
+LL | macro_rules! f { () => (n) }
+   |                         ^ not found in this scope
+...
+LL |         println!("{}", f!());
+   |                        ---- in this macro invocation
+
+error[E0425]: cannot find value `n` in this scope
+  --> $DIR/issue-15167.rs:13:25
+   |
+LL | macro_rules! f { () => (n) }
+   |                         ^ not found in this scope
+...
+LL |         println!("{}", f!());
+   |                        ---- in this macro invocation
+
+error: aborting due to 4 previous errors
+
+For more information about this error, try `rustc --explain E0425`.
diff --git a/src/test/compile-fail/issue-15207.rs b/src/test/ui/issue-15207.rs
index 70da8cf4169..70da8cf4169 100644
--- a/src/test/compile-fail/issue-15207.rs
+++ b/src/test/ui/issue-15207.rs
diff --git a/src/test/ui/issue-15207.stderr b/src/test/ui/issue-15207.stderr
new file mode 100644
index 00000000000..77e52012277
--- /dev/null
+++ b/src/test/ui/issue-15207.stderr
@@ -0,0 +1,9 @@
+error[E0599]: no method named `push` found for type `!` in the current scope
+  --> $DIR/issue-15207.rs:13:15
+   |
+LL |         break.push(1) //~ ERROR no method named `push` found for type `!`
+   |               ^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0599`.
diff --git a/src/test/compile-fail/issue-15381.rs b/src/test/ui/issue-15381.rs
index 1cdd803971b..1cdd803971b 100644
--- a/src/test/compile-fail/issue-15381.rs
+++ b/src/test/ui/issue-15381.rs
diff --git a/src/test/ui/issue-15381.stderr b/src/test/ui/issue-15381.stderr
new file mode 100644
index 00000000000..7a936a82108
--- /dev/null
+++ b/src/test/ui/issue-15381.stderr
@@ -0,0 +1,9 @@
+error[E0005]: refutable pattern in `for` loop binding: `&[]` not covered
+  --> $DIR/issue-15381.rs:14:9
+   |
+LL |     for &[x,y,z] in values.chunks(3).filter(|&xs| xs.len() == 3) {
+   |         ^^^^^^^^ pattern `&[]` not covered
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0005`.
diff --git a/src/test/compile-fail/issue-15756.rs b/src/test/ui/issue-15756.rs
index c123e85a0e0..c123e85a0e0 100644
--- a/src/test/compile-fail/issue-15756.rs
+++ b/src/test/ui/issue-15756.rs
diff --git a/src/test/ui/issue-15756.stderr b/src/test/ui/issue-15756.stderr
new file mode 100644
index 00000000000..af70f125302
--- /dev/null
+++ b/src/test/ui/issue-15756.stderr
@@ -0,0 +1,13 @@
+error[E0277]: the size for values of type `[T]` cannot be known at compilation time
+  --> $DIR/issue-15756.rs:17:10
+   |
+LL |     &mut something
+   |          ^^^^^^^^^ doesn't have a size known at compile-time
+   |
+   = help: the trait `std::marker::Sized` is not implemented for `[T]`
+   = note: to learn more, visit <https://doc.rust-lang.org/book/second-edition/ch19-04-advanced-types.html#dynamically-sized-types--sized>
+   = note: all local variables must have a statically known size
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/compile-fail/issue-15783.rs b/src/test/ui/issue-15783.rs
index 37a2f1582bf..37a2f1582bf 100644
--- a/src/test/compile-fail/issue-15783.rs
+++ b/src/test/ui/issue-15783.rs
diff --git a/src/test/ui/issue-15783.stderr b/src/test/ui/issue-15783.stderr
new file mode 100644
index 00000000000..d565bad2448
--- /dev/null
+++ b/src/test/ui/issue-15783.stderr
@@ -0,0 +1,12 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-15783.rs:18:19
+   |
+LL |     let msg = foo(x);
+   |                   ^ expected slice, found array of 1 elements
+   |
+   = note: expected type `std::option::Option<&[&str]>`
+              found type `std::option::Option<&[&str; 1]>`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-15896.rs b/src/test/ui/issue-15896.rs
index 35ef9ba2b4b..35ef9ba2b4b 100644
--- a/src/test/compile-fail/issue-15896.rs
+++ b/src/test/ui/issue-15896.rs
diff --git a/src/test/ui/issue-15896.stderr b/src/test/ui/issue-15896.stderr
new file mode 100644
index 00000000000..b41848c8cdf
--- /dev/null
+++ b/src/test/ui/issue-15896.stderr
@@ -0,0 +1,12 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-15896.rs:21:11
+   |
+LL |           Tau{t: x},
+   |           ^^^^^^^^^ expected enum `main::R`, found struct `main::Tau`
+   |
+   = note: expected type `main::R`
+              found type `main::Tau`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-15919.rs b/src/test/ui/issue-15919.rs
index df7e7c102b2..df7e7c102b2 100644
--- a/src/test/compile-fail/issue-15919.rs
+++ b/src/test/ui/issue-15919.rs
diff --git a/src/test/ui/issue-15919.stderr b/src/test/ui/issue-15919.stderr
new file mode 100644
index 00000000000..a69e7b43e25
--- /dev/null
+++ b/src/test/ui/issue-15919.stderr
@@ -0,0 +1,4 @@
+error: the type `[usize; 18446744073709551615]` is too big for the current architecture
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-15965.rs b/src/test/ui/issue-15965.rs
index 76ba5a0f4b3..76ba5a0f4b3 100644
--- a/src/test/compile-fail/issue-15965.rs
+++ b/src/test/ui/issue-15965.rs
diff --git a/src/test/ui/issue-15965.stderr b/src/test/ui/issue-15965.stderr
new file mode 100644
index 00000000000..216c6460c77
--- /dev/null
+++ b/src/test/ui/issue-15965.stderr
@@ -0,0 +1,13 @@
+error[E0282]: type annotations needed
+  --> $DIR/issue-15965.rs:13:9
+   |
+LL | /         { return () }
+LL | | //~^ ERROR type annotations needed [E0282]
+LL | |     ()
+   | |______^ cannot infer type for `_`
+   |
+   = note: type must be known at this point
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0282`.
diff --git a/src/test/compile-fail/issue-16048.rs b/src/test/ui/issue-16048.rs
index cda83fe54b0..cda83fe54b0 100644
--- a/src/test/compile-fail/issue-16048.rs
+++ b/src/test/ui/issue-16048.rs
diff --git a/src/test/ui/issue-16048.stderr b/src/test/ui/issue-16048.stderr
new file mode 100644
index 00000000000..97883fb2a95
--- /dev/null
+++ b/src/test/ui/issue-16048.stderr
@@ -0,0 +1,12 @@
+error[E0195]: lifetime parameters or bounds on method `get` do not match the trait declaration
+  --> $DIR/issue-16048.rs:31:11
+   |
+LL |     fn get<'p, T : Test<'p>>(&self) -> T;
+   |           ------------------ lifetimes in impl do not match this method in trait
+...
+LL |     fn get<'p, T : Test<'a>>(&self) -> T {
+   |           ^^^^^^^^^^^^^^^^^^ lifetimes do not match method in trait
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0195`.
diff --git a/src/test/compile-fail/issue-16098.rs b/src/test/ui/issue-16098.rs
index 68ac19b383f..68ac19b383f 100644
--- a/src/test/compile-fail/issue-16098.rs
+++ b/src/test/ui/issue-16098.rs
diff --git a/src/test/ui/issue-16098.stderr b/src/test/ui/issue-16098.stderr
new file mode 100644
index 00000000000..31162ca50cc
--- /dev/null
+++ b/src/test/ui/issue-16098.stderr
@@ -0,0 +1,13 @@
+error: recursion limit reached while expanding the macro `prob1`
+  --> $DIR/issue-16098.rs:17:18
+   |
+LL |             $n + prob1!($n - 1); //~ ERROR recursion limit reached while expanding the macro `prob1`
+   |                  ^^^^^^^^^^^^^^
+...
+LL |     println!("Problem 1: {}", prob1!(1000));
+   |                               ------------ in this macro invocation
+   |
+   = help: consider adding a `#![recursion_limit="128"]` attribute to your crate
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-16149.rs b/src/test/ui/issue-16149.rs
index 60117bd88d4..60117bd88d4 100644
--- a/src/test/compile-fail/issue-16149.rs
+++ b/src/test/ui/issue-16149.rs
diff --git a/src/test/ui/issue-16149.stderr b/src/test/ui/issue-16149.stderr
new file mode 100644
index 00000000000..b0b6e9dfcd0
--- /dev/null
+++ b/src/test/ui/issue-16149.stderr
@@ -0,0 +1,12 @@
+error[E0530]: match bindings cannot shadow statics
+  --> $DIR/issue-16149.rs:17:9
+   |
+LL |     static externalValue: isize;
+   |     ---------------------------- a static `externalValue` is defined here
+...
+LL |         externalValue => true,
+   |         ^^^^^^^^^^^^^ cannot be named the same as a static
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0530`.
diff --git a/src/test/compile-fail/issue-16250.rs b/src/test/ui/issue-16250.rs
index f9d01003005..f9d01003005 100644
--- a/src/test/compile-fail/issue-16250.rs
+++ b/src/test/ui/issue-16250.rs
diff --git a/src/test/ui/issue-16250.stderr b/src/test/ui/issue-16250.stderr
new file mode 100644
index 00000000000..c826b20b65f
--- /dev/null
+++ b/src/test/ui/issue-16250.stderr
@@ -0,0 +1,21 @@
+error: `extern` block uses type `Foo` which is not FFI-safe: this struct has unspecified layout
+  --> $DIR/issue-16250.rs:16:20
+   |
+LL |     pub fn foo(x: (Foo)); //~ ERROR unspecified layout
+   |                    ^^^
+   |
+note: lint level defined here
+  --> $DIR/issue-16250.rs:11:9
+   |
+LL | #![deny(warnings)]
+   |         ^^^^^^^^
+   = note: #[deny(improper_ctypes)] implied by #[deny(warnings)]
+   = help: consider adding a #[repr(C)] or #[repr(transparent)] attribute to this struct
+note: type defined here
+  --> $DIR/issue-16250.rs:13:1
+   |
+LL | pub struct Foo;
+   | ^^^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-16338.rs b/src/test/ui/issue-16338.rs
index 438073e3b2f..438073e3b2f 100644
--- a/src/test/compile-fail/issue-16338.rs
+++ b/src/test/ui/issue-16338.rs
diff --git a/src/test/ui/issue-16338.stderr b/src/test/ui/issue-16338.stderr
new file mode 100644
index 00000000000..c670f1e3e9c
--- /dev/null
+++ b/src/test/ui/issue-16338.stderr
@@ -0,0 +1,12 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-16338.rs:17:9
+   |
+LL |     let Slice { data: data, len: len } = "foo";
+   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected str, found struct `Slice`
+   |
+   = note: expected type `str`
+              found type `Slice<_>`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-16401.rs b/src/test/ui/issue-16401.rs
index 3060bbea43c..3060bbea43c 100644
--- a/src/test/compile-fail/issue-16401.rs
+++ b/src/test/ui/issue-16401.rs
diff --git a/src/test/ui/issue-16401.stderr b/src/test/ui/issue-16401.stderr
new file mode 100644
index 00000000000..179415c7621
--- /dev/null
+++ b/src/test/ui/issue-16401.stderr
@@ -0,0 +1,12 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-16401.rs:18:9
+   |
+LL |         Slice { data: data, len: len } => (),
+   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected (), found struct `Slice`
+   |
+   = note: expected type `()`
+              found type `Slice<_>`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-16538.rs b/src/test/ui/issue-16538.rs
index cc652119377..cc652119377 100644
--- a/src/test/compile-fail/issue-16538.rs
+++ b/src/test/ui/issue-16538.rs
diff --git a/src/test/ui/issue-16538.stderr b/src/test/ui/issue-16538.stderr
new file mode 100644
index 00000000000..9bc3590ebab
--- /dev/null
+++ b/src/test/ui/issue-16538.stderr
@@ -0,0 +1,19 @@
+error[E0015]: calls in statics are limited to constant functions, tuple structs and tuple variants
+  --> $DIR/issue-16538.rs:23:27
+   |
+LL | static foo: *const Y::X = Y::foo(Y::x as *const Y::X);
+   |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+error[E0277]: `*const usize` cannot be shared between threads safely
+  --> $DIR/issue-16538.rs:23:1
+   |
+LL | static foo: *const Y::X = Y::foo(Y::x as *const Y::X);
+   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `*const usize` cannot be shared between threads safely
+   |
+   = help: the trait `std::marker::Sync` is not implemented for `*const usize`
+   = note: shared static variables must have a type that implements `Sync`
+
+error: aborting due to 2 previous errors
+
+Some errors occurred: E0015, E0277.
+For more information about an error, try `rustc --explain E0015`.
diff --git a/src/test/compile-fail/issue-16562.rs b/src/test/ui/issue-16562.rs
index a400263a243..a400263a243 100644
--- a/src/test/compile-fail/issue-16562.rs
+++ b/src/test/ui/issue-16562.rs
diff --git a/src/test/ui/issue-16562.stderr b/src/test/ui/issue-16562.stderr
new file mode 100644
index 00000000000..a4525033e25
--- /dev/null
+++ b/src/test/ui/issue-16562.stderr
@@ -0,0 +1,9 @@
+error[E0207]: the type parameter `T` is not constrained by the impl trait, self type, or predicates
+  --> $DIR/issue-16562.rs:20:6
+   |
+LL | impl<T, M: MatrixShape> Collection for Col<M, usize> {
+   |      ^ unconstrained type parameter
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0207`.
diff --git a/src/test/ui/issue-16683.nll.stderr b/src/test/ui/issue-16683.nll.stderr
new file mode 100644
index 00000000000..d789f580b27
--- /dev/null
+++ b/src/test/ui/issue-16683.nll.stderr
@@ -0,0 +1,22 @@
+warning: not reporting region error due to nll
+  --> $DIR/issue-16683.rs:14:9
+   |
+LL |         self.a(); //~ ERROR cannot infer
+   |         ^^^^
+
+warning: not reporting region error due to nll
+  --> $DIR/issue-16683.rs:14:14
+   |
+LL |         self.a(); //~ ERROR cannot infer
+   |              ^
+
+error: unsatisfied lifetime constraints
+  --> $DIR/issue-16683.rs:14:9
+   |
+LL |     fn b(&self) {
+   |          - let's call the lifetime of this reference `'1`
+LL |         self.a(); //~ ERROR cannot infer
+   |         ^^^^^^^^ argument requires that `'1` must outlive `'a`
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-16683.rs b/src/test/ui/issue-16683.rs
index fcbf8a3d351..fcbf8a3d351 100644
--- a/src/test/compile-fail/issue-16683.rs
+++ b/src/test/ui/issue-16683.rs
diff --git a/src/test/ui/issue-16683.stderr b/src/test/ui/issue-16683.stderr
new file mode 100644
index 00000000000..ceb5347ca80
--- /dev/null
+++ b/src/test/ui/issue-16683.stderr
@@ -0,0 +1,30 @@
+error[E0495]: cannot infer an appropriate lifetime for autoref due to conflicting requirements
+  --> $DIR/issue-16683.rs:14:14
+   |
+LL |         self.a(); //~ ERROR cannot infer
+   |              ^
+   |
+note: first, the lifetime cannot outlive the anonymous lifetime #1 defined on the method body at 13:5...
+  --> $DIR/issue-16683.rs:13:5
+   |
+LL | /     fn b(&self) {
+LL | |         self.a(); //~ ERROR cannot infer
+LL | |     }
+   | |_____^
+note: ...so that reference does not outlive borrowed content
+  --> $DIR/issue-16683.rs:14:9
+   |
+LL |         self.a(); //~ ERROR cannot infer
+   |         ^^^^
+note: but, the lifetime must be valid for the lifetime 'a as defined on the trait at 11:9...
+  --> $DIR/issue-16683.rs:11:9
+   |
+LL | trait T<'a> {
+   |         ^^
+   = note: ...so that the types are compatible:
+           expected &'a Self
+              found &Self
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0495`.
diff --git a/src/test/ui/issue-16922.nll.stderr b/src/test/ui/issue-16922.nll.stderr
new file mode 100644
index 00000000000..902baaf579f
--- /dev/null
+++ b/src/test/ui/issue-16922.nll.stderr
@@ -0,0 +1,17 @@
+warning: not reporting region error due to nll
+  --> $DIR/issue-16922.rs:14:14
+   |
+LL |     Box::new(value) as Box<Any>
+   |              ^^^^^
+
+error[E0621]: explicit lifetime required in the type of `value`
+  --> $DIR/issue-16922.rs:14:5
+   |
+LL | fn foo<T: Any>(value: &T) -> Box<Any> {
+   |                ----- consider changing the type of `value` to `&'static T`
+LL |     Box::new(value) as Box<Any>
+   |     ^^^^^^^^^^^^^^^ lifetime `'static` required
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0621`.
diff --git a/src/test/compile-fail/issue-16922.rs b/src/test/ui/issue-16922.rs
index 1768c834cb3..1768c834cb3 100644
--- a/src/test/compile-fail/issue-16922.rs
+++ b/src/test/ui/issue-16922.rs
diff --git a/src/test/ui/issue-16922.stderr b/src/test/ui/issue-16922.stderr
new file mode 100644
index 00000000000..cf81d4b4d08
--- /dev/null
+++ b/src/test/ui/issue-16922.stderr
@@ -0,0 +1,11 @@
+error[E0621]: explicit lifetime required in the type of `value`
+  --> $DIR/issue-16922.rs:14:5
+   |
+LL | fn foo<T: Any>(value: &T) -> Box<Any> {
+   |                ----- consider changing the type of `value` to `&'static T`
+LL |     Box::new(value) as Box<Any>
+   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^ lifetime `'static` required
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0621`.
diff --git a/src/test/compile-fail/issue-16939.rs b/src/test/ui/issue-16939.rs
index e16c58b8a6c..e16c58b8a6c 100644
--- a/src/test/compile-fail/issue-16939.rs
+++ b/src/test/ui/issue-16939.rs
diff --git a/src/test/ui/issue-16939.stderr b/src/test/ui/issue-16939.stderr
new file mode 100644
index 00000000000..23848049370
--- /dev/null
+++ b/src/test/ui/issue-16939.stderr
@@ -0,0 +1,9 @@
+error[E0057]: this function takes 0 parameters but 1 parameter was supplied
+  --> $DIR/issue-16939.rs:15:9
+   |
+LL |     |t| f(t); //~ ERROR E0057
+   |         ^^^^ expected 0 parameters
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0057`.
diff --git a/src/test/compile-fail/issue-16966.rs b/src/test/ui/issue-16966.rs
index ecf81c8af17..ecf81c8af17 100644
--- a/src/test/compile-fail/issue-16966.rs
+++ b/src/test/ui/issue-16966.rs
diff --git a/src/test/ui/issue-16966.stderr b/src/test/ui/issue-16966.stderr
new file mode 100644
index 00000000000..f7129a6fe1b
--- /dev/null
+++ b/src/test/ui/issue-16966.stderr
@@ -0,0 +1,13 @@
+error[E0282]: type annotations needed
+  --> $DIR/issue-16966.rs:13:5
+   |
+LL | /     panic!(
+LL | |         std::default::Default::default()
+LL | |     );
+   | |______^ cannot infer type for `M`
+   |
+   = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0282`.
diff --git a/src/test/compile-fail/issue-1697.rs b/src/test/ui/issue-1697.rs
index f8a68264339..f8a68264339 100644
--- a/src/test/compile-fail/issue-1697.rs
+++ b/src/test/ui/issue-1697.rs
diff --git a/src/test/ui/issue-1697.stderr b/src/test/ui/issue-1697.stderr
new file mode 100644
index 00000000000..28a7fbcaabe
--- /dev/null
+++ b/src/test/ui/issue-1697.stderr
@@ -0,0 +1,9 @@
+error[E0432]: unresolved import `unresolved`
+  --> $DIR/issue-1697.rs:13:5
+   |
+LL | use unresolved::*; //~ ERROR unresolved import `unresolved` [E0432]
+   |     ^^^^^^^^^^ Maybe a missing `extern crate unresolved;`?
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0432`.
diff --git a/src/test/compile-fail/issue-16994.rs b/src/test/ui/issue-16994.rs
index ae4e8ce1df8..ae4e8ce1df8 100644
--- a/src/test/compile-fail/issue-16994.rs
+++ b/src/test/ui/issue-16994.rs
diff --git a/src/test/ui/issue-16994.stderr b/src/test/ui/issue-16994.stderr
new file mode 100644
index 00000000000..8392b9da411
--- /dev/null
+++ b/src/test/ui/issue-16994.stderr
@@ -0,0 +1,10 @@
+error: compilation successful
+  --> $DIR/issue-16994.rs:18:1
+   |
+LL | / fn main() { //~ ERROR compilation successful
+LL | |     cb(Box::new(|(k, &(ref v, b))| (*k, v.clone(), b)));
+LL | | }
+   | |_^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-17001.rs b/src/test/ui/issue-17001.rs
index 413e8b464ff..413e8b464ff 100644
--- a/src/test/compile-fail/issue-17001.rs
+++ b/src/test/ui/issue-17001.rs
diff --git a/src/test/ui/issue-17001.stderr b/src/test/ui/issue-17001.stderr
new file mode 100644
index 00000000000..a8e0cd8591b
--- /dev/null
+++ b/src/test/ui/issue-17001.stderr
@@ -0,0 +1,9 @@
+error[E0574]: expected struct, variant or union type, found module `foo`
+  --> $DIR/issue-17001.rs:14:13
+   |
+LL |     let p = foo { x: () }; //~ ERROR expected struct, variant or union type, found module `foo`
+   |             ^^^ not a struct, variant or union type
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0574`.
diff --git a/src/test/compile-fail/issue-17025.rs b/src/test/ui/issue-17025.rs
index f250103b144..f250103b144 100644
--- a/src/test/compile-fail/issue-17025.rs
+++ b/src/test/ui/issue-17025.rs
diff --git a/src/test/compile-fail/issue-17033.rs b/src/test/ui/issue-17033.rs
index 1cd43cbb0f8..1cd43cbb0f8 100644
--- a/src/test/compile-fail/issue-17033.rs
+++ b/src/test/ui/issue-17033.rs
diff --git a/src/test/ui/issue-17033.stderr b/src/test/ui/issue-17033.stderr
new file mode 100644
index 00000000000..d6884f18881
--- /dev/null
+++ b/src/test/ui/issue-17033.stderr
@@ -0,0 +1,15 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-17033.rs:12:10
+   |
+LL |     (*p)(()) //~  ERROR mismatched types
+   |          ^^
+   |          |
+   |          expected &mut (), found ()
+   |          help: consider mutably borrowing here: `&mut ()`
+   |
+   = note: expected type `&mut ()`
+              found type `()`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-17252.rs b/src/test/ui/issue-17252.rs
index 1c3e6890c8e..1c3e6890c8e 100644
--- a/src/test/compile-fail/issue-17252.rs
+++ b/src/test/ui/issue-17252.rs
diff --git a/src/test/ui/issue-17252.stderr b/src/test/ui/issue-17252.stderr
new file mode 100644
index 00000000000..8f97a841666
--- /dev/null
+++ b/src/test/ui/issue-17252.stderr
@@ -0,0 +1,16 @@
+error[E0391]: cycle detected when processing `FOO`
+  --> $DIR/issue-17252.rs:11:20
+   |
+LL | const FOO: usize = FOO; //~ ERROR E0391
+   |                    ^^^
+   |
+   = note: ...which again requires processing `FOO`, completing the cycle
+note: cycle used when processing `main::{{constant}}`
+  --> $DIR/issue-17252.rs:14:18
+   |
+LL |     let _x: [u8; FOO]; // caused stack overflow prior to fix
+   |                  ^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0391`.
diff --git a/src/test/compile-fail/issue-17337.rs b/src/test/ui/issue-17337.rs
index 1208321b529..1208321b529 100644
--- a/src/test/compile-fail/issue-17337.rs
+++ b/src/test/ui/issue-17337.rs
diff --git a/src/test/ui/issue-17337.stderr b/src/test/ui/issue-17337.stderr
new file mode 100644
index 00000000000..03215473745
--- /dev/null
+++ b/src/test/ui/issue-17337.stderr
@@ -0,0 +1,14 @@
+error: use of deprecated item 'Foo::foo': text
+  --> $DIR/issue-17337.rs:26:6
+   |
+LL |     .foo(); //~ ERROR use of deprecated item
+   |      ^^^
+   |
+note: lint level defined here
+  --> $DIR/issue-17337.rs:12:9
+   |
+LL | #![deny(deprecated)]
+   |         ^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-17373.rs b/src/test/ui/issue-17373.rs
index f6e6a8a0852..f6e6a8a0852 100644
--- a/src/test/compile-fail/issue-17373.rs
+++ b/src/test/ui/issue-17373.rs
diff --git a/src/test/ui/issue-17373.stderr b/src/test/ui/issue-17373.stderr
new file mode 100644
index 00000000000..38e93e65bdc
--- /dev/null
+++ b/src/test/ui/issue-17373.stderr
@@ -0,0 +1,9 @@
+error[E0614]: type `!` cannot be dereferenced
+  --> $DIR/issue-17373.rs:12:5
+   |
+LL |     *return //~ ERROR type `!` cannot be dereferenced
+   |     ^^^^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0614`.
diff --git a/src/test/ui/issue-17385.nll.stderr b/src/test/ui/issue-17385.nll.stderr
new file mode 100644
index 00000000000..c3387e58fcf
--- /dev/null
+++ b/src/test/ui/issue-17385.nll.stderr
@@ -0,0 +1,77 @@
+error[E0382]: use of moved value: `foo`
+  --> $DIR/issue-17385.rs:28:5
+   |
+LL |       drop(foo);
+   |            --- value moved here
+LL | /     match foo { //~ ERROR use of moved value
+LL | |         X(1) => (),
+LL | |         _ => unreachable!()
+LL | |     }
+   | |_____^ value used here after move
+   |
+   = note: move occurs because `foo` has type `X`, which does not implement the `Copy` trait
+
+error[E0382]: borrow of moved value: `foo`
+  --> $DIR/issue-17385.rs:28:5
+   |
+LL |       drop(foo);
+   |            --- value moved here
+LL | /     match foo { //~ ERROR use of moved value
+LL | |         X(1) => (),
+LL | |         _ => unreachable!()
+LL | |     }
+   | |_____^ value borrowed here after move
+   |
+   = note: move occurs because `foo` has type `X`, which does not implement the `Copy` trait
+
+error[E0382]: use of moved value: `foo.0`
+  --> $DIR/issue-17385.rs:29:11
+   |
+LL |     drop(foo);
+   |          --- value moved here
+LL |     match foo { //~ ERROR use of moved value
+LL |         X(1) => (),
+   |           ^ value used here after move
+   |
+   = note: move occurs because `foo` has type `X`, which does not implement the `Copy` trait
+
+error[E0382]: use of moved value: `e`
+  --> $DIR/issue-17385.rs:35:5
+   |
+LL |       drop(e);
+   |            - value moved here
+LL | /     match e { //~ ERROR use of moved value
+LL | |         Enum::Variant1 => unreachable!(),
+LL | |         Enum::Variant2 => ()
+LL | |     }
+   | |_____^ value used here after move
+   |
+   = note: move occurs because `e` has type `Enum`, which does not implement the `Copy` trait
+
+error[E0382]: borrow of moved value: `e`
+  --> $DIR/issue-17385.rs:35:5
+   |
+LL |       drop(e);
+   |            - value moved here
+LL | /     match e { //~ ERROR use of moved value
+LL | |         Enum::Variant1 => unreachable!(),
+LL | |         Enum::Variant2 => ()
+LL | |     }
+   | |_____^ value borrowed here after move
+   |
+   = note: move occurs because `e` has type `Enum`, which does not implement the `Copy` trait
+
+error[E0382]: use of moved value: `e`
+  --> $DIR/issue-17385.rs:36:9
+   |
+LL |     drop(e);
+   |          - value moved here
+LL |     match e { //~ ERROR use of moved value
+LL |         Enum::Variant1 => unreachable!(),
+   |         ^^^^^^^^^^^^^^ value used here after move
+   |
+   = note: move occurs because `e` has type `Enum`, which does not implement the `Copy` trait
+
+error: aborting due to 6 previous errors
+
+For more information about this error, try `rustc --explain E0382`.
diff --git a/src/test/compile-fail/issue-17385.rs b/src/test/ui/issue-17385.rs
index eb293c79247..eb293c79247 100644
--- a/src/test/compile-fail/issue-17385.rs
+++ b/src/test/ui/issue-17385.rs
diff --git a/src/test/ui/issue-17385.stderr b/src/test/ui/issue-17385.stderr
new file mode 100644
index 00000000000..01d6d1a2720
--- /dev/null
+++ b/src/test/ui/issue-17385.stderr
@@ -0,0 +1,23 @@
+error[E0382]: use of moved value: `foo`
+  --> $DIR/issue-17385.rs:28:11
+   |
+LL |     drop(foo);
+   |          --- value moved here
+LL |     match foo { //~ ERROR use of moved value
+   |           ^^^ value used here after move
+   |
+   = note: move occurs because `foo` has type `X`, which does not implement the `Copy` trait
+
+error[E0382]: use of moved value: `e`
+  --> $DIR/issue-17385.rs:35:11
+   |
+LL |     drop(e);
+   |          - value moved here
+LL |     match e { //~ ERROR use of moved value
+   |           ^ value used here after move
+   |
+   = note: move occurs because `e` has type `Enum`, which does not implement the `Copy` trait
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0382`.
diff --git a/src/test/compile-fail/issue-17405.rs b/src/test/ui/issue-17405.rs
index 5a6bd5ed588..5a6bd5ed588 100644
--- a/src/test/compile-fail/issue-17405.rs
+++ b/src/test/ui/issue-17405.rs
diff --git a/src/test/ui/issue-17405.stderr b/src/test/ui/issue-17405.stderr
new file mode 100644
index 00000000000..bcccfd301b7
--- /dev/null
+++ b/src/test/ui/issue-17405.stderr
@@ -0,0 +1,9 @@
+error[E0574]: expected struct, variant or union type, found enum `Foo`
+  --> $DIR/issue-17405.rs:17:9
+   |
+LL |         Foo { i } => () //~ ERROR expected struct, variant or union type, found enum `Foo`
+   |         ^^^ not a struct, variant or union type
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0574`.
diff --git a/src/test/compile-fail/issue-17431-1.rs b/src/test/ui/issue-17431-1.rs
index 260cc366fae..260cc366fae 100644
--- a/src/test/compile-fail/issue-17431-1.rs
+++ b/src/test/ui/issue-17431-1.rs
diff --git a/src/test/ui/issue-17431-1.stderr b/src/test/ui/issue-17431-1.stderr
new file mode 100644
index 00000000000..fb27693c85e
--- /dev/null
+++ b/src/test/ui/issue-17431-1.stderr
@@ -0,0 +1,13 @@
+error[E0072]: recursive type `Foo` has infinite size
+  --> $DIR/issue-17431-1.rs:11:1
+   |
+LL | struct Foo { foo: Option<Option<Foo>> }
+   | ^^^^^^^^^^   ------------------------ recursive without indirection
+   | |
+   | recursive type has infinite size
+   |
+   = help: insert indirection (e.g., a `Box`, `Rc`, or `&`) at some point to make `Foo` representable
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0072`.
diff --git a/src/test/compile-fail/issue-17431-2.rs b/src/test/ui/issue-17431-2.rs
index f39fb0e31c6..f39fb0e31c6 100644
--- a/src/test/compile-fail/issue-17431-2.rs
+++ b/src/test/ui/issue-17431-2.rs
diff --git a/src/test/ui/issue-17431-2.stderr b/src/test/ui/issue-17431-2.stderr
new file mode 100644
index 00000000000..7e87babe93e
--- /dev/null
+++ b/src/test/ui/issue-17431-2.stderr
@@ -0,0 +1,23 @@
+error[E0072]: recursive type `Baz` has infinite size
+  --> $DIR/issue-17431-2.rs:11:1
+   |
+LL | struct Baz { q: Option<Foo> }
+   | ^^^^^^^^^^   -------------- recursive without indirection
+   | |
+   | recursive type has infinite size
+   |
+   = help: insert indirection (e.g., a `Box`, `Rc`, or `&`) at some point to make `Baz` representable
+
+error[E0072]: recursive type `Foo` has infinite size
+  --> $DIR/issue-17431-2.rs:14:1
+   |
+LL | struct Foo { q: Option<Baz> }
+   | ^^^^^^^^^^   -------------- recursive without indirection
+   | |
+   | recursive type has infinite size
+   |
+   = help: insert indirection (e.g., a `Box`, `Rc`, or `&`) at some point to make `Foo` representable
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0072`.
diff --git a/src/test/compile-fail/issue-17431-3.rs b/src/test/ui/issue-17431-3.rs
index 9ba085591f0..9ba085591f0 100644
--- a/src/test/compile-fail/issue-17431-3.rs
+++ b/src/test/ui/issue-17431-3.rs
diff --git a/src/test/ui/issue-17431-3.stderr b/src/test/ui/issue-17431-3.stderr
new file mode 100644
index 00000000000..c12a4c11c2c
--- /dev/null
+++ b/src/test/ui/issue-17431-3.stderr
@@ -0,0 +1,13 @@
+error[E0072]: recursive type `Foo` has infinite size
+  --> $DIR/issue-17431-3.rs:13:1
+   |
+LL | struct Foo { foo: Mutex<Option<Foo>> }
+   | ^^^^^^^^^^   ----------------------- recursive without indirection
+   | |
+   | recursive type has infinite size
+   |
+   = help: insert indirection (e.g., a `Box`, `Rc`, or `&`) at some point to make `Foo` representable
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0072`.
diff --git a/src/test/compile-fail/issue-17431-4.rs b/src/test/ui/issue-17431-4.rs
index 665c3cf8fe6..665c3cf8fe6 100644
--- a/src/test/compile-fail/issue-17431-4.rs
+++ b/src/test/ui/issue-17431-4.rs
diff --git a/src/test/ui/issue-17431-4.stderr b/src/test/ui/issue-17431-4.stderr
new file mode 100644
index 00000000000..acfd688b622
--- /dev/null
+++ b/src/test/ui/issue-17431-4.stderr
@@ -0,0 +1,13 @@
+error[E0072]: recursive type `Foo` has infinite size
+  --> $DIR/issue-17431-4.rs:13:1
+   |
+LL | struct Foo<T> { foo: Option<Option<Foo<T>>>, marker: marker::PhantomData<T> }
+   | ^^^^^^^^^^^^^   --------------------------- recursive without indirection
+   | |
+   | recursive type has infinite size
+   |
+   = help: insert indirection (e.g., a `Box`, `Rc`, or `&`) at some point to make `Foo` representable
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0072`.
diff --git a/src/test/compile-fail/issue-17431-5.rs b/src/test/ui/issue-17431-5.rs
index 85ed4d5d634..85ed4d5d634 100644
--- a/src/test/compile-fail/issue-17431-5.rs
+++ b/src/test/ui/issue-17431-5.rs
diff --git a/src/test/ui/issue-17431-5.stderr b/src/test/ui/issue-17431-5.stderr
new file mode 100644
index 00000000000..ddfea58a857
--- /dev/null
+++ b/src/test/ui/issue-17431-5.stderr
@@ -0,0 +1,13 @@
+error[E0072]: recursive type `Bar` has infinite size
+  --> $DIR/issue-17431-5.rs:15:1
+   |
+LL | struct Bar<T> { x: Bar<Foo> , marker: marker::PhantomData<T> }
+   | ^^^^^^^^^^^^^   ----------- recursive without indirection
+   | |
+   | recursive type has infinite size
+   |
+   = help: insert indirection (e.g., a `Box`, `Rc`, or `&`) at some point to make `Bar` representable
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0072`.
diff --git a/src/test/compile-fail/issue-17431-6.rs b/src/test/ui/issue-17431-6.rs
index 4c1e82c3d6a..4c1e82c3d6a 100644
--- a/src/test/compile-fail/issue-17431-6.rs
+++ b/src/test/ui/issue-17431-6.rs
diff --git a/src/test/ui/issue-17431-6.stderr b/src/test/ui/issue-17431-6.stderr
new file mode 100644
index 00000000000..ab2cc439f17
--- /dev/null
+++ b/src/test/ui/issue-17431-6.stderr
@@ -0,0 +1,13 @@
+error[E0072]: recursive type `Foo` has infinite size
+  --> $DIR/issue-17431-6.rs:13:1
+   |
+LL | enum Foo { X(Mutex<Option<Foo>>) }
+   | ^^^^^^^^     ------------------ recursive without indirection
+   | |
+   | recursive type has infinite size
+   |
+   = help: insert indirection (e.g., a `Box`, `Rc`, or `&`) at some point to make `Foo` representable
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0072`.
diff --git a/src/test/compile-fail/issue-17431-7.rs b/src/test/ui/issue-17431-7.rs
index 71b85da29fc..71b85da29fc 100644
--- a/src/test/compile-fail/issue-17431-7.rs
+++ b/src/test/ui/issue-17431-7.rs
diff --git a/src/test/ui/issue-17431-7.stderr b/src/test/ui/issue-17431-7.stderr
new file mode 100644
index 00000000000..7f9118860b9
--- /dev/null
+++ b/src/test/ui/issue-17431-7.stderr
@@ -0,0 +1,13 @@
+error[E0072]: recursive type `Foo` has infinite size
+  --> $DIR/issue-17431-7.rs:11:1
+   |
+LL | enum Foo { Voo(Option<Option<Foo>>) }
+   | ^^^^^^^^       ------------------- recursive without indirection
+   | |
+   | recursive type has infinite size
+   |
+   = help: insert indirection (e.g., a `Box`, `Rc`, or `&`) at some point to make `Foo` representable
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0072`.
diff --git a/src/test/compile-fail/issue-17444.rs b/src/test/ui/issue-17444.rs
index dafcff23838..dafcff23838 100644
--- a/src/test/compile-fail/issue-17444.rs
+++ b/src/test/ui/issue-17444.rs
diff --git a/src/test/ui/issue-17444.stderr b/src/test/ui/issue-17444.stderr
new file mode 100644
index 00000000000..3f87d806e7e
--- /dev/null
+++ b/src/test/ui/issue-17444.stderr
@@ -0,0 +1,9 @@
+error[E0606]: casting `Test` as `*const isize` is invalid
+  --> $DIR/issue-17444.rs:16:14
+   |
+LL |     let _x = Test::Foo as *const isize;
+   |              ^^^^^^^^^^^^^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0606`.
diff --git a/src/test/compile-fail/issue-17458.rs b/src/test/ui/issue-17458.rs
index f5b7a0c13b7..f5b7a0c13b7 100644
--- a/src/test/compile-fail/issue-17458.rs
+++ b/src/test/ui/issue-17458.rs
diff --git a/src/test/ui/issue-17458.stderr b/src/test/ui/issue-17458.stderr
new file mode 100644
index 00000000000..7a43813fa6d
--- /dev/null
+++ b/src/test/ui/issue-17458.stderr
@@ -0,0 +1,9 @@
+error[E0018]: raw pointers cannot be cast to integers in statics
+  --> $DIR/issue-17458.rs:11:19
+   |
+LL | static X: usize = 0 as *const usize as usize;
+   |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0018`.
diff --git a/src/test/ui/issue-17545.nll.stderr b/src/test/ui/issue-17545.nll.stderr
new file mode 100644
index 00000000000..50a4b3f7f3e
--- /dev/null
+++ b/src/test/ui/issue-17545.nll.stderr
@@ -0,0 +1,17 @@
+error[E0597]: borrowed value does not live long enough
+  --> $DIR/issue-17545.rs:17:10
+   |
+LL |         &id(()), //~ ERROR borrowed value does not live long enough
+   |          ^^^^^^ temporary value does not live long enough
+LL |     ));
+   |       - temporary value only lives until here
+   |
+note: borrowed value must be valid for the lifetime 'a as defined on the function body at 15:12...
+  --> $DIR/issue-17545.rs:15:12
+   |
+LL | pub fn foo<'a, F: Fn(&'a ())>(bar: F) {
+   |            ^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0597`.
diff --git a/src/test/compile-fail/issue-17545.rs b/src/test/ui/issue-17545.rs
index 9264305e6ea..9264305e6ea 100644
--- a/src/test/compile-fail/issue-17545.rs
+++ b/src/test/ui/issue-17545.rs
diff --git a/src/test/ui/issue-17545.stderr b/src/test/ui/issue-17545.stderr
new file mode 100644
index 00000000000..ce698665583
--- /dev/null
+++ b/src/test/ui/issue-17545.stderr
@@ -0,0 +1,18 @@
+error[E0597]: borrowed value does not live long enough
+  --> $DIR/issue-17545.rs:17:10
+   |
+LL |         &id(()), //~ ERROR borrowed value does not live long enough
+   |          ^^^^^^ temporary value does not live long enough
+LL |     ));
+   |       - temporary value only lives until here
+   |
+note: borrowed value must be valid for the lifetime 'a as defined on the function body at 15:12...
+  --> $DIR/issue-17545.rs:15:12
+   |
+LL | pub fn foo<'a, F: Fn(&'a ())>(bar: F) {
+   |            ^^
+   = note: consider using a `let` binding to increase its lifetime
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0597`.
diff --git a/src/test/compile-fail/issue-17546.rs b/src/test/ui/issue-17546.rs
index fe125b973d9..fe125b973d9 100644
--- a/src/test/compile-fail/issue-17546.rs
+++ b/src/test/ui/issue-17546.rs
diff --git a/src/test/ui/issue-17546.stderr b/src/test/ui/issue-17546.stderr
new file mode 100644
index 00000000000..39f7d5fcc04
--- /dev/null
+++ b/src/test/ui/issue-17546.stderr
@@ -0,0 +1,55 @@
+error[E0573]: expected type, found variant `NoResult`
+  --> $DIR/issue-17546.rs:22:17
+   |
+LL |     fn new() -> NoResult<MyEnum, String> {
+   |                 --------^^^^^^^^^^^^^^^^
+   |                 |
+   |                 did you mean `Result`?
+   |                 help: you can try using the variant's enum: `foo::MyEnum`
+
+error[E0573]: expected type, found variant `Result`
+  --> $DIR/issue-17546.rs:32:17
+   |
+LL |     fn new() -> Result<foo::MyEnum, String> {
+   |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ not a type
+help: possible better candidates are found in other modules, you can import them into scope
+   |
+LL |     use std::fmt::Result;
+   |
+LL |     use std::io::Result;
+   |
+LL |     use std::prelude::v1::Result;
+   |
+LL |     use std::result::Result;
+   |
+and 1 other candidates
+
+error[E0573]: expected type, found variant `Result`
+  --> $DIR/issue-17546.rs:38:13
+   |
+LL | fn new() -> Result<foo::MyEnum, String> {
+   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ not a type
+help: possible better candidates are found in other modules, you can import them into scope
+   |
+LL | use std::fmt::Result;
+   |
+LL | use std::io::Result;
+   |
+LL | use std::prelude::v1::Result;
+   |
+LL | use std::result::Result;
+   |
+and 1 other candidates
+
+error[E0573]: expected type, found variant `NoResult`
+  --> $DIR/issue-17546.rs:43:15
+   |
+LL | fn newer() -> NoResult<foo::MyEnum, String> {
+   |               --------^^^^^^^^^^^^^^^^^^^^^
+   |               |
+   |               did you mean `Result`?
+   |               help: you can try using the variant's enum: `foo::MyEnum`
+
+error: aborting due to 4 previous errors
+
+For more information about this error, try `rustc --explain E0573`.
diff --git a/src/test/compile-fail/issue-17551.rs b/src/test/ui/issue-17551.rs
index b55863f0dda..b55863f0dda 100644
--- a/src/test/compile-fail/issue-17551.rs
+++ b/src/test/ui/issue-17551.rs
diff --git a/src/test/ui/issue-17551.stderr b/src/test/ui/issue-17551.stderr
new file mode 100644
index 00000000000..0cdee0337d8
--- /dev/null
+++ b/src/test/ui/issue-17551.stderr
@@ -0,0 +1,11 @@
+error[E0282]: type annotations needed
+  --> $DIR/issue-17551.rs:16:15
+   |
+LL |     let foo = B(marker::PhantomData); //~ ERROR type annotations needed
+   |         ---   ^ cannot infer type for `T`
+   |         |
+   |         consider giving `foo` a type
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0282`.
diff --git a/src/test/compile-fail/issue-17651.rs b/src/test/ui/issue-17651.rs
index cbd0da4b53c..cbd0da4b53c 100644
--- a/src/test/compile-fail/issue-17651.rs
+++ b/src/test/ui/issue-17651.rs
diff --git a/src/test/ui/issue-17651.stderr b/src/test/ui/issue-17651.stderr
new file mode 100644
index 00000000000..d21b3060315
--- /dev/null
+++ b/src/test/ui/issue-17651.stderr
@@ -0,0 +1,13 @@
+error[E0277]: the size for values of type `[{integer}]` cannot be known at compilation time
+  --> $DIR/issue-17651.rs:15:9
+   |
+LL |     (|| Box::new(*(&[0][..])))();
+   |         ^^^^^^^^ doesn't have a size known at compile-time
+   |
+   = help: the trait `std::marker::Sized` is not implemented for `[{integer}]`
+   = note: to learn more, visit <https://doc.rust-lang.org/book/second-edition/ch19-04-advanced-types.html#dynamically-sized-types--sized>
+   = note: required by `<std::boxed::Box<T>>::new`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/compile-fail/issue-17718-const-bad-values.rs b/src/test/ui/issue-17718-const-bad-values.rs
index 17ec77d77ee..17ec77d77ee 100644
--- a/src/test/compile-fail/issue-17718-const-bad-values.rs
+++ b/src/test/ui/issue-17718-const-bad-values.rs
diff --git a/src/test/ui/issue-17718-const-bad-values.stderr b/src/test/ui/issue-17718-const-bad-values.stderr
new file mode 100644
index 00000000000..0ab7f965b63
--- /dev/null
+++ b/src/test/ui/issue-17718-const-bad-values.stderr
@@ -0,0 +1,28 @@
+error[E0017]: references in constants may only refer to immutable values
+  --> $DIR/issue-17718-const-bad-values.rs:11:34
+   |
+LL | const C1: &'static mut [usize] = &mut [];
+   |                                  ^^^^^^^ constants require immutable values
+
+error[E0013]: constants cannot refer to statics, use a constant instead
+  --> $DIR/issue-17718-const-bad-values.rs:15:41
+   |
+LL | const C2: &'static mut usize = unsafe { &mut S };
+   |                                         ^^^^^^
+
+error[E0017]: references in constants may only refer to immutable values
+  --> $DIR/issue-17718-const-bad-values.rs:15:41
+   |
+LL | const C2: &'static mut usize = unsafe { &mut S };
+   |                                         ^^^^^^ constants require immutable values
+
+error[E0017]: references in constants may only refer to immutable values
+  --> $DIR/issue-17718-const-bad-values.rs:15:32
+   |
+LL | const C2: &'static mut usize = unsafe { &mut S };
+   |                                ^^^^^^^^^^^^^^^^^ constants require immutable values
+
+error: aborting due to 4 previous errors
+
+Some errors occurred: E0013, E0017.
+For more information about an error, try `rustc --explain E0013`.
diff --git a/src/test/compile-fail/issue-17718-const-borrow.rs b/src/test/ui/issue-17718-const-borrow.rs
index 07123c69492..07123c69492 100644
--- a/src/test/compile-fail/issue-17718-const-borrow.rs
+++ b/src/test/ui/issue-17718-const-borrow.rs
diff --git a/src/test/ui/issue-17718-const-borrow.stderr b/src/test/ui/issue-17718-const-borrow.stderr
new file mode 100644
index 00000000000..3b0217060f7
--- /dev/null
+++ b/src/test/ui/issue-17718-const-borrow.stderr
@@ -0,0 +1,21 @@
+error[E0492]: cannot borrow a constant which may contain interior mutability, create a static instead
+  --> $DIR/issue-17718-const-borrow.rs:14:39
+   |
+LL | const B: &'static UnsafeCell<usize> = &A;
+   |                                       ^^
+
+error[E0492]: cannot borrow a constant which may contain interior mutability, create a static instead
+  --> $DIR/issue-17718-const-borrow.rs:19:39
+   |
+LL | const E: &'static UnsafeCell<usize> = &D.a;
+   |                                       ^^^^
+
+error[E0492]: cannot borrow a constant which may contain interior mutability, create a static instead
+  --> $DIR/issue-17718-const-borrow.rs:21:23
+   |
+LL | const F: &'static C = &D;
+   |                       ^^
+
+error: aborting due to 3 previous errors
+
+For more information about this error, try `rustc --explain E0492`.
diff --git a/src/test/compile-fail/issue-17718-const-naming.rs b/src/test/ui/issue-17718-const-naming.rs
index 4857c2fb446..4857c2fb446 100644
--- a/src/test/compile-fail/issue-17718-const-naming.rs
+++ b/src/test/ui/issue-17718-const-naming.rs
diff --git a/src/test/ui/issue-17718-const-naming.stderr b/src/test/ui/issue-17718-const-naming.stderr
new file mode 100644
index 00000000000..9636db31390
--- /dev/null
+++ b/src/test/ui/issue-17718-const-naming.stderr
@@ -0,0 +1,28 @@
+error: constant item is never used: `foo`
+  --> $DIR/issue-17718-const-naming.rs:14:1
+   |
+LL | const foo: isize = 3;
+   | ^^^^^^^^^^^^^^^^^^^^^
+   |
+note: lint level defined here
+  --> $DIR/issue-17718-const-naming.rs:12:8
+   |
+LL | #[deny(warnings)]
+   |        ^^^^^^^^
+   = note: #[deny(dead_code)] implied by #[deny(warnings)]
+
+error: constant `foo` should have an upper case name such as `FOO`
+  --> $DIR/issue-17718-const-naming.rs:14:1
+   |
+LL | const foo: isize = 3;
+   | ^^^^^^^^^^^^^^^^^^^^^
+   |
+note: lint level defined here
+  --> $DIR/issue-17718-const-naming.rs:12:8
+   |
+LL | #[deny(warnings)]
+   |        ^^^^^^^^
+   = note: #[deny(non_upper_case_globals)] implied by #[deny(warnings)]
+
+error: aborting due to 2 previous errors
+
diff --git a/src/test/compile-fail/issue-17718-constants-not-static.rs b/src/test/ui/issue-17718-constants-not-static.rs
index 9b7ed463499..9b7ed463499 100644
--- a/src/test/compile-fail/issue-17718-constants-not-static.rs
+++ b/src/test/ui/issue-17718-constants-not-static.rs
diff --git a/src/test/ui/issue-17718-constants-not-static.stderr b/src/test/ui/issue-17718-constants-not-static.stderr
new file mode 100644
index 00000000000..61d8399aba9
--- /dev/null
+++ b/src/test/ui/issue-17718-constants-not-static.stderr
@@ -0,0 +1,13 @@
+error[E0597]: borrowed value does not live long enough
+  --> $DIR/issue-17718-constants-not-static.rs:15:31
+   |
+LL | fn foo() -> &'static usize { &id(FOO) }
+   |                               ^^^^^^^ - temporary value only lives until here
+   |                               |
+   |                               temporary value does not live long enough
+   |
+   = note: borrowed value must be valid for the static lifetime...
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0597`.
diff --git a/src/test/compile-fail/issue-17718-patterns.rs b/src/test/ui/issue-17718-patterns.rs
index b9f5e98b6fa..b9f5e98b6fa 100644
--- a/src/test/compile-fail/issue-17718-patterns.rs
+++ b/src/test/ui/issue-17718-patterns.rs
diff --git a/src/test/ui/issue-17718-patterns.stderr b/src/test/ui/issue-17718-patterns.stderr
new file mode 100644
index 00000000000..13cab9a08b1
--- /dev/null
+++ b/src/test/ui/issue-17718-patterns.stderr
@@ -0,0 +1,21 @@
+error[E0530]: match bindings cannot shadow statics
+  --> $DIR/issue-17718-patterns.rs:17:9
+   |
+LL | static A1: usize = 1;
+   | --------------------- a static `A1` is defined here
+...
+LL |         A1 => {} //~ ERROR: match bindings cannot shadow statics
+   |         ^^ cannot be named the same as a static
+
+error[E0530]: match bindings cannot shadow statics
+  --> $DIR/issue-17718-patterns.rs:18:9
+   |
+LL | static mut A2: usize = 1;
+   | ------------------------- a static `A2` is defined here
+...
+LL |         A2 => {} //~ ERROR: match bindings cannot shadow statics
+   |         ^^ cannot be named the same as a static
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0530`.
diff --git a/src/test/compile-fail/issue-17718-references.rs b/src/test/ui/issue-17718-references.rs
index 586cfebcd16..586cfebcd16 100644
--- a/src/test/compile-fail/issue-17718-references.rs
+++ b/src/test/ui/issue-17718-references.rs
diff --git a/src/test/ui/issue-17718-references.stderr b/src/test/ui/issue-17718-references.stderr
new file mode 100644
index 00000000000..6e89a83b308
--- /dev/null
+++ b/src/test/ui/issue-17718-references.stderr
@@ -0,0 +1,21 @@
+error[E0013]: constants cannot refer to statics, use a constant instead
+  --> $DIR/issue-17718-references.rs:19:28
+   |
+LL | const T2: &'static usize = &S; //~ ERROR: constants cannot refer to statics
+   |                            ^^
+
+error[E0013]: constants cannot refer to statics, use a constant instead
+  --> $DIR/issue-17718-references.rs:24:19
+   |
+LL | const T6: usize = S; //~ ERROR: constants cannot refer to statics
+   |                   ^
+
+error[E0013]: constants cannot refer to statics, use a constant instead
+  --> $DIR/issue-17718-references.rs:29:33
+   |
+LL | const T10: Struct = Struct { a: S };
+   |                                 ^
+
+error: aborting due to 3 previous errors
+
+For more information about this error, try `rustc --explain E0013`.
diff --git a/src/test/compile-fail/issue-17718-static-move.rs b/src/test/ui/issue-17718-static-move.rs
index a5a7117956f..a5a7117956f 100644
--- a/src/test/compile-fail/issue-17718-static-move.rs
+++ b/src/test/ui/issue-17718-static-move.rs
diff --git a/src/test/ui/issue-17718-static-move.stderr b/src/test/ui/issue-17718-static-move.stderr
new file mode 100644
index 00000000000..a6384cfce8f
--- /dev/null
+++ b/src/test/ui/issue-17718-static-move.stderr
@@ -0,0 +1,12 @@
+error[E0507]: cannot move out of static item
+  --> $DIR/issue-17718-static-move.rs:16:14
+   |
+LL |     let _a = FOO; //~ ERROR: cannot move out of static item
+   |              ^^^
+   |              |
+   |              cannot move out of static item
+   |              help: consider using a reference instead: `&FOO`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0507`.
diff --git a/src/test/compile-fail/issue-17718-static-sync.rs b/src/test/ui/issue-17718-static-sync.rs
index c5349d4e82b..c5349d4e82b 100644
--- a/src/test/compile-fail/issue-17718-static-sync.rs
+++ b/src/test/ui/issue-17718-static-sync.rs
diff --git a/src/test/ui/issue-17718-static-sync.stderr b/src/test/ui/issue-17718-static-sync.stderr
new file mode 100644
index 00000000000..d6816826a00
--- /dev/null
+++ b/src/test/ui/issue-17718-static-sync.stderr
@@ -0,0 +1,12 @@
+error[E0277]: `Foo` cannot be shared between threads safely
+  --> $DIR/issue-17718-static-sync.rs:19:1
+   |
+LL | static BAR: Foo = Foo;
+   | ^^^^^^^^^^^^^^^^^^^^^^ `Foo` cannot be shared between threads safely
+   |
+   = help: the trait `std::marker::Sync` is not implemented for `Foo`
+   = note: shared static variables must have a type that implements `Sync`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/ui/issue-17728.nll.stderr b/src/test/ui/issue-17728.nll.stderr
new file mode 100644
index 00000000000..b9931e45bd2
--- /dev/null
+++ b/src/test/ui/issue-17728.nll.stderr
@@ -0,0 +1,25 @@
+warning: not reporting region error due to nll
+  --> $DIR/issue-17728.rs:23:49
+   |
+LL |         let maybe_room = room.direction_to_room.get(&direction);
+   |                                                 ^^^
+
+error[E0308]: match arms have incompatible types
+  --> $DIR/issue-17728.rs:110:5
+   |
+LL | /     match to_parse { //~ ERROR match arms have incompatible types
+LL | |         "w" | "west" => RoomDirection::West,
+LL | |         "e" | "east" => RoomDirection::East,
+LL | |         "n" | "north" => RoomDirection::North,
+...  |
+LL | |         _ => None
+   | |              ---- match arm with an incompatible type
+LL | |     }
+   | |_____^ expected enum `RoomDirection`, found enum `std::option::Option`
+   |
+   = note: expected type `RoomDirection`
+              found type `std::option::Option<_>`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-17728.rs b/src/test/ui/issue-17728.rs
index 8516a8ea52e..8516a8ea52e 100644
--- a/src/test/compile-fail/issue-17728.rs
+++ b/src/test/ui/issue-17728.rs
diff --git a/src/test/ui/issue-17728.stderr b/src/test/ui/issue-17728.stderr
new file mode 100644
index 00000000000..e46c48c4c39
--- /dev/null
+++ b/src/test/ui/issue-17728.stderr
@@ -0,0 +1,31 @@
+error[E0623]: lifetime mismatch
+  --> $DIR/issue-17728.rs:25:28
+   |
+LL |     fn attemptTraverse(&self, room: &Room, directionStr: &str) -> Result<&Room, &str> {
+   |                                     -----                         -------------------
+   |                                     |
+   |                                     this parameter and the return type are declared with different lifetimes...
+...
+LL |             Some(entry) => Ok(entry),
+   |                            ^^^^^^^^^ ...but data from `room` is returned here
+
+error[E0308]: match arms have incompatible types
+  --> $DIR/issue-17728.rs:110:5
+   |
+LL | /     match to_parse { //~ ERROR match arms have incompatible types
+LL | |         "w" | "west" => RoomDirection::West,
+LL | |         "e" | "east" => RoomDirection::East,
+LL | |         "n" | "north" => RoomDirection::North,
+...  |
+LL | |         _ => None
+   | |              ---- match arm with an incompatible type
+LL | |     }
+   | |_____^ expected enum `RoomDirection`, found enum `std::option::Option`
+   |
+   = note: expected type `RoomDirection`
+              found type `std::option::Option<_>`
+
+error: aborting due to 2 previous errors
+
+Some errors occurred: E0308, E0623.
+For more information about an error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-17740.rs b/src/test/ui/issue-17740.rs
index 1d5ef4360dc..1d5ef4360dc 100644
--- a/src/test/compile-fail/issue-17740.rs
+++ b/src/test/ui/issue-17740.rs
diff --git a/src/test/ui/issue-17740.stderr b/src/test/ui/issue-17740.stderr
new file mode 100644
index 00000000000..e4f5485953c
--- /dev/null
+++ b/src/test/ui/issue-17740.stderr
@@ -0,0 +1,53 @@
+error[E0308]: mismatched method receiver
+  --> $DIR/issue-17740.rs:16:18
+   |
+LL |     fn bar(self: &mut Foo) {
+   |                  ^^^^^^^^ lifetime mismatch
+   |
+   = note: expected type `Foo<'a>`
+              found type `Foo<'_>`
+note: the anonymous lifetime #2 defined on the method body at 16:5...
+  --> $DIR/issue-17740.rs:16:5
+   |
+LL | /     fn bar(self: &mut Foo) {
+LL | |     //~^ mismatched method receiver
+LL | |     //~| expected type `Foo<'a>`
+LL | |     //~| found type `Foo<'_>`
+...  |
+LL | |     //~| lifetime mismatch
+LL | |     }
+   | |_____^
+note: ...does not necessarily outlive the lifetime 'a as defined on the impl at 15:7
+  --> $DIR/issue-17740.rs:15:7
+   |
+LL | impl <'a> Foo<'a>{
+   |       ^^
+
+error[E0308]: mismatched method receiver
+  --> $DIR/issue-17740.rs:16:18
+   |
+LL |     fn bar(self: &mut Foo) {
+   |                  ^^^^^^^^ lifetime mismatch
+   |
+   = note: expected type `Foo<'a>`
+              found type `Foo<'_>`
+note: the lifetime 'a as defined on the impl at 15:7...
+  --> $DIR/issue-17740.rs:15:7
+   |
+LL | impl <'a> Foo<'a>{
+   |       ^^
+note: ...does not necessarily outlive the anonymous lifetime #2 defined on the method body at 16:5
+  --> $DIR/issue-17740.rs:16:5
+   |
+LL | /     fn bar(self: &mut Foo) {
+LL | |     //~^ mismatched method receiver
+LL | |     //~| expected type `Foo<'a>`
+LL | |     //~| found type `Foo<'_>`
+...  |
+LL | |     //~| lifetime mismatch
+LL | |     }
+   | |_____^
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/ui/issue-17758.nll.stderr b/src/test/ui/issue-17758.nll.stderr
new file mode 100644
index 00000000000..124fc6f0b39
--- /dev/null
+++ b/src/test/ui/issue-17758.nll.stderr
@@ -0,0 +1,22 @@
+warning: not reporting region error due to nll
+  --> $DIR/issue-17758.rs:17:9
+   |
+LL |         self.foo();
+   |         ^^^^
+
+warning: not reporting region error due to nll
+  --> $DIR/issue-17758.rs:17:14
+   |
+LL |         self.foo();
+   |              ^^^
+
+error: unsatisfied lifetime constraints
+  --> $DIR/issue-17758.rs:17:9
+   |
+LL |     fn bar(&self) {
+   |            - let's call the lifetime of this reference `'1`
+LL |         self.foo();
+   |         ^^^^^^^^^^ argument requires that `'1` must outlive `'a`
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-17758.rs b/src/test/ui/issue-17758.rs
index a47f5c16a46..a47f5c16a46 100644
--- a/src/test/compile-fail/issue-17758.rs
+++ b/src/test/ui/issue-17758.rs
diff --git a/src/test/ui/issue-17758.stderr b/src/test/ui/issue-17758.stderr
new file mode 100644
index 00000000000..3d78b2e2d7f
--- /dev/null
+++ b/src/test/ui/issue-17758.stderr
@@ -0,0 +1,31 @@
+error[E0495]: cannot infer an appropriate lifetime for autoref due to conflicting requirements
+  --> $DIR/issue-17758.rs:17:14
+   |
+LL |         self.foo();
+   |              ^^^
+   |
+note: first, the lifetime cannot outlive the anonymous lifetime #1 defined on the method body at 16:5...
+  --> $DIR/issue-17758.rs:16:5
+   |
+LL | /     fn bar(&self) {
+LL | |         self.foo();
+LL | |         //~^ ERROR cannot infer
+LL | |     }
+   | |_____^
+note: ...so that reference does not outlive borrowed content
+  --> $DIR/issue-17758.rs:17:9
+   |
+LL |         self.foo();
+   |         ^^^^
+note: but, the lifetime must be valid for the lifetime 'a as defined on the trait at 14:11...
+  --> $DIR/issue-17758.rs:14:11
+   |
+LL | trait Foo<'a> {
+   |           ^^
+   = note: ...so that the types are compatible:
+           expected &'a Self
+              found &Self
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0495`.
diff --git a/src/test/compile-fail/issue-17800.rs b/src/test/ui/issue-17800.rs
index f7cae91aa93..f7cae91aa93 100644
--- a/src/test/compile-fail/issue-17800.rs
+++ b/src/test/ui/issue-17800.rs
diff --git a/src/test/ui/issue-17800.stderr b/src/test/ui/issue-17800.stderr
new file mode 100644
index 00000000000..2cc562fbd7a
--- /dev/null
+++ b/src/test/ui/issue-17800.stderr
@@ -0,0 +1,18 @@
+error[E0026]: variant `MyOption::MySome` does not have a field named `x`
+  --> $DIR/issue-17800.rs:18:28
+   |
+LL |         MyOption::MySome { x: 42 } => (),
+   |                            ^^^^^ variant `MyOption::MySome` does not have this field
+
+error[E0027]: pattern does not mention field `0`
+  --> $DIR/issue-17800.rs:18:9
+   |
+LL |         MyOption::MySome { x: 42 } => (),
+   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^ missing field `0`
+   |
+   = note: trying to match a tuple variant with a struct variant pattern
+
+error: aborting due to 2 previous errors
+
+Some errors occurred: E0026, E0027.
+For more information about an error, try `rustc --explain E0026`.
diff --git a/src/test/compile-fail/issue-17904-2.rs b/src/test/ui/issue-17904-2.rs
index a15ccb71aa7..a15ccb71aa7 100644
--- a/src/test/compile-fail/issue-17904-2.rs
+++ b/src/test/ui/issue-17904-2.rs
diff --git a/src/test/ui/issue-17904-2.stderr b/src/test/ui/issue-17904-2.stderr
new file mode 100644
index 00000000000..00013d4d52b
--- /dev/null
+++ b/src/test/ui/issue-17904-2.stderr
@@ -0,0 +1,11 @@
+error[E0392]: parameter `T` is never used
+  --> $DIR/issue-17904-2.rs:14:12
+   |
+LL | struct Foo<T> where T: Copy; //~ ERROR parameter `T` is never used
+   |            ^ unused type parameter
+   |
+   = help: consider removing `T` or using a marker such as `std::marker::PhantomData`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0392`.
diff --git a/src/test/compile-fail/issue-17905.rs b/src/test/ui/issue-17905.rs
index f11d482ea16..f11d482ea16 100644
--- a/src/test/compile-fail/issue-17905.rs
+++ b/src/test/ui/issue-17905.rs
diff --git a/src/test/ui/issue-17905.stderr b/src/test/ui/issue-17905.stderr
new file mode 100644
index 00000000000..1a7aba17480
--- /dev/null
+++ b/src/test/ui/issue-17905.stderr
@@ -0,0 +1,9 @@
+error[E0106]: missing lifetime specifier
+  --> $DIR/issue-17905.rs:15:5
+   |
+LL |     &str, //~ ERROR missing lifetime specifier
+   |     ^ expected lifetime parameter
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0106`.
diff --git a/src/test/compile-fail/issue-17913.rs b/src/test/ui/issue-17913.rs
index 80e5f2b6e21..80e5f2b6e21 100644
--- a/src/test/compile-fail/issue-17913.rs
+++ b/src/test/ui/issue-17913.rs
diff --git a/src/test/ui/issue-17913.stderr b/src/test/ui/issue-17913.stderr
new file mode 100644
index 00000000000..ca8a28c0fd7
--- /dev/null
+++ b/src/test/ui/issue-17913.stderr
@@ -0,0 +1,4 @@
+error: the type `[&usize; 17293822569102704640]` is too big for the current architecture
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-17933.rs b/src/test/ui/issue-17933.rs
index 049a0665c54..049a0665c54 100644
--- a/src/test/compile-fail/issue-17933.rs
+++ b/src/test/ui/issue-17933.rs
diff --git a/src/test/ui/issue-17933.stderr b/src/test/ui/issue-17933.stderr
new file mode 100644
index 00000000000..ec0f4785c8f
--- /dev/null
+++ b/src/test/ui/issue-17933.stderr
@@ -0,0 +1,9 @@
+error[E0532]: expected unit struct/variant or constant, found static `self::X`
+  --> $DIR/issue-17933.rs:15:9
+   |
+LL |         self::X => { },
+   |         ^^^^^^^ not a unit struct/variant or constant
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0532`.
diff --git a/src/test/ui/issue-17954.ast.nll.stderr b/src/test/ui/issue-17954.ast.nll.stderr
new file mode 100644
index 00000000000..f731e8eeae6
--- /dev/null
+++ b/src/test/ui/issue-17954.ast.nll.stderr
@@ -0,0 +1,14 @@
+error[E0597]: `FOO` does not live long enough
+  --> $DIR/issue-17954.rs:20:13
+   |
+LL |     let a = &FOO;
+   |             ^^^^ borrowed value does not live long enough
+...
+LL | }
+   | - borrowed value only lives until here
+   |
+   = note: borrowed value must be valid for the static lifetime...
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0597`.
diff --git a/src/test/ui/issue-17954.ast.stderr b/src/test/ui/issue-17954.ast.stderr
new file mode 100644
index 00000000000..677d2cbfffc
--- /dev/null
+++ b/src/test/ui/issue-17954.ast.stderr
@@ -0,0 +1,14 @@
+error[E0597]: borrowed value does not live long enough
+  --> $DIR/issue-17954.rs:20:14
+   |
+LL |     let a = &FOO;
+   |              ^^^ temporary value does not live long enough
+...
+LL | }
+   | - temporary value only lives until here
+   |
+   = note: borrowed value must be valid for the static lifetime...
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0597`.
diff --git a/src/test/ui/issue-17954.mir.stderr b/src/test/ui/issue-17954.mir.stderr
new file mode 100644
index 00000000000..f731e8eeae6
--- /dev/null
+++ b/src/test/ui/issue-17954.mir.stderr
@@ -0,0 +1,14 @@
+error[E0597]: `FOO` does not live long enough
+  --> $DIR/issue-17954.rs:20:13
+   |
+LL |     let a = &FOO;
+   |             ^^^^ borrowed value does not live long enough
+...
+LL | }
+   | - borrowed value only lives until here
+   |
+   = note: borrowed value must be valid for the static lifetime...
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0597`.
diff --git a/src/test/compile-fail/issue-17954.rs b/src/test/ui/issue-17954.rs
index 4211057610b..4211057610b 100644
--- a/src/test/compile-fail/issue-17954.rs
+++ b/src/test/ui/issue-17954.rs
diff --git a/src/test/compile-fail/issue-17959.rs b/src/test/ui/issue-17959.rs
index 37c8173c4f6..37c8173c4f6 100644
--- a/src/test/compile-fail/issue-17959.rs
+++ b/src/test/ui/issue-17959.rs
diff --git a/src/test/ui/issue-17959.stderr b/src/test/ui/issue-17959.stderr
new file mode 100644
index 00000000000..626b670ae35
--- /dev/null
+++ b/src/test/ui/issue-17959.stderr
@@ -0,0 +1,23 @@
+error[E0367]: The requirement `T: std::marker::Sized` is added only by the Drop impl.
+  --> $DIR/issue-17959.rs:21:1
+   |
+LL | / impl<T> Drop for G<T> {
+LL | | //~^ ERROR: The requirement `T: std::marker::Sized` is added only by the Drop impl. [E0367]
+LL | |     fn drop(&mut self) {
+LL | |         if !self._ptr.is_null() {
+LL | |         }
+LL | |     }
+LL | | }
+   | |_^
+   |
+note: The same requirement must be part of the struct/enum definition
+  --> $DIR/issue-17959.rs:17:1
+   |
+LL | / struct G<T: ?Sized> {
+LL | |     _ptr: *const T
+LL | | }
+   | |_^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0367`.
diff --git a/src/test/compile-fail/issue-17994.rs b/src/test/ui/issue-17994.rs
index 25141b9b825..25141b9b825 100644
--- a/src/test/compile-fail/issue-17994.rs
+++ b/src/test/ui/issue-17994.rs
diff --git a/src/test/ui/issue-17994.stderr b/src/test/ui/issue-17994.stderr
new file mode 100644
index 00000000000..77bcc469538
--- /dev/null
+++ b/src/test/ui/issue-17994.stderr
@@ -0,0 +1,9 @@
+error[E0091]: type parameter `T` is unused
+  --> $DIR/issue-17994.rs:12:10
+   |
+LL | type Huh<T> where T: Tr = isize; //~  ERROR type parameter `T` is unused
+   |          ^ unused type parameter
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0091`.
diff --git a/src/test/compile-fail/issue-17999.rs b/src/test/ui/issue-17999.rs
index 88945f80eae..88945f80eae 100644
--- a/src/test/compile-fail/issue-17999.rs
+++ b/src/test/ui/issue-17999.rs
diff --git a/src/test/ui/issue-17999.stderr b/src/test/ui/issue-17999.stderr
new file mode 100644
index 00000000000..1a24015da54
--- /dev/null
+++ b/src/test/ui/issue-17999.stderr
@@ -0,0 +1,20 @@
+error: unused variable: `x`
+  --> $DIR/issue-17999.rs:15:13
+   |
+LL |         let x = (); //~ ERROR: unused variable: `x`
+   |             ^ help: consider using `_x` instead
+   |
+note: lint level defined here
+  --> $DIR/issue-17999.rs:11:9
+   |
+LL | #![deny(unused_variables)]
+   |         ^^^^^^^^^^^^^^^^
+
+error: unused variable: `a`
+  --> $DIR/issue-17999.rs:17:13
+   |
+LL |             a => {} //~ ERROR: unused variable: `a`
+   |             ^ help: consider using `_a` instead
+
+error: aborting due to 2 previous errors
+
diff --git a/src/test/compile-fail/issue-18058.rs b/src/test/ui/issue-18058.rs
index 4c815e689d4..4c815e689d4 100644
--- a/src/test/compile-fail/issue-18058.rs
+++ b/src/test/ui/issue-18058.rs
diff --git a/src/test/ui/issue-18058.stderr b/src/test/ui/issue-18058.stderr
new file mode 100644
index 00000000000..ded375a9332
--- /dev/null
+++ b/src/test/ui/issue-18058.stderr
@@ -0,0 +1,9 @@
+error[E0412]: cannot find type `Undefined` in this scope
+  --> $DIR/issue-18058.rs:11:6
+   |
+LL | impl Undefined {}
+   |      ^^^^^^^^^ not found in this scope
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0412`.
diff --git a/src/test/compile-fail/issue-18107.rs b/src/test/ui/issue-18107.rs
index 260038b7add..260038b7add 100644
--- a/src/test/compile-fail/issue-18107.rs
+++ b/src/test/ui/issue-18107.rs
diff --git a/src/test/ui/issue-18107.stderr b/src/test/ui/issue-18107.stderr
new file mode 100644
index 00000000000..4a273ab6735
--- /dev/null
+++ b/src/test/ui/issue-18107.stderr
@@ -0,0 +1,13 @@
+error[E0277]: the size for values of type `(dyn AbstractRenderer + 'static)` cannot be known at compilation time
+  --> $DIR/issue-18107.rs:14:5
+   |
+LL |     AbstractRenderer
+   |     ^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
+   |
+   = help: the trait `std::marker::Sized` is not implemented for `(dyn AbstractRenderer + 'static)`
+   = note: to learn more, visit <https://doc.rust-lang.org/book/second-edition/ch19-04-advanced-types.html#dynamically-sized-types--sized>
+   = note: the return type of a function must have a statically known size
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/compile-fail/issue-18118-2.rs b/src/test/ui/issue-18118-2.rs
index 6efe532b5fd..6efe532b5fd 100644
--- a/src/test/compile-fail/issue-18118-2.rs
+++ b/src/test/ui/issue-18118-2.rs
diff --git a/src/test/ui/issue-18118-2.stderr b/src/test/ui/issue-18118-2.stderr
new file mode 100644
index 00000000000..c0b306140c5
--- /dev/null
+++ b/src/test/ui/issue-18118-2.stderr
@@ -0,0 +1,9 @@
+error[E0013]: constants cannot refer to statics, use a constant instead
+  --> $DIR/issue-18118-2.rs:14:9
+   |
+LL |         &p
+   |         ^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0013`.
diff --git a/src/test/ui/issue-18118.nll.stderr b/src/test/ui/issue-18118.nll.stderr
new file mode 100644
index 00000000000..7acab8426f6
--- /dev/null
+++ b/src/test/ui/issue-18118.nll.stderr
@@ -0,0 +1,67 @@
+error[E0658]: let bindings in constants are unstable (see issue #48821)
+  --> $DIR/issue-18118.rs:15:17
+   |
+LL |         let p = 3;
+   |                 ^
+   |
+   = help: add #![feature(const_let)] to the crate attributes to enable
+
+error[E0658]: statements in constants are unstable (see issue #48821)
+  --> $DIR/issue-18118.rs:15:17
+   |
+LL |         let p = 3;
+   |                 ^
+   |
+   = help: add #![feature(const_let)] to the crate attributes to enable
+
+error[E0658]: let bindings in constants are unstable (see issue #48821)
+  --> $DIR/issue-18118.rs:18:9
+   |
+LL |         &p //~ ERROR `p` does not live long enough
+   |         ^^
+   |
+   = help: add #![feature(const_let)] to the crate attributes to enable
+
+error[E0658]: let bindings in constants are unstable (see issue #48821)
+  --> $DIR/issue-18118.rs:12:5
+   |
+LL | /     const z: &'static isize = {
+LL | |         //~^ ERROR let bindings in constants are unstable
+LL | |         //~| ERROR statements in constants are unstable
+LL | |         let p = 3;
+...  |
+LL | |         //~^ ERROR let bindings in constants are unstable
+LL | |     };
+   | |______^
+   |
+   = help: add #![feature(const_let)] to the crate attributes to enable
+
+error[E0658]: statements in constants are unstable (see issue #48821)
+  --> $DIR/issue-18118.rs:12:5
+   |
+LL | /     const z: &'static isize = {
+LL | |         //~^ ERROR let bindings in constants are unstable
+LL | |         //~| ERROR statements in constants are unstable
+LL | |         let p = 3;
+...  |
+LL | |         //~^ ERROR let bindings in constants are unstable
+LL | |     };
+   | |______^
+   |
+   = help: add #![feature(const_let)] to the crate attributes to enable
+
+error[E0597]: `p` does not live long enough
+  --> $DIR/issue-18118.rs:18:9
+   |
+LL |         &p //~ ERROR `p` does not live long enough
+   |         ^^ borrowed value does not live long enough
+LL |         //~^ ERROR let bindings in constants are unstable
+LL |     };
+   |     - borrowed value only lives until here
+   |
+   = note: borrowed value must be valid for the static lifetime...
+
+error: aborting due to 6 previous errors
+
+Some errors occurred: E0597, E0658.
+For more information about an error, try `rustc --explain E0597`.
diff --git a/src/test/compile-fail/issue-18118.rs b/src/test/ui/issue-18118.rs
index 7194c159c1e..7194c159c1e 100644
--- a/src/test/compile-fail/issue-18118.rs
+++ b/src/test/ui/issue-18118.rs
diff --git a/src/test/ui/issue-18118.stderr b/src/test/ui/issue-18118.stderr
new file mode 100644
index 00000000000..2d83b86e5f4
--- /dev/null
+++ b/src/test/ui/issue-18118.stderr
@@ -0,0 +1,67 @@
+error[E0658]: let bindings in constants are unstable (see issue #48821)
+  --> $DIR/issue-18118.rs:15:17
+   |
+LL |         let p = 3;
+   |                 ^
+   |
+   = help: add #![feature(const_let)] to the crate attributes to enable
+
+error[E0658]: statements in constants are unstable (see issue #48821)
+  --> $DIR/issue-18118.rs:15:17
+   |
+LL |         let p = 3;
+   |                 ^
+   |
+   = help: add #![feature(const_let)] to the crate attributes to enable
+
+error[E0658]: let bindings in constants are unstable (see issue #48821)
+  --> $DIR/issue-18118.rs:18:9
+   |
+LL |         &p //~ ERROR `p` does not live long enough
+   |         ^^
+   |
+   = help: add #![feature(const_let)] to the crate attributes to enable
+
+error[E0658]: let bindings in constants are unstable (see issue #48821)
+  --> $DIR/issue-18118.rs:12:5
+   |
+LL | /     const z: &'static isize = {
+LL | |         //~^ ERROR let bindings in constants are unstable
+LL | |         //~| ERROR statements in constants are unstable
+LL | |         let p = 3;
+...  |
+LL | |         //~^ ERROR let bindings in constants are unstable
+LL | |     };
+   | |______^
+   |
+   = help: add #![feature(const_let)] to the crate attributes to enable
+
+error[E0658]: statements in constants are unstable (see issue #48821)
+  --> $DIR/issue-18118.rs:12:5
+   |
+LL | /     const z: &'static isize = {
+LL | |         //~^ ERROR let bindings in constants are unstable
+LL | |         //~| ERROR statements in constants are unstable
+LL | |         let p = 3;
+...  |
+LL | |         //~^ ERROR let bindings in constants are unstable
+LL | |     };
+   | |______^
+   |
+   = help: add #![feature(const_let)] to the crate attributes to enable
+
+error[E0597]: `p` does not live long enough
+  --> $DIR/issue-18118.rs:18:10
+   |
+LL |         &p //~ ERROR `p` does not live long enough
+   |          ^ borrowed value does not live long enough
+LL |         //~^ ERROR let bindings in constants are unstable
+LL |     };
+   |     - borrowed value only lives until here
+   |
+   = note: borrowed value must be valid for the static lifetime...
+
+error: aborting due to 6 previous errors
+
+Some errors occurred: E0597, E0658.
+For more information about an error, try `rustc --explain E0597`.
diff --git a/src/test/compile-fail/issue-18119.rs b/src/test/ui/issue-18119.rs
index 412f7566f47..412f7566f47 100644
--- a/src/test/compile-fail/issue-18119.rs
+++ b/src/test/ui/issue-18119.rs
diff --git a/src/test/ui/issue-18119.stderr b/src/test/ui/issue-18119.stderr
new file mode 100644
index 00000000000..e0e2d089b7b
--- /dev/null
+++ b/src/test/ui/issue-18119.stderr
@@ -0,0 +1,21 @@
+error[E0573]: expected type, found constant `X`
+  --> $DIR/issue-18119.rs:15:6
+   |
+LL | impl X {}
+   |      ^ not a type
+
+error[E0573]: expected type, found static `Y`
+  --> $DIR/issue-18119.rs:17:6
+   |
+LL | impl Y {}
+   |      ^ not a type
+
+error[E0573]: expected type, found function `foo`
+  --> $DIR/issue-18119.rs:19:6
+   |
+LL | impl foo {}
+   |      ^^^ not a type
+
+error: aborting due to 3 previous errors
+
+For more information about this error, try `rustc --explain E0573`.
diff --git a/src/test/compile-fail/issue-18159.rs b/src/test/ui/issue-18159.rs
index 8991eded3d6..8991eded3d6 100644
--- a/src/test/compile-fail/issue-18159.rs
+++ b/src/test/ui/issue-18159.rs
diff --git a/src/test/ui/issue-18159.stderr b/src/test/ui/issue-18159.stderr
new file mode 100644
index 00000000000..894660f1ebf
--- /dev/null
+++ b/src/test/ui/issue-18159.stderr
@@ -0,0 +1,12 @@
+error[E0282]: type annotations needed
+  --> $DIR/issue-18159.rs:12:9
+   |
+LL |     let x; //~ ERROR type annotations needed
+   |         ^
+   |         |
+   |         cannot infer type for `_`
+   |         consider giving `x` a type
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0282`.
diff --git a/src/test/compile-fail/issue-18294.rs b/src/test/ui/issue-18294.rs
index efc1ba1635c..efc1ba1635c 100644
--- a/src/test/compile-fail/issue-18294.rs
+++ b/src/test/ui/issue-18294.rs
diff --git a/src/test/ui/issue-18294.stderr b/src/test/ui/issue-18294.stderr
new file mode 100644
index 00000000000..151deefb2b7
--- /dev/null
+++ b/src/test/ui/issue-18294.stderr
@@ -0,0 +1,9 @@
+error[E0018]: raw pointers cannot be cast to integers in constants
+  --> $DIR/issue-18294.rs:13:22
+   |
+LL |     const Y: usize = &X as *const u32 as usize; //~ ERROR E0018
+   |                      ^^^^^^^^^^^^^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0018`.
diff --git a/src/test/compile-fail/issue-18389.rs b/src/test/ui/issue-18389.rs
index aad3d52153a..aad3d52153a 100644
--- a/src/test/compile-fail/issue-18389.rs
+++ b/src/test/ui/issue-18389.rs
diff --git a/src/test/ui/issue-18389.stderr b/src/test/ui/issue-18389.stderr
new file mode 100644
index 00000000000..6f067301d04
--- /dev/null
+++ b/src/test/ui/issue-18389.stderr
@@ -0,0 +1,15 @@
+error[E0445]: private trait `Private<<Self as Public>::P, <Self as Public>::R>` in public interface
+  --> $DIR/issue-18389.rs:17:1
+   |
+LL | / pub trait Public: Private<
+LL | | //~^ ERROR private trait `Private<<Self as Public>::P, <Self as Public>::R>` in public interface
+LL | |     <Self as Public>::P,
+LL | |     <Self as Public>::R
+...  |
+LL | |     fn call_inner(&self);
+LL | | }
+   | |_^ can't leak private trait
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0445`.
diff --git a/src/test/compile-fail/issue-18400.rs b/src/test/ui/issue-18400.rs
index dd17189aeea..dd17189aeea 100644
--- a/src/test/compile-fail/issue-18400.rs
+++ b/src/test/ui/issue-18400.rs
diff --git a/src/test/ui/issue-18400.stderr b/src/test/ui/issue-18400.stderr
new file mode 100644
index 00000000000..2426d429ca1
--- /dev/null
+++ b/src/test/ui/issue-18400.stderr
@@ -0,0 +1,75 @@
+error[E0275]: overflow evaluating the requirement `_: std::marker::Sized`
+  --> $DIR/issue-18400.rs:34:7
+   |
+LL |     0.contains(bits);
+   |       ^^^^^^^^
+   |
+   = help: consider adding a `#![recursion_limit="128"]` attribute to your crate
+   = note: required because of the requirements on the impl of `Set<&[_]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[_]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[_]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[_]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[_]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[_]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[_]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[_]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[_]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+   = note: required because of the requirements on the impl of `Set<&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[&[_]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]>` for `{integer}`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0275`.
diff --git a/src/test/compile-fail/issue-18423.rs b/src/test/ui/issue-18423.rs
index 5945a7a1c9a..5945a7a1c9a 100644
--- a/src/test/compile-fail/issue-18423.rs
+++ b/src/test/ui/issue-18423.rs
diff --git a/src/test/ui/issue-18423.stderr b/src/test/ui/issue-18423.stderr
new file mode 100644
index 00000000000..25406198193
--- /dev/null
+++ b/src/test/ui/issue-18423.stderr
@@ -0,0 +1,9 @@
+error[E0107]: wrong number of lifetime parameters: expected 0, found 1
+  --> $DIR/issue-18423.rs:14:8
+   |
+LL |     x: Box<'a, isize> //~ ERROR wrong number of lifetime parameters
+   |        ^^^^^^^^^^^^^^ unexpected lifetime parameter
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0107`.
diff --git a/src/test/compile-fail/issue-18446.rs b/src/test/ui/issue-18446.rs
index 60afea5a621..60afea5a621 100644
--- a/src/test/compile-fail/issue-18446.rs
+++ b/src/test/ui/issue-18446.rs
diff --git a/src/test/ui/issue-18446.stderr b/src/test/ui/issue-18446.stderr
new file mode 100644
index 00000000000..d1914fc14f8
--- /dev/null
+++ b/src/test/ui/issue-18446.stderr
@@ -0,0 +1,21 @@
+error[E0034]: multiple applicable items in scope
+  --> $DIR/issue-18446.rs:28:7
+   |
+LL |     x.foo(); //~ ERROR multiple applicable items in scope [E0034]
+   |       ^^^ multiple `foo` found
+   |
+note: candidate #1 is defined in an impl for the type `dyn T`
+  --> $DIR/issue-18446.rs:19:5
+   |
+LL |     fn foo(&self) {}
+   |     ^^^^^^^^^^^^^
+note: candidate #2 is defined in the trait `T`
+  --> $DIR/issue-18446.rs:15:5
+   |
+LL |     fn foo(&self);
+   |     ^^^^^^^^^^^^^^
+   = help: to disambiguate the method call, write `T::foo(&x)` instead
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0034`.
diff --git a/src/test/compile-fail/issue-18532.rs b/src/test/ui/issue-18532.rs
index 2be5fdcac4e..2be5fdcac4e 100644
--- a/src/test/compile-fail/issue-18532.rs
+++ b/src/test/ui/issue-18532.rs
diff --git a/src/test/ui/issue-18532.stderr b/src/test/ui/issue-18532.stderr
new file mode 100644
index 00000000000..8f10cb0f7b0
--- /dev/null
+++ b/src/test/ui/issue-18532.stderr
@@ -0,0 +1,9 @@
+error[E0618]: expected function, found `!`
+  --> $DIR/issue-18532.rs:16:5
+   |
+LL |     (return)((),()); //~ ERROR expected function, found `!`
+   |     ^^^^^^^^^^^^^^^ not a function
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0618`.
diff --git a/src/test/ui/issue-18566.nll.stderr b/src/test/ui/issue-18566.nll.stderr
new file mode 100644
index 00000000000..b5ed33d07c5
--- /dev/null
+++ b/src/test/ui/issue-18566.nll.stderr
@@ -0,0 +1,13 @@
+error[E0499]: cannot borrow `*s` as mutable more than once at a time
+  --> $DIR/issue-18566.rs:33:19
+   |
+LL |     MyPtr(s).poke(s);
+   |     --------------^-
+   |     |     |       |
+   |     |     |       second mutable borrow occurs here
+   |     |     first mutable borrow occurs here
+   |     borrow later used here
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0499`.
diff --git a/src/test/compile-fail/issue-18566.rs b/src/test/ui/issue-18566.rs
index 41e82d0cd89..41e82d0cd89 100644
--- a/src/test/compile-fail/issue-18566.rs
+++ b/src/test/ui/issue-18566.rs
diff --git a/src/test/ui/issue-18566.stderr b/src/test/ui/issue-18566.stderr
new file mode 100644
index 00000000000..e07fde114f2
--- /dev/null
+++ b/src/test/ui/issue-18566.stderr
@@ -0,0 +1,12 @@
+error[E0499]: cannot borrow `*s` as mutable more than once at a time
+  --> $DIR/issue-18566.rs:33:19
+   |
+LL |     MyPtr(s).poke(s);
+   |           -       ^- first borrow ends here
+   |           |       |
+   |           |       second mutable borrow occurs here
+   |           first mutable borrow occurs here
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0499`.
diff --git a/src/test/compile-fail/issue-18611.rs b/src/test/ui/issue-18611.rs
index a3ad76e1be0..a3ad76e1be0 100644
--- a/src/test/compile-fail/issue-18611.rs
+++ b/src/test/ui/issue-18611.rs
diff --git a/src/test/ui/issue-18611.stderr b/src/test/ui/issue-18611.stderr
new file mode 100644
index 00000000000..d890a322f0c
--- /dev/null
+++ b/src/test/ui/issue-18611.stderr
@@ -0,0 +1,11 @@
+error[E0277]: the trait bound `isize: HasState` is not satisfied
+  --> $DIR/issue-18611.rs:11:1
+   |
+LL | / fn add_state(op: <isize as HasState>::State) {
+LL | | //~^ ERROR `isize: HasState` is not satisfied
+LL | | }
+   | |_^ the trait `HasState` is not implemented for `isize`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/compile-fail/issue-1871.rs b/src/test/ui/issue-1871.rs
index e4d132c8641..e4d132c8641 100644
--- a/src/test/compile-fail/issue-1871.rs
+++ b/src/test/ui/issue-1871.rs
diff --git a/src/test/ui/issue-1871.stderr b/src/test/ui/issue-1871.stderr
new file mode 100644
index 00000000000..0546848df9b
--- /dev/null
+++ b/src/test/ui/issue-1871.stderr
@@ -0,0 +1,9 @@
+error[E0599]: no method named `honk` found for type `{integer}` in the current scope
+  --> $DIR/issue-1871.rs:17:9
+   |
+LL |       f.honk() //~ ERROR no method named `honk` found
+   |         ^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0599`.
diff --git a/src/test/ui/issue-18783.nll.stderr b/src/test/ui/issue-18783.nll.stderr
new file mode 100644
index 00000000000..6bb7b4229d7
--- /dev/null
+++ b/src/test/ui/issue-18783.nll.stderr
@@ -0,0 +1,33 @@
+error[E0499]: cannot borrow `y` as mutable more than once at a time
+  --> $DIR/issue-18783.rs:17:21
+   |
+LL |     c.push(Box::new(|| y = 0));
+   |                     -- - previous borrow occurs due to use of `y` in closure
+   |                     |
+   |                     first mutable borrow occurs here
+LL |     c.push(Box::new(|| y = 0));
+   |                     ^^ - borrow occurs due to use of `y` in closure
+   |                     |
+   |                     second mutable borrow occurs here
+LL | //~^ ERROR cannot borrow `y` as mutable more than once at a time
+LL | }
+   | - borrow later used here, when `c` is dropped
+
+error[E0499]: cannot borrow `y` as mutable more than once at a time
+  --> $DIR/issue-18783.rs:26:29
+   |
+LL |     Push::push(&c, Box::new(|| y = 0));
+   |                             -- - previous borrow occurs due to use of `y` in closure
+   |                             |
+   |                             first mutable borrow occurs here
+LL |     Push::push(&c, Box::new(|| y = 0));
+   |                             ^^ - borrow occurs due to use of `y` in closure
+   |                             |
+   |                             second mutable borrow occurs here
+LL | //~^ ERROR cannot borrow `y` as mutable more than once at a time
+LL | }
+   | - borrow later used here, when `c` is dropped
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0499`.
diff --git a/src/test/compile-fail/issue-18783.rs b/src/test/ui/issue-18783.rs
index 9a7b3781f1e..9a7b3781f1e 100644
--- a/src/test/compile-fail/issue-18783.rs
+++ b/src/test/ui/issue-18783.rs
diff --git a/src/test/ui/issue-18783.stderr b/src/test/ui/issue-18783.stderr
new file mode 100644
index 00000000000..64d2809a36a
--- /dev/null
+++ b/src/test/ui/issue-18783.stderr
@@ -0,0 +1,33 @@
+error[E0499]: cannot borrow `y` as mutable more than once at a time
+  --> $DIR/issue-18783.rs:17:21
+   |
+LL |     c.push(Box::new(|| y = 0));
+   |                     -- - previous borrow occurs due to use of `y` in closure
+   |                     |
+   |                     first mutable borrow occurs here
+LL |     c.push(Box::new(|| y = 0));
+   |                     ^^ - borrow occurs due to use of `y` in closure
+   |                     |
+   |                     second mutable borrow occurs here
+LL | //~^ ERROR cannot borrow `y` as mutable more than once at a time
+LL | }
+   | - first borrow ends here
+
+error[E0499]: cannot borrow `y` as mutable more than once at a time
+  --> $DIR/issue-18783.rs:26:29
+   |
+LL |     Push::push(&c, Box::new(|| y = 0));
+   |                             -- - previous borrow occurs due to use of `y` in closure
+   |                             |
+   |                             first mutable borrow occurs here
+LL |     Push::push(&c, Box::new(|| y = 0));
+   |                             ^^ - borrow occurs due to use of `y` in closure
+   |                             |
+   |                             second mutable borrow occurs here
+LL | //~^ ERROR cannot borrow `y` as mutable more than once at a time
+LL | }
+   | - first borrow ends here
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0499`.
diff --git a/src/test/compile-fail/issue-18919.rs b/src/test/ui/issue-18919.rs
index cc87a0977a0..cc87a0977a0 100644
--- a/src/test/compile-fail/issue-18919.rs
+++ b/src/test/ui/issue-18919.rs
diff --git a/src/test/ui/issue-18919.stderr b/src/test/ui/issue-18919.stderr
new file mode 100644
index 00000000000..012a1eb4d21
--- /dev/null
+++ b/src/test/ui/issue-18919.stderr
@@ -0,0 +1,15 @@
+error[E0277]: the size for values of type `dyn for<'r> std::ops::Fn(&'r isize) -> isize` cannot be known at compilation time
+  --> $DIR/issue-18919.rs:13:1
+   |
+LL | / fn ho_func(f: Option<FuncType>) {
+LL | |     //~^ ERROR the size for values of type
+LL | | }
+   | |_^ doesn't have a size known at compile-time
+   |
+   = help: the trait `std::marker::Sized` is not implemented for `dyn for<'r> std::ops::Fn(&'r isize) -> isize`
+   = note: to learn more, visit <https://doc.rust-lang.org/book/second-edition/ch19-04-advanced-types.html#dynamically-sized-types--sized>
+   = note: required by `std::option::Option`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/compile-fail/issue-18937.rs b/src/test/ui/issue-18937.rs
index f7f84e6452d..f7f84e6452d 100644
--- a/src/test/compile-fail/issue-18937.rs
+++ b/src/test/ui/issue-18937.rs
diff --git a/src/test/ui/issue-18937.stderr b/src/test/ui/issue-18937.stderr
new file mode 100644
index 00000000000..7b4c35e0dbe
--- /dev/null
+++ b/src/test/ui/issue-18937.stderr
@@ -0,0 +1,18 @@
+error[E0276]: impl has stricter requirements than trait
+  --> $DIR/issue-18937.rs:29:5
+   |
+LL | /     fn foo<F>(&mut self, f: F)
+LL | |         where F: fmt::Debug + 'a,
+LL | |               Self: Sized;
+   | |__________________________- definition of `foo` from trait
+...
+LL | /     fn foo<F>(&mut self, f: F) //~ ERROR impl has stricter
+LL | |         where F: fmt::Debug + 'static,
+LL | |     {
+LL | |         self.list.push(Box::new(f));
+LL | |     }
+   | |_____^ impl has extra requirement `F: 'static`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0276`.
diff --git a/src/test/compile-fail/issue-18959.rs b/src/test/ui/issue-18959.rs
index 7a6d012a3b6..7a6d012a3b6 100644
--- a/src/test/compile-fail/issue-18959.rs
+++ b/src/test/ui/issue-18959.rs
diff --git a/src/test/ui/issue-18959.stderr b/src/test/ui/issue-18959.stderr
new file mode 100644
index 00000000000..42a1c2d4d03
--- /dev/null
+++ b/src/test/ui/issue-18959.stderr
@@ -0,0 +1,11 @@
+error[E0038]: the trait `Bar` cannot be made into an object
+  --> $DIR/issue-18959.rs:21:1
+   |
+LL | fn foo(b: &Bar) {
+   | ^^^^^^^^^^^^^^^ the trait `Bar` cannot be made into an object
+   |
+   = note: method `foo` has generic type parameters
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0038`.
diff --git a/src/test/compile-fail/issue-1900.rs b/src/test/ui/issue-1900.rs
index ccdd9db25c4..e41bb0030ae 100644
--- a/src/test/compile-fail/issue-1900.rs
+++ b/src/test/ui/issue-1900.rs
@@ -8,5 +8,5 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-// error-pattern: `main` function is not allowed to have generic parameters
 fn main<T>() { }
+//~^ ERROR `main` function is not allowed to have generic parameters
diff --git a/src/test/ui/issue-1900.stderr b/src/test/ui/issue-1900.stderr
new file mode 100644
index 00000000000..512a923fadd
--- /dev/null
+++ b/src/test/ui/issue-1900.stderr
@@ -0,0 +1,9 @@
+error[E0131]: `main` function is not allowed to have generic parameters
+  --> $DIR/issue-1900.rs:11:8
+   |
+LL | fn main<T>() { }
+   |        ^^^ `main` cannot have generic parameters
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0131`.
diff --git a/src/test/compile-fail/issue-19086.rs b/src/test/ui/issue-19086.rs
index ba571ce17fd..ba571ce17fd 100644
--- a/src/test/compile-fail/issue-19086.rs
+++ b/src/test/ui/issue-19086.rs
diff --git a/src/test/ui/issue-19086.stderr b/src/test/ui/issue-19086.stderr
new file mode 100644
index 00000000000..b71d40065c3
--- /dev/null
+++ b/src/test/ui/issue-19086.stderr
@@ -0,0 +1,9 @@
+error[E0532]: expected tuple struct/variant, found struct variant `FooB`
+  --> $DIR/issue-19086.rs:20:9
+   |
+LL |         FooB(a, b) => println!("{} {}", a, b),
+   |         ^^^^ did you mean `FooB { /* fields */ }`?
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0532`.
diff --git a/src/test/compile-fail/issue-19244-1.rs b/src/test/ui/issue-19244-1.rs
index df34aab4b8f..df34aab4b8f 100644
--- a/src/test/compile-fail/issue-19244-1.rs
+++ b/src/test/ui/issue-19244-1.rs
diff --git a/src/test/ui/issue-19244-1.stderr b/src/test/ui/issue-19244-1.stderr
new file mode 100644
index 00000000000..28e66b2d974
--- /dev/null
+++ b/src/test/ui/issue-19244-1.stderr
@@ -0,0 +1,9 @@
+error[E0609]: no field `1` on type `(usize,)`
+  --> $DIR/issue-19244-1.rs:14:24
+   |
+LL |     let a: [isize; TUP.1];
+   |                        ^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0609`.
diff --git a/src/test/compile-fail/issue-19244-2.rs b/src/test/ui/issue-19244-2.rs
index 864f8f6b54e..864f8f6b54e 100644
--- a/src/test/compile-fail/issue-19244-2.rs
+++ b/src/test/ui/issue-19244-2.rs
diff --git a/src/test/ui/issue-19244-2.stderr b/src/test/ui/issue-19244-2.stderr
new file mode 100644
index 00000000000..3969c77f24d
--- /dev/null
+++ b/src/test/ui/issue-19244-2.stderr
@@ -0,0 +1,11 @@
+error[E0609]: no field `nonexistent_field` on type `MyStruct`
+  --> $DIR/issue-19244-2.rs:15:27
+   |
+LL |     let a: [isize; STRUCT.nonexistent_field];
+   |                           ^^^^^^^^^^^^^^^^^ unknown field
+   |
+   = note: available fields are: `field`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0609`.
diff --git a/src/test/compile-fail/issue-19380.rs b/src/test/ui/issue-19380.rs
index 322952ffef1..322952ffef1 100644
--- a/src/test/compile-fail/issue-19380.rs
+++ b/src/test/ui/issue-19380.rs
diff --git a/src/test/ui/issue-19380.stderr b/src/test/ui/issue-19380.stderr
new file mode 100644
index 00000000000..a251d3b2990
--- /dev/null
+++ b/src/test/ui/issue-19380.stderr
@@ -0,0 +1,11 @@
+error[E0038]: the trait `Qiz` cannot be made into an object
+  --> $DIR/issue-19380.rs:21:3
+   |
+LL |   foos: &'static [&'static (Qiz + 'static)]
+   |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Qiz` cannot be made into an object
+   |
+   = note: method `qiz` has no receiver
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0038`.
diff --git a/src/test/compile-fail/issue-19482.rs b/src/test/ui/issue-19482.rs
index b54f008f8ce..b54f008f8ce 100644
--- a/src/test/compile-fail/issue-19482.rs
+++ b/src/test/ui/issue-19482.rs
diff --git a/src/test/ui/issue-19482.stderr b/src/test/ui/issue-19482.stderr
new file mode 100644
index 00000000000..5e2d427ab72
--- /dev/null
+++ b/src/test/ui/issue-19482.stderr
@@ -0,0 +1,9 @@
+error[E0191]: the value of the associated type `A` (from the trait `Foo`) must be specified
+  --> $DIR/issue-19482.rs:20:12
+   |
+LL | fn bar(x: &Foo) {}
+   |            ^^^ missing associated type `A` value
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0191`.
diff --git a/src/test/compile-fail/issue-19521.rs b/src/test/ui/issue-19521.rs
index 93d95ca0b0f..93d95ca0b0f 100644
--- a/src/test/compile-fail/issue-19521.rs
+++ b/src/test/ui/issue-19521.rs
diff --git a/src/test/ui/issue-19521.stderr b/src/test/ui/issue-19521.stderr
new file mode 100644
index 00000000000..8f81bcbd4c4
--- /dev/null
+++ b/src/test/ui/issue-19521.stderr
@@ -0,0 +1,9 @@
+error[E0599]: no method named `homura` found for type `&'static str` in the current scope
+  --> $DIR/issue-19521.rs:12:8
+   |
+LL |     "".homura()(); //~ ERROR no method named `homura` found
+   |        ^^^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0599`.
diff --git a/src/test/compile-fail/issue-19538.rs b/src/test/ui/issue-19538.rs
index a6190500582..a6190500582 100644
--- a/src/test/compile-fail/issue-19538.rs
+++ b/src/test/ui/issue-19538.rs
diff --git a/src/test/ui/issue-19538.stderr b/src/test/ui/issue-19538.stderr
new file mode 100644
index 00000000000..3cd73ad9d45
--- /dev/null
+++ b/src/test/ui/issue-19538.stderr
@@ -0,0 +1,20 @@
+error[E0038]: the trait `Bar` cannot be made into an object
+  --> $DIR/issue-19538.rs:27:15
+   |
+LL |     let test: &mut Bar = &mut thing;
+   |               ^^^^^^^^ the trait `Bar` cannot be made into an object
+   |
+   = note: method `foo` has generic type parameters
+
+error[E0038]: the trait `Bar` cannot be made into an object
+  --> $DIR/issue-19538.rs:27:26
+   |
+LL |     let test: &mut Bar = &mut thing;
+   |                          ^^^^^^^^^^ the trait `Bar` cannot be made into an object
+   |
+   = note: method `foo` has generic type parameters
+   = note: required because of the requirements on the impl of `std::ops::CoerceUnsized<&mut dyn Bar>` for `&mut Thing`
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0038`.
diff --git a/src/test/compile-fail/issue-19601.rs b/src/test/ui/issue-19601.rs
index 02b4932cea8..02b4932cea8 100644
--- a/src/test/compile-fail/issue-19601.rs
+++ b/src/test/ui/issue-19601.rs
diff --git a/src/test/ui/issue-19601.stderr b/src/test/ui/issue-19601.stderr
new file mode 100644
index 00000000000..594d76605fe
--- /dev/null
+++ b/src/test/ui/issue-19601.stderr
@@ -0,0 +1,9 @@
+error: compilation successful
+  --> $DIR/issue-19601.rs:18:1
+   |
+LL | / fn main() { //~ ERROR compilation successful
+LL | | }
+   | |_^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-19660.rs b/src/test/ui/issue-19660.rs
index c4b871a28c5..c4b871a28c5 100644
--- a/src/test/compile-fail/issue-19660.rs
+++ b/src/test/ui/issue-19660.rs
diff --git a/src/test/ui/issue-19660.stderr b/src/test/ui/issue-19660.stderr
new file mode 100644
index 00000000000..f5d903f38eb
--- /dev/null
+++ b/src/test/ui/issue-19660.stderr
@@ -0,0 +1,4 @@
+error: requires `copy` lang_item
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-19692.rs b/src/test/ui/issue-19692.rs
index ca1715445e5..ca1715445e5 100644
--- a/src/test/compile-fail/issue-19692.rs
+++ b/src/test/ui/issue-19692.rs
diff --git a/src/test/ui/issue-19692.stderr b/src/test/ui/issue-19692.stderr
new file mode 100644
index 00000000000..33361ff8488
--- /dev/null
+++ b/src/test/ui/issue-19692.stderr
@@ -0,0 +1,12 @@
+error[E0599]: no method named `kaname` found for type `Homura` in the current scope
+  --> $DIR/issue-19692.rs:14:40
+   |
+LL | struct Homura;
+   | -------------- method `kaname` not found for this
+...
+LL |     let Some(ref madoka) = Some(homura.kaname()); //~ ERROR no method named `kaname` found
+   |                                        ^^^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0599`.
diff --git a/src/test/compile-fail/issue-19734.rs b/src/test/ui/issue-19734.rs
index a3820d20aac..a3820d20aac 100644
--- a/src/test/compile-fail/issue-19734.rs
+++ b/src/test/ui/issue-19734.rs
diff --git a/src/test/ui/issue-19734.stderr b/src/test/ui/issue-19734.stderr
new file mode 100644
index 00000000000..1d07f4dedc3
--- /dev/null
+++ b/src/test/ui/issue-19734.stderr
@@ -0,0 +1,8 @@
+error: cannot find macro `undef!` in this scope
+  --> $DIR/issue-19734.rs:16:5
+   |
+LL |     undef!();
+   |     ^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-19883.rs b/src/test/ui/issue-19883.rs
index 9b6a87702a9..9b6a87702a9 100644
--- a/src/test/compile-fail/issue-19883.rs
+++ b/src/test/ui/issue-19883.rs
diff --git a/src/test/ui/issue-19883.stderr b/src/test/ui/issue-19883.stderr
new file mode 100644
index 00000000000..b4262b4cdb3
--- /dev/null
+++ b/src/test/ui/issue-19883.stderr
@@ -0,0 +1,9 @@
+error[E0576]: cannot find associated type `Dst` in trait `From`
+  --> $DIR/issue-19883.rs:19:30
+   |
+LL |         <Dst as From<Self>>::Dst
+   |                              ^^^ not found in `From`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0576`.
diff --git a/src/test/compile-fail/issue-19982.rs b/src/test/ui/issue-19982.rs
index 9dbca997341..9dbca997341 100644
--- a/src/test/compile-fail/issue-19982.rs
+++ b/src/test/ui/issue-19982.rs
diff --git a/src/test/ui/issue-19982.stderr b/src/test/ui/issue-19982.stderr
new file mode 100644
index 00000000000..9f13ba640a9
--- /dev/null
+++ b/src/test/ui/issue-19982.stderr
@@ -0,0 +1,9 @@
+error[E0106]: missing lifetime specifier
+  --> $DIR/issue-19982.rs:15:10
+   |
+LL | impl Fn<(&(),)> for Foo { } //~ ERROR missing lifetime specifier
+   |          ^ expected lifetime parameter
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0106`.
diff --git a/src/test/compile-fail/issue-19991.rs b/src/test/ui/issue-19991.rs
index e07dfaf9fe5..e07dfaf9fe5 100644
--- a/src/test/compile-fail/issue-19991.rs
+++ b/src/test/ui/issue-19991.rs
diff --git a/src/test/ui/issue-19991.stderr b/src/test/ui/issue-19991.stderr
new file mode 100644
index 00000000000..45b2ef8b280
--- /dev/null
+++ b/src/test/ui/issue-19991.stderr
@@ -0,0 +1,17 @@
+error[E0317]: if may be missing an else clause
+  --> $DIR/issue-19991.rs:15:5
+   |
+LL | /     if let Some(homura) = Some("madoka") { //~  ERROR missing an else clause
+LL | |                                            //~| expected type `()`
+LL | |                                            //~| found type `{integer}`
+LL | |                                            //~| expected (), found integral variable
+LL | |         765
+LL | |     };
+   | |_____^ expected (), found integral variable
+   |
+   = note: expected type `()`
+              found type `{integer}`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0317`.
diff --git a/src/test/compile-fail/issue-20005.rs b/src/test/ui/issue-20005.rs
index 8db09182fa3..8db09182fa3 100644
--- a/src/test/compile-fail/issue-20005.rs
+++ b/src/test/ui/issue-20005.rs
diff --git a/src/test/ui/issue-20005.stderr b/src/test/ui/issue-20005.stderr
new file mode 100644
index 00000000000..2fdfa4ba6f8
--- /dev/null
+++ b/src/test/ui/issue-20005.stderr
@@ -0,0 +1,22 @@
+error[E0277]: the size for values of type `Self` cannot be known at compilation time
+  --> $DIR/issue-20005.rs:18:5
+   |
+LL | /     fn to<Dst>(  //~ ERROR the size for values of type
+LL | |         self
+LL | |     ) -> <Dst as From<Self>>::Result where Dst: From<Self> {
+LL | |         From::from(self)
+LL | |     }
+   | |_____^ doesn't have a size known at compile-time
+   |
+   = help: the trait `std::marker::Sized` is not implemented for `Self`
+   = note: to learn more, visit <https://doc.rust-lang.org/book/second-edition/ch19-04-advanced-types.html#dynamically-sized-types--sized>
+   = help: consider adding a `where Self: std::marker::Sized` bound
+note: required by `From`
+  --> $DIR/issue-20005.rs:11:1
+   |
+LL | trait From<Src> {
+   | ^^^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/compile-fail/issue-20162.rs b/src/test/ui/issue-20162.rs
index b2f3a2da516..b2f3a2da516 100644
--- a/src/test/compile-fail/issue-20162.rs
+++ b/src/test/ui/issue-20162.rs
diff --git a/src/test/ui/issue-20162.stderr b/src/test/ui/issue-20162.stderr
new file mode 100644
index 00000000000..0fb7009d574
--- /dev/null
+++ b/src/test/ui/issue-20162.stderr
@@ -0,0 +1,9 @@
+error[E0277]: the trait bound `X: std::cmp::Ord` is not satisfied
+  --> $DIR/issue-20162.rs:15:7
+   |
+LL |     b.sort();
+   |       ^^^^ the trait `std::cmp::Ord` is not implemented for `X`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/compile-fail/issue-20225.rs b/src/test/ui/issue-20225.rs
index da98f21e461..da98f21e461 100644
--- a/src/test/compile-fail/issue-20225.rs
+++ b/src/test/ui/issue-20225.rs
diff --git a/src/test/ui/issue-20225.stderr b/src/test/ui/issue-20225.stderr
new file mode 100644
index 00000000000..7813dc5c11d
--- /dev/null
+++ b/src/test/ui/issue-20225.stderr
@@ -0,0 +1,30 @@
+error[E0053]: method `call` has an incompatible type for trait
+  --> $DIR/issue-20225.rs:16:3
+   |
+LL |   extern "rust-call" fn call(&self, (_,): (T,)) {}
+   |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected reference, found type parameter
+   |
+   = note: expected type `extern "rust-call" fn(&Foo, (&'a T,))`
+              found type `extern "rust-call" fn(&Foo, (T,))`
+
+error[E0053]: method `call_mut` has an incompatible type for trait
+  --> $DIR/issue-20225.rs:22:3
+   |
+LL |   extern "rust-call" fn call_mut(&mut self, (_,): (T,)) {}
+   |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected reference, found type parameter
+   |
+   = note: expected type `extern "rust-call" fn(&mut Foo, (&'a T,))`
+              found type `extern "rust-call" fn(&mut Foo, (T,))`
+
+error[E0053]: method `call_once` has an incompatible type for trait
+  --> $DIR/issue-20225.rs:30:3
+   |
+LL |   extern "rust-call" fn call_once(self, (_,): (T,)) {}
+   |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected reference, found type parameter
+   |
+   = note: expected type `extern "rust-call" fn(Foo, (&'a T,))`
+              found type `extern "rust-call" fn(Foo, (T,))`
+
+error: aborting due to 3 previous errors
+
+For more information about this error, try `rustc --explain E0053`.
diff --git a/src/test/compile-fail/issue-20261.rs b/src/test/ui/issue-20261.rs
index bb4dbdcd0cb..bb4dbdcd0cb 100644
--- a/src/test/compile-fail/issue-20261.rs
+++ b/src/test/ui/issue-20261.rs
diff --git a/src/test/ui/issue-20261.stderr b/src/test/ui/issue-20261.stderr
new file mode 100644
index 00000000000..a4a2aec8969
--- /dev/null
+++ b/src/test/ui/issue-20261.stderr
@@ -0,0 +1,13 @@
+error[E0282]: type annotations needed
+  --> $DIR/issue-20261.rs:14:11
+   |
+LL |     for (ref i,) in [].iter() {
+   |         -------- consider giving `__next` a type
+LL |         i.clone();
+   |           ^^^^^ cannot infer type for `_`
+   |
+   = note: type must be known at this point
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0282`.
diff --git a/src/test/compile-fail/issue-20313.rs b/src/test/ui/issue-20313.rs
index dfb23c05036..dfb23c05036 100644
--- a/src/test/compile-fail/issue-20313.rs
+++ b/src/test/ui/issue-20313.rs
diff --git a/src/test/ui/issue-20313.stderr b/src/test/ui/issue-20313.stderr
new file mode 100644
index 00000000000..95afda1b514
--- /dev/null
+++ b/src/test/ui/issue-20313.stderr
@@ -0,0 +1,11 @@
+error[E0658]: linking to LLVM intrinsics is experimental (see issue #29602)
+  --> $DIR/issue-20313.rs:13:5
+   |
+LL |     fn sqrt(x: f32) -> f32; //~ ERROR linking to LLVM intrinsics is experimental
+   |     ^^^^^^^^^^^^^^^^^^^^^^^
+   |
+   = help: add #![feature(link_llvm_intrinsics)] to the crate attributes to enable
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0658`.
diff --git a/src/test/compile-fail/issue-20413.rs b/src/test/ui/issue-20413.rs
index a48c03aa178..a48c03aa178 100644
--- a/src/test/compile-fail/issue-20413.rs
+++ b/src/test/ui/issue-20413.rs
diff --git a/src/test/ui/issue-20413.stderr b/src/test/ui/issue-20413.stderr
new file mode 100644
index 00000000000..bfb2665e867
--- /dev/null
+++ b/src/test/ui/issue-20413.stderr
@@ -0,0 +1,94 @@
+error[E0392]: parameter `T` is never used
+  --> $DIR/issue-20413.rs:15:15
+   |
+LL | struct NoData<T>;
+   |               ^ unused type parameter
+   |
+   = help: consider removing `T` or using a marker such as `std::marker::PhantomData`
+
+error[E0275]: overflow evaluating the requirement `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>: std::marker::Sized`
+  --> $DIR/issue-20413.rs:18:1
+   |
+LL | / impl<T> Foo for T where NoData<T>: Foo {
+LL | | //~^ ERROR: overflow evaluating the requirement
+LL | |   fn answer(self) {
+LL | |     let val: NoData<T> = NoData;
+LL | |   }
+LL | | }
+   | |_^
+   |
+   = help: consider adding a `#![recursion_limit="128"]` attribute to your crate
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<NoData<T>>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<NoData<T>>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<NoData<T>>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<NoData<T>>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<NoData<T>>`
+   = note: required because of the requirements on the impl of `Foo` for `NoData<T>`
+note: required by `Foo`
+  --> $DIR/issue-20413.rs:11:1
+   |
+LL | trait Foo {
+   | ^^^^^^^^^
+
+error: aborting due to 2 previous errors
+
+Some errors occurred: E0275, E0392.
+For more information about an error, try `rustc --explain E0275`.
diff --git a/src/test/compile-fail/issue-20433.rs b/src/test/ui/issue-20433.rs
index f760cd59968..f760cd59968 100644
--- a/src/test/compile-fail/issue-20433.rs
+++ b/src/test/ui/issue-20433.rs
diff --git a/src/test/ui/issue-20433.stderr b/src/test/ui/issue-20433.stderr
new file mode 100644
index 00000000000..38dd4e5e7fe
--- /dev/null
+++ b/src/test/ui/issue-20433.stderr
@@ -0,0 +1,13 @@
+error[E0277]: the size for values of type `[i32]` cannot be known at compilation time
+  --> $DIR/issue-20433.rs:16:5
+   |
+LL |     fn iceman(c: Vec<[i32]>) {}
+   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
+   |
+   = help: the trait `std::marker::Sized` is not implemented for `[i32]`
+   = note: to learn more, visit <https://doc.rust-lang.org/book/second-edition/ch19-04-advanced-types.html#dynamically-sized-types--sized>
+   = note: required by `std::vec::Vec`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/compile-fail/issue-20605.rs b/src/test/ui/issue-20605.rs
index 60d012ab134..60d012ab134 100644
--- a/src/test/compile-fail/issue-20605.rs
+++ b/src/test/ui/issue-20605.rs
diff --git a/src/test/ui/issue-20605.stderr b/src/test/ui/issue-20605.stderr
new file mode 100644
index 00000000000..10e90faf2df
--- /dev/null
+++ b/src/test/ui/issue-20605.stderr
@@ -0,0 +1,13 @@
+error[E0277]: the size for values of type `dyn std::iter::Iterator<Item=&mut u8>` cannot be known at compilation time
+  --> $DIR/issue-20605.rs:12:17
+   |
+LL |     for item in *things { *item = 0 }
+   |                 ^^^^^^^ doesn't have a size known at compile-time
+   |
+   = help: the trait `std::marker::Sized` is not implemented for `dyn std::iter::Iterator<Item=&mut u8>`
+   = note: to learn more, visit <https://doc.rust-lang.org/book/second-edition/ch19-04-advanced-types.html#dynamically-sized-types--sized>
+   = note: required by `std::iter::IntoIterator::into_iter`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/compile-fail/issue-20616-1.rs b/src/test/ui/issue-20616-1.rs
index 3e29383d62c..3e29383d62c 100644
--- a/src/test/compile-fail/issue-20616-1.rs
+++ b/src/test/ui/issue-20616-1.rs
diff --git a/src/test/ui/issue-20616-1.stderr b/src/test/ui/issue-20616-1.stderr
new file mode 100644
index 00000000000..1ee965d2186
--- /dev/null
+++ b/src/test/ui/issue-20616-1.stderr
@@ -0,0 +1,8 @@
+error: expected one of `,`, `:`, or `>`, found `T`
+  --> $DIR/issue-20616-1.rs:19:16
+   |
+LL | type Type_1<'a T> = &'a T; //~ error: expected one of `,`, `:`, or `>`, found `T`
+   |                ^ expected one of `,`, `:`, or `>` here
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-20616-2.rs b/src/test/ui/issue-20616-2.rs
index 1ec7a74559a..1ec7a74559a 100644
--- a/src/test/compile-fail/issue-20616-2.rs
+++ b/src/test/ui/issue-20616-2.rs
diff --git a/src/test/ui/issue-20616-2.stderr b/src/test/ui/issue-20616-2.stderr
new file mode 100644
index 00000000000..1c103b21a18
--- /dev/null
+++ b/src/test/ui/issue-20616-2.stderr
@@ -0,0 +1,8 @@
+error: expected one of `,` or `>`, found `(`
+  --> $DIR/issue-20616-2.rs:22:31
+   |
+LL | type Type_2 = Type_1_<'static ()>; //~ error: expected one of `,` or `>`, found `(`
+   |                               ^ expected one of `,` or `>` here
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-20616-3.rs b/src/test/ui/issue-20616-3.rs
index 885fd246547..885fd246547 100644
--- a/src/test/compile-fail/issue-20616-3.rs
+++ b/src/test/ui/issue-20616-3.rs
diff --git a/src/test/ui/issue-20616-3.stderr b/src/test/ui/issue-20616-3.stderr
new file mode 100644
index 00000000000..b4b40b3637d
--- /dev/null
+++ b/src/test/ui/issue-20616-3.stderr
@@ -0,0 +1,8 @@
+error: expected one of `>`, identifier, lifetime, or type, found `,`
+  --> $DIR/issue-20616-3.rs:25:24
+   |
+LL | type Type_3<T> = Box<T,,>; //~ error: expected one of `>`, identifier, lifetime, or type, found `,`
+   |                        ^ expected one of `>`, identifier, lifetime, or type here
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-20616-4.rs b/src/test/ui/issue-20616-4.rs
index 0dbe92fc1bc..0dbe92fc1bc 100644
--- a/src/test/compile-fail/issue-20616-4.rs
+++ b/src/test/ui/issue-20616-4.rs
diff --git a/src/test/ui/issue-20616-4.stderr b/src/test/ui/issue-20616-4.stderr
new file mode 100644
index 00000000000..0a734e4fdcd
--- /dev/null
+++ b/src/test/ui/issue-20616-4.stderr
@@ -0,0 +1,8 @@
+error: expected one of `>`, identifier, lifetime, or type, found `,`
+  --> $DIR/issue-20616-4.rs:28:34
+   |
+LL | type Type_4<T> = Type_1_<'static,, T>;
+   |                                  ^ expected one of `>`, identifier, lifetime, or type here
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-20616-5.rs b/src/test/ui/issue-20616-5.rs
index 794e5178f4b..794e5178f4b 100644
--- a/src/test/compile-fail/issue-20616-5.rs
+++ b/src/test/ui/issue-20616-5.rs
diff --git a/src/test/ui/issue-20616-5.stderr b/src/test/ui/issue-20616-5.stderr
new file mode 100644
index 00000000000..504be1632ba
--- /dev/null
+++ b/src/test/ui/issue-20616-5.stderr
@@ -0,0 +1,8 @@
+error: expected one of `>`, identifier, lifetime, or type, found `,`
+  --> $DIR/issue-20616-5.rs:34:34
+   |
+LL | type Type_5<'a> = Type_1_<'a, (),,>;
+   |                                  ^ expected one of `>`, identifier, lifetime, or type here
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-20616-6.rs b/src/test/ui/issue-20616-6.rs
index fe91751a4a0..fe91751a4a0 100644
--- a/src/test/compile-fail/issue-20616-6.rs
+++ b/src/test/ui/issue-20616-6.rs
diff --git a/src/test/ui/issue-20616-6.stderr b/src/test/ui/issue-20616-6.stderr
new file mode 100644
index 00000000000..41dea4137af
--- /dev/null
+++ b/src/test/ui/issue-20616-6.stderr
@@ -0,0 +1,8 @@
+error: expected one of `>`, identifier, lifetime, or type, found `,`
+  --> $DIR/issue-20616-6.rs:37:26
+   |
+LL | type Type_6 = Type_5_<'a,,>;
+   |                          ^ expected one of `>`, identifier, lifetime, or type here
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-20616-7.rs b/src/test/ui/issue-20616-7.rs
index 184ad027102..184ad027102 100644
--- a/src/test/compile-fail/issue-20616-7.rs
+++ b/src/test/ui/issue-20616-7.rs
diff --git a/src/test/ui/issue-20616-7.stderr b/src/test/ui/issue-20616-7.stderr
new file mode 100644
index 00000000000..caf66895fab
--- /dev/null
+++ b/src/test/ui/issue-20616-7.stderr
@@ -0,0 +1,8 @@
+error: expected one of `>`, identifier, lifetime, or type, found `,`
+  --> $DIR/issue-20616-7.rs:40:22
+   |
+LL | type Type_7 = Box<(),,>; //~ error: expected one of `>`, identifier, lifetime, or type, found `,`
+   |                      ^ expected one of `>`, identifier, lifetime, or type here
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-20616-8.rs b/src/test/ui/issue-20616-8.rs
index 5cdec33e94b..5cdec33e94b 100644
--- a/src/test/compile-fail/issue-20616-8.rs
+++ b/src/test/ui/issue-20616-8.rs
diff --git a/src/test/ui/issue-20616-8.stderr b/src/test/ui/issue-20616-8.stderr
new file mode 100644
index 00000000000..6d840fc562b
--- /dev/null
+++ b/src/test/ui/issue-20616-8.stderr
@@ -0,0 +1,8 @@
+error: expected one of `>`, identifier, or lifetime, found `,`
+  --> $DIR/issue-20616-8.rs:43:16
+   |
+LL | type Type_8<'a,,> = &'a (); //~ error: expected one of `>`, identifier, or lifetime, found `,`
+   |                ^ expected one of `>`, identifier, or lifetime here
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-20616-9.rs b/src/test/ui/issue-20616-9.rs
index 7995addb692..7995addb692 100644
--- a/src/test/compile-fail/issue-20616-9.rs
+++ b/src/test/ui/issue-20616-9.rs
diff --git a/src/test/ui/issue-20616-9.stderr b/src/test/ui/issue-20616-9.stderr
new file mode 100644
index 00000000000..f9cc4e0b480
--- /dev/null
+++ b/src/test/ui/issue-20616-9.stderr
@@ -0,0 +1,8 @@
+error: expected one of `>`, identifier, or lifetime, found `,`
+  --> $DIR/issue-20616-9.rs:46:15
+   |
+LL | type Type_9<T,,> = Box<T>; //~ error: expected one of `>`, identifier, or lifetime, found `,`
+   |               ^ expected one of `>`, identifier, or lifetime here
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-20714.rs b/src/test/ui/issue-20714.rs
index cb322f00723..cb322f00723 100644
--- a/src/test/compile-fail/issue-20714.rs
+++ b/src/test/ui/issue-20714.rs
diff --git a/src/test/ui/issue-20714.stderr b/src/test/ui/issue-20714.stderr
new file mode 100644
index 00000000000..1ea85ee440e
--- /dev/null
+++ b/src/test/ui/issue-20714.stderr
@@ -0,0 +1,12 @@
+error[E0618]: expected function, found `G`
+  --> $DIR/issue-20714.rs:14:13
+   |
+LL | struct G;
+   | --------- `G` defined here
+...
+LL |     let g = G(); //~ ERROR: expected function, found `G`
+   |             ^^^ not a function
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0618`.
diff --git a/src/test/compile-fail/issue-20772.rs b/src/test/ui/issue-20772.rs
index d67c76a1525..d67c76a1525 100644
--- a/src/test/compile-fail/issue-20772.rs
+++ b/src/test/ui/issue-20772.rs
diff --git a/src/test/ui/issue-20772.stderr b/src/test/ui/issue-20772.stderr
new file mode 100644
index 00000000000..b898962c9cc
--- /dev/null
+++ b/src/test/ui/issue-20772.stderr
@@ -0,0 +1,21 @@
+error[E0391]: cycle detected when computing the supertraits of `T`
+  --> $DIR/issue-20772.rs:11:1
+   |
+LL | / trait T : Iterator<Item=Self::Item>
+LL | | //~^ ERROR cycle detected
+LL | | //~| ERROR associated type `Item` not found for `Self`
+LL | | {}
+   | |__^
+   |
+   = note: ...which again requires computing the supertraits of `T`, completing the cycle
+
+error[E0220]: associated type `Item` not found for `Self`
+  --> $DIR/issue-20772.rs:11:25
+   |
+LL | trait T : Iterator<Item=Self::Item>
+   |                         ^^^^^^^^^^ associated type `Item` not found
+
+error: aborting due to 2 previous errors
+
+Some errors occurred: E0220, E0391.
+For more information about an error, try `rustc --explain E0220`.
diff --git a/src/test/ui/issue-20801.nll.stderr b/src/test/ui/issue-20801.nll.stderr
new file mode 100644
index 00000000000..39b1405991a
--- /dev/null
+++ b/src/test/ui/issue-20801.nll.stderr
@@ -0,0 +1,8 @@
+error: internal compiler error: Accessing `(*_8)` with the kind `Write(Move)` shouldn't be possible
+  --> $DIR/issue-20801.rs:45:22
+   |
+LL |     let d = unsafe { *const_ptr() };
+   |                      ^^^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-20801.rs b/src/test/ui/issue-20801.rs
index d3b97a9c058..d3b97a9c058 100644
--- a/src/test/compile-fail/issue-20801.rs
+++ b/src/test/ui/issue-20801.rs
diff --git a/src/test/ui/issue-20801.stderr b/src/test/ui/issue-20801.stderr
new file mode 100644
index 00000000000..3989957b7b4
--- /dev/null
+++ b/src/test/ui/issue-20801.stderr
@@ -0,0 +1,27 @@
+error[E0507]: cannot move out of borrowed content
+  --> $DIR/issue-20801.rs:36:22
+   |
+LL |     let a = unsafe { *mut_ref() };
+   |                      ^^^^^^^^^^ cannot move out of borrowed content
+
+error[E0507]: cannot move out of borrowed content
+  --> $DIR/issue-20801.rs:39:22
+   |
+LL |     let b = unsafe { *imm_ref() };
+   |                      ^^^^^^^^^^ cannot move out of borrowed content
+
+error[E0507]: cannot move out of dereference of raw pointer
+  --> $DIR/issue-20801.rs:42:22
+   |
+LL |     let c = unsafe { *mut_ptr() };
+   |                      ^^^^^^^^^^ cannot move out of dereference of raw pointer
+
+error[E0507]: cannot move out of dereference of raw pointer
+  --> $DIR/issue-20801.rs:45:22
+   |
+LL |     let d = unsafe { *const_ptr() };
+   |                      ^^^^^^^^^^^^ cannot move out of dereference of raw pointer
+
+error: aborting due to 4 previous errors
+
+For more information about this error, try `rustc --explain E0507`.
diff --git a/src/test/compile-fail/issue-20825.rs b/src/test/ui/issue-20825.rs
index cbb987cd512..cbb987cd512 100644
--- a/src/test/compile-fail/issue-20825.rs
+++ b/src/test/ui/issue-20825.rs
diff --git a/src/test/ui/issue-20825.stderr b/src/test/ui/issue-20825.stderr
new file mode 100644
index 00000000000..e49e3668536
--- /dev/null
+++ b/src/test/ui/issue-20825.stderr
@@ -0,0 +1,11 @@
+error[E0391]: cycle detected when computing the supertraits of `Processor`
+  --> $DIR/issue-20825.rs:15:1
+   |
+LL | pub trait Processor: Subscriber<Input = Self::Input> {
+   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |
+   = note: ...which again requires computing the supertraits of `Processor`, completing the cycle
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0391`.
diff --git a/src/test/compile-fail/issue-20831-debruijn.rs b/src/test/ui/issue-20831-debruijn.rs
index 3f00f561ae9..3f00f561ae9 100644
--- a/src/test/compile-fail/issue-20831-debruijn.rs
+++ b/src/test/ui/issue-20831-debruijn.rs
diff --git a/src/test/ui/issue-20831-debruijn.stderr b/src/test/ui/issue-20831-debruijn.stderr
new file mode 100644
index 00000000000..fc9a0fdbe54
--- /dev/null
+++ b/src/test/ui/issue-20831-debruijn.stderr
@@ -0,0 +1,35 @@
+error[E0495]: cannot infer an appropriate lifetime for lifetime parameter `'a` due to conflicting requirements
+  --> $DIR/issue-20831-debruijn.rs:38:5
+   |
+LL | /     fn subscribe(&mut self, t : Box<Subscriber<Input=<Self as Publisher>::Output> + 'a>) {
+LL | |         // Not obvious, but there is an implicit lifetime here -------^
+LL | |         //~^^ ERROR cannot infer
+LL | |         //
+...  |
+LL | |         self.sub = t;
+LL | |     }
+   | |_____^
+   |
+note: first, the lifetime cannot outlive the anonymous lifetime #2 defined on the method body at 38:5...
+  --> $DIR/issue-20831-debruijn.rs:38:5
+   |
+LL | /     fn subscribe(&mut self, t : Box<Subscriber<Input=<Self as Publisher>::Output> + 'a>) {
+LL | |         // Not obvious, but there is an implicit lifetime here -------^
+LL | |         //~^^ ERROR cannot infer
+LL | |         //
+...  |
+LL | |         self.sub = t;
+LL | |     }
+   | |_____^
+note: ...but the lifetime must also be valid for the lifetime 'a as defined on the impl at 36:6...
+  --> $DIR/issue-20831-debruijn.rs:36:6
+   |
+LL | impl<'a> Publisher<'a> for MyStruct<'a> {
+   |      ^^
+   = note: ...so that the types are compatible:
+           expected Publisher<'_>
+              found Publisher<'_>
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0495`.
diff --git a/src/test/compile-fail/issue-20939.rs b/src/test/ui/issue-20939.rs
index 5282ce4bb88..5282ce4bb88 100644
--- a/src/test/compile-fail/issue-20939.rs
+++ b/src/test/ui/issue-20939.rs
diff --git a/src/test/ui/issue-20939.stderr b/src/test/ui/issue-20939.stderr
new file mode 100644
index 00000000000..c8f7e58540b
--- /dev/null
+++ b/src/test/ui/issue-20939.stderr
@@ -0,0 +1,9 @@
+error[E0371]: the object type `(dyn Foo + 'a)` automatically implements the trait `Foo`
+  --> $DIR/issue-20939.rs:13:1
+   |
+LL | impl<'a> Foo for Foo+'a {}
+   | ^^^^^^^^^^^^^^^^^^^^^^^ `(dyn Foo + 'a)` automatically implements trait `Foo`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0371`.
diff --git a/src/test/compile-fail/issue-2111.rs b/src/test/ui/issue-2111.rs
index 8180ce52bdb..8180ce52bdb 100644
--- a/src/test/compile-fail/issue-2111.rs
+++ b/src/test/ui/issue-2111.rs
diff --git a/src/test/ui/issue-2111.stderr b/src/test/ui/issue-2111.stderr
new file mode 100644
index 00000000000..5aa1b02779b
--- /dev/null
+++ b/src/test/ui/issue-2111.stderr
@@ -0,0 +1,9 @@
+error[E0004]: non-exhaustive patterns: `(None, None)` not covered
+  --> $DIR/issue-2111.rs:12:9
+   |
+LL |   match (a,b) {
+   |         ^^^^^ pattern `(None, None)` not covered
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0004`.
diff --git a/src/test/compile-fail/issue-21160.rs b/src/test/ui/issue-21160.rs
index 0de0ab2269b..0de0ab2269b 100644
--- a/src/test/compile-fail/issue-21160.rs
+++ b/src/test/ui/issue-21160.rs
diff --git a/src/test/ui/issue-21160.stderr b/src/test/ui/issue-21160.stderr
new file mode 100644
index 00000000000..75ed9988b89
--- /dev/null
+++ b/src/test/ui/issue-21160.stderr
@@ -0,0 +1,11 @@
+error[E0277]: the trait bound `Bar: std::hash::Hash` is not satisfied
+  --> $DIR/issue-21160.rs:18:12
+   |
+LL | struct Foo(Bar);
+   |            ^^^ the trait `std::hash::Hash` is not implemented for `Bar`
+   |
+   = note: required by `std::hash::Hash::hash`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/compile-fail/issue-21174.rs b/src/test/ui/issue-21174.rs
index 9d9b7e48043..9d9b7e48043 100644
--- a/src/test/compile-fail/issue-21174.rs
+++ b/src/test/ui/issue-21174.rs
diff --git a/src/test/ui/issue-21174.stderr b/src/test/ui/issue-21174.stderr
new file mode 100644
index 00000000000..391ed1e7698
--- /dev/null
+++ b/src/test/ui/issue-21174.stderr
@@ -0,0 +1,12 @@
+error[E0512]: transmute called with types of different sizes
+  --> $DIR/issue-21174.rs:17:30
+   |
+LL |     let new: T::B = unsafe { std::mem::transmute(value) };
+   |                              ^^^^^^^^^^^^^^^^^^^
+   |
+   = note: source type: <T as Trait<'a>>::A (size can vary because of <T as Trait>::A)
+   = note: target type: <T as Trait<'a>>::B (size can vary because of <T as Trait>::B)
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0512`.
diff --git a/src/test/compile-fail/issue-21177.rs b/src/test/ui/issue-21177.rs
index 9da57877a09..9da57877a09 100644
--- a/src/test/compile-fail/issue-21177.rs
+++ b/src/test/ui/issue-21177.rs
diff --git a/src/test/ui/issue-21177.stderr b/src/test/ui/issue-21177.stderr
new file mode 100644
index 00000000000..c924fb2ee94
--- /dev/null
+++ b/src/test/ui/issue-21177.stderr
@@ -0,0 +1,23 @@
+error[E0391]: cycle detected when computing the bounds for type parameter `T`
+  --> $DIR/issue-21177.rs:16:21
+   |
+LL | fn foo<T: Trait<A = T::B>>() { }
+   |                     ^^^^
+   |
+   = note: ...which again requires computing the bounds for type parameter `T`, completing the cycle
+note: cycle used when processing `foo`
+  --> $DIR/issue-21177.rs:16:21
+   |
+LL | fn foo<T: Trait<A = T::B>>() { }
+   |                     ^^^^
+
+error[E0220]: associated type `B` not found for `T`
+  --> $DIR/issue-21177.rs:16:21
+   |
+LL | fn foo<T: Trait<A = T::B>>() { }
+   |                     ^^^^ associated type `B` not found
+
+error: aborting due to 2 previous errors
+
+Some errors occurred: E0220, E0391.
+For more information about an error, try `rustc --explain E0220`.
diff --git a/src/test/compile-fail/issue-21332.rs b/src/test/ui/issue-21332.rs
index db3334834d4..db3334834d4 100644
--- a/src/test/compile-fail/issue-21332.rs
+++ b/src/test/ui/issue-21332.rs
diff --git a/src/test/ui/issue-21332.stderr b/src/test/ui/issue-21332.stderr
new file mode 100644
index 00000000000..b5fbb71f8ca
--- /dev/null
+++ b/src/test/ui/issue-21332.stderr
@@ -0,0 +1,12 @@
+error[E0053]: method `next` has an incompatible type for trait
+  --> $DIR/issue-21332.rs:15:5
+   |
+LL |     fn next(&mut self) -> Result<i32, i32> { Ok(7) }
+   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `std::option::Option`, found enum `std::result::Result`
+   |
+   = note: expected type `fn(&mut S) -> std::option::Option<i32>`
+              found type `fn(&mut S) -> std::result::Result<i32, i32>`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0053`.
diff --git a/src/test/compile-fail/issue-21356.rs b/src/test/ui/issue-21356.rs
index f66c09291cc..f66c09291cc 100644
--- a/src/test/compile-fail/issue-21356.rs
+++ b/src/test/ui/issue-21356.rs
diff --git a/src/test/ui/issue-21356.stderr b/src/test/ui/issue-21356.stderr
new file mode 100644
index 00000000000..5787476c2f2
--- /dev/null
+++ b/src/test/ui/issue-21356.stderr
@@ -0,0 +1,10 @@
+error: invalid fragment specifier `t_ty`
+  --> $DIR/issue-21356.rs:13:22
+   |
+LL | macro_rules! test { ($wrong:t_ty ..) => () }
+   |                      ^^^^^^^^^^^
+   |
+   = help: valid fragment specifiers are `ident`, `block`, `stmt`, `expr`, `pat`, `ty`, `literal`, `path`, `meta`, `tt`, `item` and `vis`
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-21449.rs b/src/test/ui/issue-21449.rs
index cc44cf88f09..cc44cf88f09 100644
--- a/src/test/compile-fail/issue-21449.rs
+++ b/src/test/ui/issue-21449.rs
diff --git a/src/test/ui/issue-21449.stderr b/src/test/ui/issue-21449.stderr
new file mode 100644
index 00000000000..d84b3b99c1f
--- /dev/null
+++ b/src/test/ui/issue-21449.stderr
@@ -0,0 +1,9 @@
+error[E0574]: expected struct, variant or union type, found module `MyMod`
+  --> $DIR/issue-21449.rs:14:17
+   |
+LL |     let myVar = MyMod { T: 0 };
+   |                 ^^^^^ not a struct, variant or union type
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0574`.
diff --git a/src/test/compile-fail/issue-2149.rs b/src/test/ui/issue-2149.rs
index 256c5d8e6f7..256c5d8e6f7 100644
--- a/src/test/compile-fail/issue-2149.rs
+++ b/src/test/ui/issue-2149.rs
diff --git a/src/test/ui/issue-2149.stderr b/src/test/ui/issue-2149.stderr
new file mode 100644
index 00000000000..4ae9032cd1a
--- /dev/null
+++ b/src/test/ui/issue-2149.stderr
@@ -0,0 +1,22 @@
+error[E0277]: cannot add `std::vec::Vec<B>` to `()`
+  --> $DIR/issue-2149.rs:18:33
+   |
+LL |         for elt in self { r = r + f(*elt); }
+   |                                 ^ no implementation for `() + std::vec::Vec<B>`
+   |
+   = help: the trait `std::ops::Add<std::vec::Vec<B>>` is not implemented for `()`
+
+error[E0599]: no method named `bind` found for type `[&str; 1]` in the current scope
+  --> $DIR/issue-2149.rs:23:12
+   |
+LL |     ["hi"].bind(|x| [x] );
+   |            ^^^^
+   |
+   = help: items from traits can only be used if the trait is implemented and in scope
+   = note: the following trait defines an item `bind`, perhaps you need to implement it:
+           candidate #1: `vec_monad`
+
+error: aborting due to 2 previous errors
+
+Some errors occurred: E0277, E0599.
+For more information about an error, try `rustc --explain E0277`.
diff --git a/src/test/compile-fail/issue-2150.rs b/src/test/ui/issue-2150.rs
index 8b109b0a5c0..8b109b0a5c0 100644
--- a/src/test/compile-fail/issue-2150.rs
+++ b/src/test/ui/issue-2150.rs
diff --git a/src/test/ui/issue-2150.stderr b/src/test/ui/issue-2150.stderr
new file mode 100644
index 00000000000..c1944efab8b
--- /dev/null
+++ b/src/test/ui/issue-2150.stderr
@@ -0,0 +1,14 @@
+error: unreachable statement
+  --> $DIR/issue-2150.rs:18:5
+   |
+LL |     for x in &v { i += 1; }
+   |     ^^^^^^^^^^^^^^^^^^^^^^^
+   |
+note: lint level defined here
+  --> $DIR/issue-2150.rs:11:9
+   |
+LL | #![deny(unreachable_code)]
+   |         ^^^^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-2151.rs b/src/test/ui/issue-2151.rs
index 3cf971f3f8d..3cf971f3f8d 100644
--- a/src/test/compile-fail/issue-2151.rs
+++ b/src/test/ui/issue-2151.rs
diff --git a/src/test/ui/issue-2151.stderr b/src/test/ui/issue-2151.stderr
new file mode 100644
index 00000000000..592c4f424b0
--- /dev/null
+++ b/src/test/ui/issue-2151.stderr
@@ -0,0 +1,13 @@
+error[E0282]: type annotations needed
+  --> $DIR/issue-2151.rs:13:5
+   |
+LL |     let x = panic!();
+   |         - consider giving `x` a type
+LL |     x.clone(); //~ ERROR type annotations needed
+   |     ^ cannot infer type for `_`
+   |
+   = note: type must be known at this point
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0282`.
diff --git a/src/test/compile-fail/issue-21554.rs b/src/test/ui/issue-21554.rs
index 1b87862a056..1b87862a056 100644
--- a/src/test/compile-fail/issue-21554.rs
+++ b/src/test/ui/issue-21554.rs
diff --git a/src/test/ui/issue-21554.stderr b/src/test/ui/issue-21554.stderr
new file mode 100644
index 00000000000..be7762f1aa2
--- /dev/null
+++ b/src/test/ui/issue-21554.stderr
@@ -0,0 +1,9 @@
+error[E0606]: casting `fn(i32) -> Inches {Inches::{{constructor}}}` as `f32` is invalid
+  --> $DIR/issue-21554.rs:14:5
+   |
+LL |     Inches as f32;
+   |     ^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0606`.
diff --git a/src/test/compile-fail/issue-21701.rs b/src/test/ui/issue-21701.rs
index f24de2ffe6b..f24de2ffe6b 100644
--- a/src/test/compile-fail/issue-21701.rs
+++ b/src/test/ui/issue-21701.rs
diff --git a/src/test/ui/issue-21701.stderr b/src/test/ui/issue-21701.stderr
new file mode 100644
index 00000000000..9fb9a7b51f2
--- /dev/null
+++ b/src/test/ui/issue-21701.stderr
@@ -0,0 +1,20 @@
+error[E0618]: expected function, found `U`
+  --> $DIR/issue-21701.rs:12:13
+   |
+LL | fn foo<U>(t: U) {
+   |           - `U` defined here
+LL |     let y = t();
+   |             ^^^ not a function
+
+error[E0618]: expected function, found `Bar`
+  --> $DIR/issue-21701.rs:19:13
+   |
+LL | struct Bar;
+   | ----------- `Bar` defined here
+...
+LL |     let f = Bar();
+   |             ^^^^^ not a function
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0618`.
diff --git a/src/test/compile-fail/issue-21763.rs b/src/test/ui/issue-21763.rs
index b4f952c87d4..b4f952c87d4 100644
--- a/src/test/compile-fail/issue-21763.rs
+++ b/src/test/ui/issue-21763.rs
diff --git a/src/test/ui/issue-21763.stderr b/src/test/ui/issue-21763.stderr
new file mode 100644
index 00000000000..91db16e0f6d
--- /dev/null
+++ b/src/test/ui/issue-21763.stderr
@@ -0,0 +1,20 @@
+error[E0277]: `std::rc::Rc<()>` cannot be sent between threads safely
+  --> $DIR/issue-21763.rs:19:5
+   |
+LL |     foo::<HashMap<Rc<()>, Rc<()>>>();
+   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `std::rc::Rc<()>` cannot be sent between threads safely
+   |
+   = help: within `std::collections::HashMap<std::rc::Rc<()>, std::rc::Rc<()>>`, the trait `std::marker::Send` is not implemented for `std::rc::Rc<()>`
+   = note: required because it appears within the type `(std::rc::Rc<()>, std::rc::Rc<()>)`
+   = note: required because it appears within the type `std::marker::PhantomData<(std::rc::Rc<()>, std::rc::Rc<()>)>`
+   = note: required because it appears within the type `std::collections::hash::table::RawTable<std::rc::Rc<()>, std::rc::Rc<()>>`
+   = note: required because it appears within the type `std::collections::HashMap<std::rc::Rc<()>, std::rc::Rc<()>>`
+note: required by `foo`
+  --> $DIR/issue-21763.rs:16:1
+   |
+LL | fn foo<T: Send>() {}
+   | ^^^^^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/compile-fail/issue-21837.rs b/src/test/ui/issue-21837.rs
index 86506de1ea9..86506de1ea9 100644
--- a/src/test/compile-fail/issue-21837.rs
+++ b/src/test/ui/issue-21837.rs
diff --git a/src/test/ui/issue-21837.stderr b/src/test/ui/issue-21837.stderr
new file mode 100644
index 00000000000..bbdebeefdd6
--- /dev/null
+++ b/src/test/ui/issue-21837.stderr
@@ -0,0 +1,16 @@
+error[E0277]: the trait bound `T: Bound` is not satisfied
+  --> $DIR/issue-21837.rs:18:9
+   |
+LL | impl<T> Trait2 for Foo<T> {} //~ ERROR the trait bound `T: Bound` is not satisfied
+   |         ^^^^^^ the trait `Bound` is not implemented for `T`
+   |
+   = help: consider adding a `where T: Bound` bound
+note: required by `Foo`
+  --> $DIR/issue-21837.rs:12:1
+   |
+LL | pub struct Foo<T: Bound>(T);
+   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/compile-fail/issue-21946.rs b/src/test/ui/issue-21946.rs
index 0d652be5c26..0d652be5c26 100644
--- a/src/test/compile-fail/issue-21946.rs
+++ b/src/test/ui/issue-21946.rs
diff --git a/src/test/ui/issue-21946.stderr b/src/test/ui/issue-21946.stderr
new file mode 100644
index 00000000000..ebb0c0c9ce0
--- /dev/null
+++ b/src/test/ui/issue-21946.stderr
@@ -0,0 +1,9 @@
+error[E0275]: overflow evaluating the requirement `<FooStruct as Foo>::A`
+  --> $DIR/issue-21946.rs:17:6
+   |
+LL | impl Foo for FooStruct {
+   |      ^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0275`.
diff --git a/src/test/compile-fail/issue-21974.rs b/src/test/ui/issue-21974.rs
index 6ddfa4c8e3e..6ddfa4c8e3e 100644
--- a/src/test/compile-fail/issue-21974.rs
+++ b/src/test/ui/issue-21974.rs
diff --git a/src/test/ui/issue-21974.stderr b/src/test/ui/issue-21974.stderr
new file mode 100644
index 00000000000..4cc28c9ceb5
--- /dev/null
+++ b/src/test/ui/issue-21974.stderr
@@ -0,0 +1,21 @@
+error[E0283]: type annotations required: cannot resolve `&'a T: Foo`
+  --> $DIR/issue-21974.rs:20:1
+   |
+LL | / fn foo<'a,'b,T>(x: &'a T, y: &'b T) //~ ERROR type annotations required
+LL | |     where &'a T : Foo,
+LL | |           &'b T : Foo
+LL | | {
+LL | |     x.foo();
+LL | |     y.foo();
+LL | | }
+   | |_^
+   |
+note: required by `Foo`
+  --> $DIR/issue-21974.rs:16:1
+   |
+LL | trait Foo {
+   | ^^^^^^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0283`.
diff --git a/src/test/compile-fail/issue-22034.rs b/src/test/ui/issue-22034.rs
index 5271ea79917..5271ea79917 100644
--- a/src/test/compile-fail/issue-22034.rs
+++ b/src/test/ui/issue-22034.rs
diff --git a/src/test/ui/issue-22034.stderr b/src/test/ui/issue-22034.stderr
new file mode 100644
index 00000000000..bac62a1301a
--- /dev/null
+++ b/src/test/ui/issue-22034.stderr
@@ -0,0 +1,11 @@
+error[E0277]: the trait bound `(): std::ops::Fn<()>` is not satisfied
+  --> $DIR/issue-22034.rs:18:16
+   |
+LL |         &mut *(ptr as *mut Fn())
+   |                ^^^ the trait `std::ops::Fn<()>` is not implemented for `()`
+   |
+   = note: required for the cast to the object type `dyn std::ops::Fn()`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/compile-fail/issue-22037.rs b/src/test/ui/issue-22037.rs
index ffa881b49c5..ffa881b49c5 100644
--- a/src/test/compile-fail/issue-22037.rs
+++ b/src/test/ui/issue-22037.rs
diff --git a/src/test/ui/issue-22037.stderr b/src/test/ui/issue-22037.stderr
new file mode 100644
index 00000000000..ae739afc704
--- /dev/null
+++ b/src/test/ui/issue-22037.stderr
@@ -0,0 +1,9 @@
+error[E0576]: cannot find associated type `X` in trait `A`
+  --> $DIR/issue-22037.rs:13:33
+   |
+LL |     fn a(&self) -> <Self as A>::X;
+   |                                 ^ not found in `A`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0576`.
diff --git a/src/test/compile-fail/issue-22289.rs b/src/test/ui/issue-22289.rs
index c23fc4f3344..c23fc4f3344 100644
--- a/src/test/compile-fail/issue-22289.rs
+++ b/src/test/ui/issue-22289.rs
diff --git a/src/test/ui/issue-22289.stderr b/src/test/ui/issue-22289.stderr
new file mode 100644
index 00000000000..202b25f1a5b
--- /dev/null
+++ b/src/test/ui/issue-22289.stderr
@@ -0,0 +1,11 @@
+error[E0605]: non-primitive cast: `i32` as `&(dyn std::any::Any + 'static)`
+  --> $DIR/issue-22289.rs:12:5
+   |
+LL |     0 as &std::any::Any; //~ ERROR non-primitive cast
+   |     ^^^^^^^^^^^^^^^^^^^
+   |
+   = note: an `as` expression can only be used to convert between primitive types. Consider using the `From` trait
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0605`.
diff --git a/src/test/compile-fail/issue-22312.rs b/src/test/ui/issue-22312.rs
index 2128c420630..2128c420630 100644
--- a/src/test/compile-fail/issue-22312.rs
+++ b/src/test/ui/issue-22312.rs
diff --git a/src/test/ui/issue-22312.stderr b/src/test/ui/issue-22312.stderr
new file mode 100644
index 00000000000..abd712e5c29
--- /dev/null
+++ b/src/test/ui/issue-22312.stderr
@@ -0,0 +1,11 @@
+error[E0605]: non-primitive cast: `Self` as `&dyn std::ops::Index<usize, Output=<Self as std::ops::Index<usize>>::Output>`
+  --> $DIR/issue-22312.rs:21:24
+   |
+LL |         let indexer = &(*self as &Index<usize, Output = <Self as Index<usize>>::Output>);
+   |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |
+   = note: an `as` expression can only be used to convert between primitive types. Consider using the `From` trait
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0605`.
diff --git a/src/test/compile-fail/issue-22384.rs b/src/test/ui/issue-22384.rs
index ae7fb01e057..ae7fb01e057 100644
--- a/src/test/compile-fail/issue-22384.rs
+++ b/src/test/ui/issue-22384.rs
diff --git a/src/test/ui/issue-22384.stderr b/src/test/ui/issue-22384.stderr
new file mode 100644
index 00000000000..b8cc1e643e5
--- /dev/null
+++ b/src/test/ui/issue-22384.stderr
@@ -0,0 +1,9 @@
+error[E0576]: cannot find associated type `foobar` in trait `Copy`
+  --> $DIR/issue-22384.rs:16:21
+   |
+LL |     <<i32 as Copy>::foobar as Trait>::foo();
+   |                     ^^^^^^ not found in `Copy`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0576`.
diff --git a/src/test/compile-fail/issue-22434.rs b/src/test/ui/issue-22434.rs
index 6effd02bac8..6effd02bac8 100644
--- a/src/test/compile-fail/issue-22434.rs
+++ b/src/test/ui/issue-22434.rs
diff --git a/src/test/ui/issue-22434.stderr b/src/test/ui/issue-22434.stderr
new file mode 100644
index 00000000000..914da801ad4
--- /dev/null
+++ b/src/test/ui/issue-22434.stderr
@@ -0,0 +1,9 @@
+error[E0191]: the value of the associated type `A` (from the trait `Foo`) must be specified
+  --> $DIR/issue-22434.rs:15:19
+   |
+LL | type I<'a> = &'a (Foo + 'a);
+   |                   ^^^^^^^^ missing associated type `A` value
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0191`.
diff --git a/src/test/compile-fail/issue-22468.rs b/src/test/ui/issue-22468.rs
index 50e5dd2955d..50e5dd2955d 100644
--- a/src/test/compile-fail/issue-22468.rs
+++ b/src/test/ui/issue-22468.rs
diff --git a/src/test/ui/issue-22468.stderr b/src/test/ui/issue-22468.stderr
new file mode 100644
index 00000000000..034a076fbfe
--- /dev/null
+++ b/src/test/ui/issue-22468.stderr
@@ -0,0 +1,11 @@
+error[E0618]: expected function, found `&str`
+  --> $DIR/issue-22468.rs:13:13
+   |
+LL |     let foo = "bar";
+   |         --- `&str` defined here
+LL |     let x = foo("baz");
+   |             ^^^^^^^^^^ not a function
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0618`.
diff --git a/src/test/compile-fail/issue-22599.rs b/src/test/ui/issue-22599.rs
index b9ea3583296..b9ea3583296 100644
--- a/src/test/compile-fail/issue-22599.rs
+++ b/src/test/ui/issue-22599.rs
diff --git a/src/test/ui/issue-22599.stderr b/src/test/ui/issue-22599.stderr
new file mode 100644
index 00000000000..19c9b94a430
--- /dev/null
+++ b/src/test/ui/issue-22599.stderr
@@ -0,0 +1,14 @@
+error: unused variable: `a`
+  --> $DIR/issue-22599.rs:18:19
+   |
+LL |     v = match 0 { a => 0 }; //~ ERROR: unused variable: `a`
+   |                   ^ help: consider using `_a` instead
+   |
+note: lint level defined here
+  --> $DIR/issue-22599.rs:11:9
+   |
+LL | #![deny(unused_variables)]
+   |         ^^^^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-22603.rs b/src/test/ui/issue-22603.rs
index d08f916b870..d08f916b870 100644
--- a/src/test/compile-fail/issue-22603.rs
+++ b/src/test/ui/issue-22603.rs
diff --git a/src/test/ui/issue-22603.stderr b/src/test/ui/issue-22603.stderr
new file mode 100644
index 00000000000..b50a5a25a7a
--- /dev/null
+++ b/src/test/ui/issue-22603.stderr
@@ -0,0 +1,10 @@
+error: compilation successful
+  --> $DIR/issue-22603.rs:21:1
+   |
+LL | / fn main() { //~ ERROR compilation successful
+LL | |     println!("{:?}", Foo("bar"));
+LL | | }
+   | |_^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-22673.rs b/src/test/ui/issue-22673.rs
index 2396007c3df..2396007c3df 100644
--- a/src/test/compile-fail/issue-22673.rs
+++ b/src/test/ui/issue-22673.rs
diff --git a/src/test/ui/issue-22673.stderr b/src/test/ui/issue-22673.stderr
new file mode 100644
index 00000000000..7e5b80c3711
--- /dev/null
+++ b/src/test/ui/issue-22673.stderr
@@ -0,0 +1,11 @@
+error[E0391]: cycle detected when computing the supertraits of `Expr`
+  --> $DIR/issue-22673.rs:11:1
+   |
+LL | trait Expr : PartialEq<Self::Item> {
+   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |
+   = note: ...which again requires computing the supertraits of `Expr`, completing the cycle
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0391`.
diff --git a/src/test/compile-fail/issue-22684.rs b/src/test/ui/issue-22684.rs
index a791758ad17..a791758ad17 100644
--- a/src/test/compile-fail/issue-22684.rs
+++ b/src/test/ui/issue-22684.rs
diff --git a/src/test/ui/issue-22684.stderr b/src/test/ui/issue-22684.stderr
new file mode 100644
index 00000000000..2c868bc8778
--- /dev/null
+++ b/src/test/ui/issue-22684.stderr
@@ -0,0 +1,12 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-22684.rs:27:17
+   |
+LL |     let _: () = foo::Foo.bar(); //~ ERROR mismatched types
+   |                 ^^^^^^^^^^^^^^ expected (), found bool
+   |
+   = note: expected type `()`
+              found type `bool`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-22706.rs b/src/test/ui/issue-22706.rs
index 3d9ec0a6581..3d9ec0a6581 100644
--- a/src/test/compile-fail/issue-22706.rs
+++ b/src/test/ui/issue-22706.rs
diff --git a/src/test/ui/issue-22706.stderr b/src/test/ui/issue-22706.stderr
new file mode 100644
index 00000000000..2bbb3e5acad
--- /dev/null
+++ b/src/test/ui/issue-22706.stderr
@@ -0,0 +1,9 @@
+error[E0109]: type parameters are not allowed on this type
+  --> $DIR/issue-22706.rs:11:29
+   |
+LL | fn is_copy<T: ::std::marker<i32>::Copy>() {}
+   |                             ^^^ type parameter not allowed
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0109`.
diff --git a/src/test/compile-fail/issue-22789.rs b/src/test/ui/issue-22789.rs
index cba1c367bb9..cba1c367bb9 100644
--- a/src/test/compile-fail/issue-22789.rs
+++ b/src/test/ui/issue-22789.rs
diff --git a/src/test/ui/issue-22789.stderr b/src/test/ui/issue-22789.stderr
new file mode 100644
index 00000000000..afeae9c78ef
--- /dev/null
+++ b/src/test/ui/issue-22789.stderr
@@ -0,0 +1,11 @@
+error: compilation successful
+  --> $DIR/issue-22789.rs:14:1
+   |
+LL | / fn main() { //~ ERROR compilation successful
+LL | |     let k = |x: i32| { x + 1 };
+LL | |     Fn::call(&k, (0,));
+LL | | }
+   | |_^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-2281-part1.rs b/src/test/ui/issue-2281-part1.rs
index e3fd9c48a52..e3fd9c48a52 100644
--- a/src/test/compile-fail/issue-2281-part1.rs
+++ b/src/test/ui/issue-2281-part1.rs
diff --git a/src/test/ui/issue-2281-part1.stderr b/src/test/ui/issue-2281-part1.stderr
new file mode 100644
index 00000000000..e88cfe2b2ac
--- /dev/null
+++ b/src/test/ui/issue-2281-part1.stderr
@@ -0,0 +1,9 @@
+error[E0425]: cannot find value `foobar` in this scope
+  --> $DIR/issue-2281-part1.rs:11:28
+   |
+LL | fn main() { println!("{}", foobar); } //~ ERROR cannot find value `foobar` in this scope
+   |                            ^^^^^^ not found in this scope
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0425`.
diff --git a/src/test/compile-fail/issue-22874.rs b/src/test/ui/issue-22874.rs
index e0a87b3a174..e0a87b3a174 100644
--- a/src/test/compile-fail/issue-22874.rs
+++ b/src/test/ui/issue-22874.rs
diff --git a/src/test/ui/issue-22874.stderr b/src/test/ui/issue-22874.stderr
new file mode 100644
index 00000000000..64c77a6a666
--- /dev/null
+++ b/src/test/ui/issue-22874.stderr
@@ -0,0 +1,13 @@
+error[E0277]: the size for values of type `[std::string::String]` cannot be known at compilation time
+  --> $DIR/issue-22874.rs:12:5
+   |
+LL |     rows: [[String]],
+   |     ^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
+   |
+   = help: the trait `std::marker::Sized` is not implemented for `[std::string::String]`
+   = note: to learn more, visit <https://doc.rust-lang.org/book/second-edition/ch19-04-advanced-types.html#dynamically-sized-types--sized>
+   = note: slice and array elements must have `Sized` type
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/compile-fail/issue-22933-1.rs b/src/test/ui/issue-22933-1.rs
index afb972faaca..afb972faaca 100644
--- a/src/test/compile-fail/issue-22933-1.rs
+++ b/src/test/ui/issue-22933-1.rs
diff --git a/src/test/ui/issue-22933-1.stderr b/src/test/ui/issue-22933-1.stderr
new file mode 100644
index 00000000000..eaebebe3b11
--- /dev/null
+++ b/src/test/ui/issue-22933-1.stderr
@@ -0,0 +1,8 @@
+error: compilation successful
+  --> $DIR/issue-22933-1.rs:35:1
+   |
+LL | fn main() {} //~ ERROR compilation successful
+   | ^^^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-22933-3.rs b/src/test/ui/issue-22933-3.rs
index 62adae41adf..62adae41adf 100644
--- a/src/test/compile-fail/issue-22933-3.rs
+++ b/src/test/ui/issue-22933-3.rs
diff --git a/src/test/ui/issue-22933-3.stderr b/src/test/ui/issue-22933-3.stderr
new file mode 100644
index 00000000000..3d4d2df4d32
--- /dev/null
+++ b/src/test/ui/issue-22933-3.stderr
@@ -0,0 +1,9 @@
+error[E0599]: no associated item named `MIN` found for type `u8` in the current scope
+  --> $DIR/issue-22933-3.rs:11:18
+   |
+LL | const FOO: [u32; u8::MIN as usize] = [];
+   |                  ^^^^^^^ associated item not found in `u8`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0599`.
diff --git a/src/test/compile-fail/issue-23024.rs b/src/test/ui/issue-23024.rs
index 5d9b49f486c..5d9b49f486c 100644
--- a/src/test/compile-fail/issue-23024.rs
+++ b/src/test/ui/issue-23024.rs
diff --git a/src/test/ui/issue-23024.stderr b/src/test/ui/issue-23024.stderr
new file mode 100644
index 00000000000..39c79d8f14e
--- /dev/null
+++ b/src/test/ui/issue-23024.stderr
@@ -0,0 +1,24 @@
+error[E0658]: the precise format of `Fn`-family traits' type parameters is subject to change. Use parenthetical notation (Fn(Foo, Bar) -> Baz) instead (see issue #29625)
+  --> $DIR/issue-23024.rs:19:35
+   |
+LL |     println!("{:?}",(vfnfer[0] as Fn)(3));
+   |                                   ^^
+   |
+   = help: add #![feature(unboxed_closures)] to the crate attributes to enable
+
+error[E0243]: wrong number of type arguments: expected 1, found 0
+  --> $DIR/issue-23024.rs:19:35
+   |
+LL |     println!("{:?}",(vfnfer[0] as Fn)(3));
+   |                                   ^^ expected 1 type argument
+
+error[E0191]: the value of the associated type `Output` (from the trait `std::ops::FnOnce`) must be specified
+  --> $DIR/issue-23024.rs:19:35
+   |
+LL |     println!("{:?}",(vfnfer[0] as Fn)(3));
+   |                                   ^^ missing associated type `Output` value
+
+error: aborting due to 3 previous errors
+
+Some errors occurred: E0191, E0243, E0658.
+For more information about an error, try `rustc --explain E0191`.
diff --git a/src/test/compile-fail/issue-23046.rs b/src/test/ui/issue-23046.rs
index 670706b7a9a..670706b7a9a 100644
--- a/src/test/compile-fail/issue-23046.rs
+++ b/src/test/ui/issue-23046.rs
diff --git a/src/test/ui/issue-23046.stderr b/src/test/ui/issue-23046.stderr
new file mode 100644
index 00000000000..3e5b4ec91d7
--- /dev/null
+++ b/src/test/ui/issue-23046.stderr
@@ -0,0 +1,9 @@
+error[E0282]: type annotations needed
+  --> $DIR/issue-23046.rs:27:15
+   |
+LL |     let ex = |x| { //~ ERROR type annotations needed
+   |               ^ consider giving this closure parameter a type
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0282`.
diff --git a/src/test/compile-fail/issue-23073.rs b/src/test/ui/issue-23073.rs
index 2d219177a80..2d219177a80 100644
--- a/src/test/compile-fail/issue-23073.rs
+++ b/src/test/ui/issue-23073.rs
diff --git a/src/test/ui/issue-23073.stderr b/src/test/ui/issue-23073.stderr
new file mode 100644
index 00000000000..44b2128af0a
--- /dev/null
+++ b/src/test/ui/issue-23073.stderr
@@ -0,0 +1,11 @@
+error[E0223]: ambiguous associated type
+  --> $DIR/issue-23073.rs:16:17
+   |
+LL |     type FooT = <<Self as Bar>::Foo>::T; //~ ERROR ambiguous associated type
+   |                 ^^^^^^^^^^^^^^^^^^^^^^^ ambiguous associated type
+   |
+   = note: specify the type using the syntax `<<Self as Bar>::Foo as Trait>::T`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0223`.
diff --git a/src/test/compile-fail/issue-23080-2.rs b/src/test/ui/issue-23080-2.rs
index fc365a4b9aa..fc365a4b9aa 100644
--- a/src/test/compile-fail/issue-23080-2.rs
+++ b/src/test/ui/issue-23080-2.rs
diff --git a/src/test/ui/issue-23080-2.stderr b/src/test/ui/issue-23080-2.stderr
new file mode 100644
index 00000000000..dda7fbd69cf
--- /dev/null
+++ b/src/test/ui/issue-23080-2.stderr
@@ -0,0 +1,18 @@
+error[E0380]: auto traits cannot have methods or associated items
+  --> $DIR/issue-23080-2.rs:17:1
+   |
+LL | / unsafe auto trait Trait {
+LL | | //~^ ERROR E0380
+LL | |     type Output;
+LL | | }
+   | |_^
+
+error[E0275]: overflow evaluating the requirement `<() as Trait>::Output`
+   |
+   = note: required because of the requirements on the impl of `Trait` for `()`
+   = note: required because of the requirements on the impl of `Trait` for `()`
+
+error: aborting due to 2 previous errors
+
+Some errors occurred: E0275, E0380.
+For more information about an error, try `rustc --explain E0275`.
diff --git a/src/test/compile-fail/issue-23080.rs b/src/test/ui/issue-23080.rs
index 153b6fd07e6..153b6fd07e6 100644
--- a/src/test/compile-fail/issue-23080.rs
+++ b/src/test/ui/issue-23080.rs
diff --git a/src/test/ui/issue-23080.stderr b/src/test/ui/issue-23080.stderr
new file mode 100644
index 00000000000..43e6f296033
--- /dev/null
+++ b/src/test/ui/issue-23080.stderr
@@ -0,0 +1,14 @@
+error[E0380]: auto traits cannot have methods or associated items
+  --> $DIR/issue-23080.rs:15:1
+   |
+LL | / unsafe auto trait Trait {
+LL | | //~^ ERROR E0380
+LL | |     fn method(&self) {
+LL | |         println!("Hello");
+LL | |     }
+LL | | }
+   | |_^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0380`.
diff --git a/src/test/compile-fail/issue-23122-1.rs b/src/test/ui/issue-23122-1.rs
index 36d8450848d..36d8450848d 100644
--- a/src/test/compile-fail/issue-23122-1.rs
+++ b/src/test/ui/issue-23122-1.rs
diff --git a/src/test/ui/issue-23122-1.stderr b/src/test/ui/issue-23122-1.stderr
new file mode 100644
index 00000000000..a0e5386c111
--- /dev/null
+++ b/src/test/ui/issue-23122-1.stderr
@@ -0,0 +1,9 @@
+error[E0275]: overflow evaluating the requirement `<GetNext<T> as Next>::Next`
+  --> $DIR/issue-23122-1.rs:17:15
+   |
+LL | impl<T: Next> Next for GetNext<T> {
+   |               ^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0275`.
diff --git a/src/test/compile-fail/issue-23122-2.rs b/src/test/ui/issue-23122-2.rs
index faaf78f894b..faaf78f894b 100644
--- a/src/test/compile-fail/issue-23122-2.rs
+++ b/src/test/ui/issue-23122-2.rs
diff --git a/src/test/ui/issue-23122-2.stderr b/src/test/ui/issue-23122-2.stderr
new file mode 100644
index 00000000000..c43f8d77823
--- /dev/null
+++ b/src/test/ui/issue-23122-2.stderr
@@ -0,0 +1,11 @@
+error[E0275]: overflow evaluating the requirement `<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<T as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next as Next>::Next`
+  --> $DIR/issue-23122-2.rs:17:15
+   |
+LL | impl<T: Next> Next for GetNext<T> {
+   |               ^^^^
+   |
+   = help: consider adding a `#![recursion_limit="128"]` attribute to your crate
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0275`.
diff --git a/src/test/compile-fail/issue-23253.rs b/src/test/ui/issue-23253.rs
index 626604a87a7..626604a87a7 100644
--- a/src/test/compile-fail/issue-23253.rs
+++ b/src/test/ui/issue-23253.rs
diff --git a/src/test/ui/issue-23253.stderr b/src/test/ui/issue-23253.stderr
new file mode 100644
index 00000000000..f14ee510bd8
--- /dev/null
+++ b/src/test/ui/issue-23253.stderr
@@ -0,0 +1,9 @@
+error[E0609]: no field `a` on type `Foo`
+  --> $DIR/issue-23253.rs:14:14
+   |
+LL |     Foo::Bar.a;
+   |              ^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0609`.
diff --git a/src/test/compile-fail/issue-23281.rs b/src/test/ui/issue-23281.rs
index 5de00eb8f68..5de00eb8f68 100644
--- a/src/test/compile-fail/issue-23281.rs
+++ b/src/test/ui/issue-23281.rs
diff --git a/src/test/ui/issue-23281.stderr b/src/test/ui/issue-23281.stderr
new file mode 100644
index 00000000000..ee5a9930df2
--- /dev/null
+++ b/src/test/ui/issue-23281.stderr
@@ -0,0 +1,13 @@
+error[E0277]: the size for values of type `(dyn std::ops::Fn() + 'static)` cannot be known at compilation time
+  --> $DIR/issue-23281.rs:16:5
+   |
+LL |     pub fn function(funs: Vec<Fn() -> ()>) {}
+   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
+   |
+   = help: the trait `std::marker::Sized` is not implemented for `(dyn std::ops::Fn() + 'static)`
+   = note: to learn more, visit <https://doc.rust-lang.org/book/second-edition/ch19-04-advanced-types.html#dynamically-sized-types--sized>
+   = note: required by `std::vec::Vec`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/compile-fail/issue-2330.rs b/src/test/ui/issue-2330.rs
index f1a282695ac..f1a282695ac 100644
--- a/src/test/compile-fail/issue-2330.rs
+++ b/src/test/ui/issue-2330.rs
diff --git a/src/test/ui/issue-2330.stderr b/src/test/ui/issue-2330.stderr
new file mode 100644
index 00000000000..6b1d5e3b219
--- /dev/null
+++ b/src/test/ui/issue-2330.stderr
@@ -0,0 +1,9 @@
+error[E0404]: expected trait, found enum `chan`
+  --> $DIR/issue-2330.rs:18:6
+   |
+LL | impl chan for isize { //~ ERROR expected trait, found enum `chan`
+   |      ^^^^ not a trait
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0404`.
diff --git a/src/test/compile-fail/issue-23589.rs b/src/test/ui/issue-23589.rs
index 1c1d42da029..1c1d42da029 100644
--- a/src/test/compile-fail/issue-23589.rs
+++ b/src/test/ui/issue-23589.rs
diff --git a/src/test/ui/issue-23589.stderr b/src/test/ui/issue-23589.stderr
new file mode 100644
index 00000000000..f0c07b380b4
--- /dev/null
+++ b/src/test/ui/issue-23589.stderr
@@ -0,0 +1,9 @@
+error[E0214]: parenthesized parameters may only be used with a trait
+  --> $DIR/issue-23589.rs:12:15
+   |
+LL |     let v: Vec(&str) = vec!['1', '2'];
+   |               ^^^^^^ only traits may use parentheses
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0214`.
diff --git a/src/test/compile-fail/issue-23595-1.rs b/src/test/ui/issue-23595-1.rs
index a3422d859c6..a3422d859c6 100644
--- a/src/test/compile-fail/issue-23595-1.rs
+++ b/src/test/ui/issue-23595-1.rs
diff --git a/src/test/ui/issue-23595-1.stderr b/src/test/ui/issue-23595-1.stderr
new file mode 100644
index 00000000000..624534eb8d7
--- /dev/null
+++ b/src/test/ui/issue-23595-1.stderr
@@ -0,0 +1,21 @@
+error[E0191]: the value of the associated type `ChildKey` (from the trait `Hierarchy`) must be specified
+  --> $DIR/issue-23595-1.rs:18:50
+   |
+LL |     type Children = Index<Self::ChildKey, Output=Hierarchy>;
+   |                                                  ^^^^^^^^^ missing associated type `ChildKey` value
+
+error[E0191]: the value of the associated type `Children` (from the trait `Hierarchy`) must be specified
+  --> $DIR/issue-23595-1.rs:18:50
+   |
+LL |     type Children = Index<Self::ChildKey, Output=Hierarchy>;
+   |                                                  ^^^^^^^^^ missing associated type `Children` value
+
+error[E0191]: the value of the associated type `Value` (from the trait `Hierarchy`) must be specified
+  --> $DIR/issue-23595-1.rs:18:50
+   |
+LL |     type Children = Index<Self::ChildKey, Output=Hierarchy>;
+   |                                                  ^^^^^^^^^ missing associated type `Value` value
+
+error: aborting due to 3 previous errors
+
+For more information about this error, try `rustc --explain E0191`.
diff --git a/src/test/compile-fail/issue-23595-2.rs b/src/test/ui/issue-23595-2.rs
index 6a3ce03fce5..6a3ce03fce5 100644
--- a/src/test/compile-fail/issue-23595-2.rs
+++ b/src/test/ui/issue-23595-2.rs
diff --git a/src/test/ui/issue-23595-2.stderr b/src/test/ui/issue-23595-2.stderr
new file mode 100644
index 00000000000..5ddaab6abfe
--- /dev/null
+++ b/src/test/ui/issue-23595-2.stderr
@@ -0,0 +1,9 @@
+error[E0220]: associated type `anything_here_kills_it` not found for `Self`
+  --> $DIR/issue-23595-2.rs:16:16
+   |
+LL |     type B = C<Self::anything_here_kills_it>;
+   |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated type `anything_here_kills_it` not found
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0220`.
diff --git a/src/test/compile-fail/issue-23966.rs b/src/test/ui/issue-23966.rs
index 544d3c8af20..544d3c8af20 100644
--- a/src/test/compile-fail/issue-23966.rs
+++ b/src/test/ui/issue-23966.rs
diff --git a/src/test/ui/issue-23966.stderr b/src/test/ui/issue-23966.stderr
new file mode 100644
index 00000000000..07d2cfbf55f
--- /dev/null
+++ b/src/test/ui/issue-23966.stderr
@@ -0,0 +1,9 @@
+error[E0277]: the trait bound `(): std::ops::FnMut<(_, char)>` is not satisfied
+  --> $DIR/issue-23966.rs:12:16
+   |
+LL |     "".chars().fold(|_, _| (), ());
+   |                ^^^^ the trait `std::ops::FnMut<(_, char)>` is not implemented for `()`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/compile-fail/issue-24013.rs b/src/test/ui/issue-24013.rs
index a7232781f6f..a7232781f6f 100644
--- a/src/test/compile-fail/issue-24013.rs
+++ b/src/test/ui/issue-24013.rs
diff --git a/src/test/ui/issue-24013.stderr b/src/test/ui/issue-24013.stderr
new file mode 100644
index 00000000000..324e705e5a1
--- /dev/null
+++ b/src/test/ui/issue-24013.stderr
@@ -0,0 +1,9 @@
+error[E0282]: type annotations needed
+  --> $DIR/issue-24013.rs:15:20
+   |
+LL |     unsafe {swap::<&mut _>(transmute(&a), transmute(&b))};
+   |                    ^^^^^^ cannot infer type for `_`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0282`.
diff --git a/src/test/compile-fail/issue-24204.rs b/src/test/ui/issue-24204.rs
index 2a012da0083..2a012da0083 100644
--- a/src/test/compile-fail/issue-24204.rs
+++ b/src/test/ui/issue-24204.rs
diff --git a/src/test/ui/issue-24204.stderr b/src/test/ui/issue-24204.stderr
new file mode 100644
index 00000000000..809db284032
--- /dev/null
+++ b/src/test/ui/issue-24204.stderr
@@ -0,0 +1,17 @@
+error[E0271]: type mismatch resolving `<<T as Trait>::A as MultiDispatch<i32>>::O == T`
+  --> $DIR/issue-24204.rs:24:1
+   |
+LL | fn test<T: Trait<B=i32>>(b: i32) -> T where T::A: MultiDispatch<i32> { T::new(b) }
+   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected associated type, found type parameter
+   |
+   = note: expected type `<<T as Trait>::A as MultiDispatch<i32>>::O`
+              found type `T`
+note: required by `Trait`
+  --> $DIR/issue-24204.rs:17:1
+   |
+LL | trait Trait: Sized {
+   | ^^^^^^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0271`.
diff --git a/src/test/ui/issue-24267-flow-exit.nll.stderr b/src/test/ui/issue-24267-flow-exit.nll.stderr
new file mode 100644
index 00000000000..cf3553c6b0d
--- /dev/null
+++ b/src/test/ui/issue-24267-flow-exit.nll.stderr
@@ -0,0 +1,15 @@
+error[E0381]: borrow of possibly uninitialized variable: `x`
+  --> $DIR/issue-24267-flow-exit.rs:22:20
+   |
+LL |     println!("{}", x); //~ ERROR use of possibly uninitialized variable: `x`
+   |                    ^ use of possibly uninitialized `x`
+
+error[E0381]: borrow of possibly uninitialized variable: `x`
+  --> $DIR/issue-24267-flow-exit.rs:28:20
+   |
+LL |     println!("{}", x); //~ ERROR use of possibly uninitialized variable: `x`
+   |                    ^ use of possibly uninitialized `x`
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0381`.
diff --git a/src/test/compile-fail/issue-24267-flow-exit.rs b/src/test/ui/issue-24267-flow-exit.rs
index 4aca6bf38e1..4aca6bf38e1 100644
--- a/src/test/compile-fail/issue-24267-flow-exit.rs
+++ b/src/test/ui/issue-24267-flow-exit.rs
diff --git a/src/test/ui/issue-24267-flow-exit.stderr b/src/test/ui/issue-24267-flow-exit.stderr
new file mode 100644
index 00000000000..7d1d5ac7df6
--- /dev/null
+++ b/src/test/ui/issue-24267-flow-exit.stderr
@@ -0,0 +1,15 @@
+error[E0381]: use of possibly uninitialized variable: `x`
+  --> $DIR/issue-24267-flow-exit.rs:22:20
+   |
+LL |     println!("{}", x); //~ ERROR use of possibly uninitialized variable: `x`
+   |                    ^ use of possibly uninitialized `x`
+
+error[E0381]: use of possibly uninitialized variable: `x`
+  --> $DIR/issue-24267-flow-exit.rs:28:20
+   |
+LL |     println!("{}", x); //~ ERROR use of possibly uninitialized variable: `x`
+   |                    ^ use of possibly uninitialized `x`
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0381`.
diff --git a/src/test/compile-fail/issue-24322.rs b/src/test/ui/issue-24322.rs
index bb726aca921..bb726aca921 100644
--- a/src/test/compile-fail/issue-24322.rs
+++ b/src/test/ui/issue-24322.rs
diff --git a/src/test/ui/issue-24322.stderr b/src/test/ui/issue-24322.stderr
new file mode 100644
index 00000000000..d2cad8d3464
--- /dev/null
+++ b/src/test/ui/issue-24322.stderr
@@ -0,0 +1,12 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-24322.rs:18:29
+   |
+LL |     let x: &fn(&B) -> u32 = &B::func; //~ ERROR mismatched types
+   |                             ^^^^^^^^ expected fn pointer, found fn item
+   |
+   = note: expected type `&for<'r> fn(&'r B) -> u32`
+              found type `&for<'r> fn(&'r B) -> u32 {B::func}`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-24352.rs b/src/test/ui/issue-24352.rs
index 4b077314056..4b077314056 100644
--- a/src/test/compile-fail/issue-24352.rs
+++ b/src/test/ui/issue-24352.rs
diff --git a/src/test/ui/issue-24352.stderr b/src/test/ui/issue-24352.stderr
new file mode 100644
index 00000000000..8a4169055e7
--- /dev/null
+++ b/src/test/ui/issue-24352.stderr
@@ -0,0 +1,11 @@
+error[E0277]: cannot subtract `{integer}` from `f64`
+  --> $DIR/issue-24352.rs:13:12
+   |
+LL |     1.0f64 - 1 //~ ERROR E0277
+   |            ^ no implementation for `f64 - {integer}`
+   |
+   = help: the trait `std::ops::Sub<{integer}>` is not implemented for `f64`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/ui/issue-24357.nll.stderr b/src/test/ui/issue-24357.nll.stderr
new file mode 100644
index 00000000000..f601a6fbc88
--- /dev/null
+++ b/src/test/ui/issue-24357.nll.stderr
@@ -0,0 +1,14 @@
+error[E0382]: use of moved value: `x`
+  --> $DIR/issue-24357.rs:16:12
+   |
+LL |    let f = move || { let y = x; };
+   |            ---------------------- value moved here
+LL |    //~^ NOTE value moved (into closure) here
+LL |    let z = x;
+   |            ^ value used here after move
+   |
+   = note: move occurs because `x` has type `NoCopy`, which does not implement the `Copy` trait
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0382`.
diff --git a/src/test/compile-fail/issue-24357.rs b/src/test/ui/issue-24357.rs
index 016ce93a0bd..016ce93a0bd 100644
--- a/src/test/compile-fail/issue-24357.rs
+++ b/src/test/ui/issue-24357.rs
diff --git a/src/test/ui/issue-24357.stderr b/src/test/ui/issue-24357.stderr
new file mode 100644
index 00000000000..be531ec8567
--- /dev/null
+++ b/src/test/ui/issue-24357.stderr
@@ -0,0 +1,14 @@
+error[E0382]: use of moved value: `x`
+  --> $DIR/issue-24357.rs:16:8
+   |
+LL |    let f = move || { let y = x; };
+   |            ------- value moved (into closure) here
+LL |    //~^ NOTE value moved (into closure) here
+LL |    let z = x;
+   |        ^ value used here after move
+   |
+   = note: move occurs because `x` has type `NoCopy`, which does not implement the `Copy` trait
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0382`.
diff --git a/src/test/compile-fail/issue-24363.rs b/src/test/ui/issue-24363.rs
index 619ad74ad00..619ad74ad00 100644
--- a/src/test/compile-fail/issue-24363.rs
+++ b/src/test/ui/issue-24363.rs
diff --git a/src/test/ui/issue-24363.stderr b/src/test/ui/issue-24363.stderr
new file mode 100644
index 00000000000..2695d6acea8
--- /dev/null
+++ b/src/test/ui/issue-24363.stderr
@@ -0,0 +1,18 @@
+error[E0610]: `{integer}` is a primitive type and therefore doesn't have fields
+  --> $DIR/issue-24363.rs:12:7
+   |
+LL |     1.create_a_type_error[ //~ `{integer}` is a primitive type and therefore doesn't have fields
+   |       ^^^^^^^^^^^^^^^^^^^
+
+error[E0369]: binary operation `+` cannot be applied to type `()`
+  --> $DIR/issue-24363.rs:13:9
+   |
+LL |         ()+() //~ ERROR binary operation `+` cannot be applied
+   |         ^^^^^
+   |
+   = note: an implementation of `std::ops::Add` might be missing for `()`
+
+error: aborting due to 2 previous errors
+
+Some errors occurred: E0369, E0610.
+For more information about an error, try `rustc --explain E0369`.
diff --git a/src/test/compile-fail/issue-24365.rs b/src/test/ui/issue-24365.rs
index 72df6fb5999..72df6fb5999 100644
--- a/src/test/compile-fail/issue-24365.rs
+++ b/src/test/ui/issue-24365.rs
diff --git a/src/test/ui/issue-24365.stderr b/src/test/ui/issue-24365.stderr
new file mode 100644
index 00000000000..0ad4674ca86
--- /dev/null
+++ b/src/test/ui/issue-24365.stderr
@@ -0,0 +1,21 @@
+error[E0609]: no field `b` on type `Foo`
+  --> $DIR/issue-24365.rs:20:22
+   |
+LL |     println!("{}", a.b); //~ no field `b` on type `Foo`
+   |                      ^
+
+error[E0609]: no field `attr_name_idx` on type `&Attribute`
+  --> $DIR/issue-24365.rs:27:18
+   |
+LL |     let z = (&x).attr_name_idx; //~ no field `attr_name_idx` on type `&Attribute`
+   |                  ^^^^^^^^^^^^^
+
+error[E0609]: no field `attr_name_idx` on type `Attribute`
+  --> $DIR/issue-24365.rs:28:15
+   |
+LL |     let y = x.attr_name_idx; //~ no field `attr_name_idx` on type `Attribute`
+   |               ^^^^^^^^^^^^^
+
+error: aborting due to 3 previous errors
+
+For more information about this error, try `rustc --explain E0609`.
diff --git a/src/test/compile-fail/issue-24446.rs b/src/test/ui/issue-24446.rs
index a9c7978642d..a9c7978642d 100644
--- a/src/test/compile-fail/issue-24446.rs
+++ b/src/test/ui/issue-24446.rs
diff --git a/src/test/ui/issue-24446.stderr b/src/test/ui/issue-24446.stderr
new file mode 100644
index 00000000000..2c13dd36558
--- /dev/null
+++ b/src/test/ui/issue-24446.stderr
@@ -0,0 +1,33 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-24446.rs:12:31
+   |
+LL |       static foo: Fn() -> u32 = || -> u32 {
+   |  _______________________________^
+LL | |         //~^ ERROR mismatched types
+LL | |         //~| ERROR the size for values of type
+LL | |         0
+LL | |     };
+   | |_____^ expected trait std::ops::Fn, found closure
+   |
+   = note: expected type `(dyn std::ops::Fn() -> u32 + 'static)`
+              found type `[closure@$DIR/issue-24446.rs:12:31: 16:6]`
+
+error[E0277]: the size for values of type `(dyn std::ops::Fn() -> u32 + 'static)` cannot be known at compilation time
+  --> $DIR/issue-24446.rs:12:31
+   |
+LL |       static foo: Fn() -> u32 = || -> u32 {
+   |  _______________________________^
+LL | |         //~^ ERROR mismatched types
+LL | |         //~| ERROR the size for values of type
+LL | |         0
+LL | |     };
+   | |_____^ doesn't have a size known at compile-time
+   |
+   = help: the trait `std::marker::Sized` is not implemented for `(dyn std::ops::Fn() -> u32 + 'static)`
+   = note: to learn more, visit <https://doc.rust-lang.org/book/second-edition/ch19-04-advanced-types.html#dynamically-sized-types--sized>
+   = note: constant expressions must have a statically known size
+
+error: aborting due to 2 previous errors
+
+Some errors occurred: E0277, E0308.
+For more information about an error, try `rustc --explain E0277`.
diff --git a/src/test/compile-fail/issue-24682.rs b/src/test/ui/issue-24682.rs
index 0e872f71df4..0e872f71df4 100644
--- a/src/test/compile-fail/issue-24682.rs
+++ b/src/test/ui/issue-24682.rs
diff --git a/src/test/ui/issue-24682.stderr b/src/test/ui/issue-24682.stderr
new file mode 100644
index 00000000000..1e16cb72a09
--- /dev/null
+++ b/src/test/ui/issue-24682.stderr
@@ -0,0 +1,22 @@
+error[E0229]: associated type bindings are not allowed here
+  --> $DIR/issue-24682.rs:15:11
+   |
+LL | /           N= //~ ERROR associated type bindings are not allowed here
+LL | |           Self::N> {
+   | |_________________^ associated type not allowed here
+
+error[E0229]: associated type bindings are not allowed here
+  --> $DIR/issue-24682.rs:21:13
+   |
+LL |            <N=()> //~ ERROR associated type bindings are not allowed here
+   |             ^^^^ associated type not allowed here
+
+error[E0229]: associated type bindings are not allowed here
+  --> $DIR/issue-24682.rs:25:13
+   |
+LL |         u32<N=()> //~ ERROR associated type bindings are not allowed here
+   |             ^^^^ associated type not allowed here
+
+error: aborting due to 3 previous errors
+
+For more information about this error, try `rustc --explain E0229`.
diff --git a/src/test/compile-fail/issue-24819.rs b/src/test/ui/issue-24819.rs
index 52f5f1cd079..52f5f1cd079 100644
--- a/src/test/compile-fail/issue-24819.rs
+++ b/src/test/ui/issue-24819.rs
diff --git a/src/test/ui/issue-24819.stderr b/src/test/ui/issue-24819.stderr
new file mode 100644
index 00000000000..33034b7072b
--- /dev/null
+++ b/src/test/ui/issue-24819.stderr
@@ -0,0 +1,12 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-24819.rs:15:9
+   |
+LL |     foo(&mut v);
+   |         ^^^^^^ expected struct `std::collections::HashSet`, found struct `std::vec::Vec`
+   |
+   = note: expected type `&mut std::collections::HashSet<u32>`
+              found type `&mut std::vec::Vec<_>`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-24883.rs b/src/test/ui/issue-24883.rs
index 097f2a5630c..097f2a5630c 100644
--- a/src/test/compile-fail/issue-24883.rs
+++ b/src/test/ui/issue-24883.rs
diff --git a/src/test/ui/issue-24883.stderr b/src/test/ui/issue-24883.stderr
new file mode 100644
index 00000000000..4b17747f109
--- /dev/null
+++ b/src/test/ui/issue-24883.stderr
@@ -0,0 +1,11 @@
+error: compilation successful
+  --> $DIR/issue-24883.rs:25:1
+   |
+LL | / fn main() {  //~ ERROR compilation successful
+LL | |     let _ = a::c::Bar(a::b::Foo);
+LL | |     let _ = a::Bar(a::b::Foo);
+LL | | }
+   | |_^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-25076.rs b/src/test/ui/issue-25076.rs
index 1c255b4e631..1c255b4e631 100644
--- a/src/test/compile-fail/issue-25076.rs
+++ b/src/test/ui/issue-25076.rs
diff --git a/src/test/ui/issue-25076.stderr b/src/test/ui/issue-25076.stderr
new file mode 100644
index 00000000000..13ee70fdd9b
--- /dev/null
+++ b/src/test/ui/issue-25076.stderr
@@ -0,0 +1,15 @@
+error[E0277]: the trait bound `(): InOut<_>` is not satisfied
+  --> $DIR/issue-25076.rs:20:5
+   |
+LL |     do_fold(bot(), ()); //~ ERROR `(): InOut<_>` is not satisfied
+   |     ^^^^^^^ the trait `InOut<_>` is not implemented for `()`
+   |
+note: required by `do_fold`
+  --> $DIR/issue-25076.rs:15:1
+   |
+LL | fn do_fold<B, F: InOut<B, Out=B>>(init: B, f: F) {}
+   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/compile-fail/issue-25368.rs b/src/test/ui/issue-25368.rs
index e70c0050221..e70c0050221 100644
--- a/src/test/compile-fail/issue-25368.rs
+++ b/src/test/ui/issue-25368.rs
diff --git a/src/test/ui/issue-25368.stderr b/src/test/ui/issue-25368.stderr
new file mode 100644
index 00000000000..56cbef7b89c
--- /dev/null
+++ b/src/test/ui/issue-25368.stderr
@@ -0,0 +1,12 @@
+error[E0282]: type annotations needed
+  --> $DIR/issue-25368.rs:21:17
+   |
+LL |     let (tx, rx) = channel();
+   |         -------- consider giving the pattern a type
+...
+LL |         tx.send(Foo{ foo: PhantomData }); //~ ERROR E0282
+   |                 ^^^ cannot infer type for `T`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0282`.
diff --git a/src/test/compile-fail/issue-25386.rs b/src/test/ui/issue-25386.rs
index b2775db5e75..b2775db5e75 100644
--- a/src/test/compile-fail/issue-25386.rs
+++ b/src/test/ui/issue-25386.rs
diff --git a/src/test/ui/issue-25386.stderr b/src/test/ui/issue-25386.stderr
new file mode 100644
index 00000000000..986961d36c9
--- /dev/null
+++ b/src/test/ui/issue-25386.stderr
@@ -0,0 +1,21 @@
+error[E0616]: field `c_object` of struct `stuff::Item` is private
+  --> $DIR/issue-25386.rs:29:11
+   |
+LL |         (*$var.c_object).$member.is_some()
+   |           ^^^^^^^^^^^^^
+...
+LL |     println!("{}", check_ptr_exist!(item, name));
+   |                    ---------------------------- in this macro invocation
+
+error[E0616]: field `name` of struct `stuff::CObj` is private
+  --> $DIR/issue-25386.rs:29:9
+   |
+LL |         (*$var.c_object).$member.is_some()
+   |         ^^^^^^^^^^^^^^^^^^^^^^^^
+...
+LL |     println!("{}", check_ptr_exist!(item, name));
+   |                    ---------------------------- in this macro invocation
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0616`.
diff --git a/src/test/compile-fail/issue-25396.rs b/src/test/ui/issue-25396.rs
index 7cfcbc5471a..7cfcbc5471a 100644
--- a/src/test/compile-fail/issue-25396.rs
+++ b/src/test/ui/issue-25396.rs
diff --git a/src/test/ui/issue-25396.stderr b/src/test/ui/issue-25396.stderr
new file mode 100644
index 00000000000..1946f391672
--- /dev/null
+++ b/src/test/ui/issue-25396.stderr
@@ -0,0 +1,59 @@
+error[E0252]: the name `baz` is defined multiple times
+  --> $DIR/issue-25396.rs:12:5
+   |
+LL | use foo::baz;
+   |     -------- previous import of the module `baz` here
+LL | use bar::baz; //~ ERROR the name `baz` is defined multiple times
+   |     ^^^^^^^^ `baz` reimported here
+   |
+   = note: `baz` must be defined only once in the type namespace of this module
+help: You can use `as` to change the binding name of the import
+   |
+LL | use bar::baz as other_baz; //~ ERROR the name `baz` is defined multiple times
+   |     ^^^^^^^^^^^^^^^^^^^^^
+
+error[E0252]: the name `Quux` is defined multiple times
+  --> $DIR/issue-25396.rs:15:5
+   |
+LL | use foo::Quux;
+   |     --------- previous import of the trait `Quux` here
+LL | use bar::Quux; //~ ERROR the name `Quux` is defined multiple times
+   |     ^^^^^^^^^ `Quux` reimported here
+   |
+   = note: `Quux` must be defined only once in the type namespace of this module
+help: You can use `as` to change the binding name of the import
+   |
+LL | use bar::Quux as OtherQuux; //~ ERROR the name `Quux` is defined multiple times
+   |     ^^^^^^^^^^^^^^^^^^^^^^
+
+error[E0252]: the name `blah` is defined multiple times
+  --> $DIR/issue-25396.rs:18:5
+   |
+LL | use foo::blah;
+   |     --------- previous import of the type `blah` here
+LL | use bar::blah; //~ ERROR the name `blah` is defined multiple times
+   |     ^^^^^^^^^ `blah` reimported here
+   |
+   = note: `blah` must be defined only once in the type namespace of this module
+help: You can use `as` to change the binding name of the import
+   |
+LL | use bar::blah as other_blah; //~ ERROR the name `blah` is defined multiple times
+   |     ^^^^^^^^^^^^^^^^^^^^^^^
+
+error[E0252]: the name `WOMP` is defined multiple times
+  --> $DIR/issue-25396.rs:21:5
+   |
+LL | use foo::WOMP;
+   |     --------- previous import of the value `WOMP` here
+LL | use bar::WOMP; //~ ERROR the name `WOMP` is defined multiple times
+   |     ^^^^^^^^^ `WOMP` reimported here
+   |
+   = note: `WOMP` must be defined only once in the value namespace of this module
+help: You can use `as` to change the binding name of the import
+   |
+LL | use bar::WOMP as OtherWOMP; //~ ERROR the name `WOMP` is defined multiple times
+   |     ^^^^^^^^^^^^^^^^^^^^^^
+
+error: aborting due to 4 previous errors
+
+For more information about this error, try `rustc --explain E0252`.
diff --git a/src/test/compile-fail/issue-25439.rs b/src/test/ui/issue-25439.rs
index 6e33fd5ae71..6e33fd5ae71 100644
--- a/src/test/compile-fail/issue-25439.rs
+++ b/src/test/ui/issue-25439.rs
diff --git a/src/test/ui/issue-25439.stderr b/src/test/ui/issue-25439.stderr
new file mode 100644
index 00000000000..467bb1ad28e
--- /dev/null
+++ b/src/test/ui/issue-25439.stderr
@@ -0,0 +1,13 @@
+error[E0644]: closure/generator type that references itself
+  --> $DIR/issue-25439.rs:18:9
+   |
+LL |     fix(|_, x| x); //~ ERROR closure/generator type that references itself [E0644]
+   |         ^^^^^^^^ cyclic type of infinite size
+   |
+   = note: closures cannot capture themselves or take themselves as argument;
+           this error may be the result of a recent compiler bug-fix,
+           see https://github.com/rust-lang/rust/issues/46062 for more details
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0644`.
diff --git a/src/test/ui/issue-25579.ast.nll.stderr b/src/test/ui/issue-25579.ast.nll.stderr
new file mode 100644
index 00000000000..9f698e4d582
--- /dev/null
+++ b/src/test/ui/issue-25579.ast.nll.stderr
@@ -0,0 +1,9 @@
+error: compilation successful
+  --> $DIR/issue-25579.rs:31:1
+   |
+LL | / fn main() { //[mir]~ ERROR compilation successful
+LL | | }
+   | |_^
+
+error: aborting due to previous error
+
diff --git a/src/test/ui/issue-25579.ast.stderr b/src/test/ui/issue-25579.ast.stderr
new file mode 100644
index 00000000000..49b483d7503
--- /dev/null
+++ b/src/test/ui/issue-25579.ast.stderr
@@ -0,0 +1,21 @@
+error[E0499]: cannot borrow `l.0` as mutable more than once at a time
+  --> $DIR/issue-25579.rs:24:32
+   |
+LL |         &mut Sexpression::Cons(ref mut expr) => { //[ast]~ ERROR [E0499]
+   |                                ^^^^^^^^^^^^ mutable borrow starts here in previous iteration of loop
+...
+LL | }
+   | - mutable borrow ends here
+
+error[E0506]: cannot assign to `l` because it is borrowed
+  --> $DIR/issue-25579.rs:25:13
+   |
+LL |         &mut Sexpression::Cons(ref mut expr) => { //[ast]~ ERROR [E0499]
+   |                                ------------ borrow of `l` occurs here
+LL |             l = &mut **expr; //[ast]~ ERROR [E0506]
+   |             ^^^^^^^^^^^^^^^ assignment to borrowed `l` occurs here
+
+error: aborting due to 2 previous errors
+
+Some errors occurred: E0499, E0506.
+For more information about an error, try `rustc --explain E0499`.
diff --git a/src/test/ui/issue-25579.mir.stderr b/src/test/ui/issue-25579.mir.stderr
new file mode 100644
index 00000000000..9f698e4d582
--- /dev/null
+++ b/src/test/ui/issue-25579.mir.stderr
@@ -0,0 +1,9 @@
+error: compilation successful
+  --> $DIR/issue-25579.rs:31:1
+   |
+LL | / fn main() { //[mir]~ ERROR compilation successful
+LL | | }
+   | |_^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-25579.rs b/src/test/ui/issue-25579.rs
index 71c1d63cf5a..71c1d63cf5a 100644
--- a/src/test/compile-fail/issue-25579.rs
+++ b/src/test/ui/issue-25579.rs
diff --git a/src/test/compile-fail/issue-25700.rs b/src/test/ui/issue-25700.rs
index 477c3237f84..477c3237f84 100644
--- a/src/test/compile-fail/issue-25700.rs
+++ b/src/test/ui/issue-25700.rs
diff --git a/src/test/ui/issue-25700.stderr b/src/test/ui/issue-25700.stderr
new file mode 100644
index 00000000000..786620ab750
--- /dev/null
+++ b/src/test/ui/issue-25700.stderr
@@ -0,0 +1,13 @@
+error[E0382]: use of moved value: `t`
+  --> $DIR/issue-25700.rs:23:10
+   |
+LL |     drop(t);
+   |          - value moved here
+LL |     drop(t); //~ ERROR use of moved value
+   |          ^ value used here after move
+   |
+   = note: move occurs because `t` has type `S<()>`, which does not implement the `Copy` trait
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0382`.
diff --git a/src/test/ui/issue-2590.nll.stderr b/src/test/ui/issue-2590.nll.stderr
new file mode 100644
index 00000000000..fa2df26498a
--- /dev/null
+++ b/src/test/ui/issue-2590.nll.stderr
@@ -0,0 +1,9 @@
+error[E0507]: cannot move out of borrowed content
+  --> $DIR/issue-2590.rs:22:9
+   |
+LL |         self.tokens //~ ERROR cannot move out of borrowed content
+   |         ^^^^^^^^^^^ cannot move out of borrowed content
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0507`.
diff --git a/src/test/compile-fail/issue-2590.rs b/src/test/ui/issue-2590.rs
index d7e438d1049..d7e438d1049 100644
--- a/src/test/compile-fail/issue-2590.rs
+++ b/src/test/ui/issue-2590.rs
diff --git a/src/test/ui/issue-2590.stderr b/src/test/ui/issue-2590.stderr
new file mode 100644
index 00000000000..59ec66d42cd
--- /dev/null
+++ b/src/test/ui/issue-2590.stderr
@@ -0,0 +1,9 @@
+error[E0507]: cannot move out of borrowed content
+  --> $DIR/issue-2590.rs:22:9
+   |
+LL |         self.tokens //~ ERROR cannot move out of borrowed content
+   |         ^^^^ cannot move out of borrowed content
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0507`.
diff --git a/src/test/compile-fail/issue-25901.rs b/src/test/ui/issue-25901.rs
index 72fb2a682eb..72fb2a682eb 100644
--- a/src/test/compile-fail/issue-25901.rs
+++ b/src/test/ui/issue-25901.rs
diff --git a/src/test/ui/issue-25901.stderr b/src/test/ui/issue-25901.stderr
new file mode 100644
index 00000000000..8c20df5a230
--- /dev/null
+++ b/src/test/ui/issue-25901.stderr
@@ -0,0 +1,9 @@
+error[E0015]: calls in statics are limited to constant functions, tuple structs and tuple variants
+  --> $DIR/issue-25901.rs:14:24
+   |
+LL | static S: &'static B = &A;
+   |                        ^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0015`.
diff --git a/src/test/compile-fail/issue-26094.rs b/src/test/ui/issue-26094.rs
index 99add95e806..99add95e806 100644
--- a/src/test/compile-fail/issue-26094.rs
+++ b/src/test/ui/issue-26094.rs
diff --git a/src/test/ui/issue-26094.stderr b/src/test/ui/issue-26094.stderr
new file mode 100644
index 00000000000..bf902e16c0c
--- /dev/null
+++ b/src/test/ui/issue-26094.stderr
@@ -0,0 +1,15 @@
+error[E0061]: this function takes 0 parameters but 1 parameter was supplied
+  --> $DIR/issue-26094.rs:13:9
+   |
+LL |         $other(None)
+   |         ^^^^^^^^^^^^ expected 0 parameters
+...
+LL | fn some_function() {}
+   | ------------------ defined here
+...
+LL |     some_macro!(some_function);
+   |     --------------------------- in this macro invocation
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0061`.
diff --git a/src/test/compile-fail/issue-26158.rs b/src/test/ui/issue-26158.rs
index 54f5313aed1..54f5313aed1 100644
--- a/src/test/compile-fail/issue-26158.rs
+++ b/src/test/ui/issue-26158.rs
diff --git a/src/test/ui/issue-26158.stderr b/src/test/ui/issue-26158.stderr
new file mode 100644
index 00000000000..07b968c8e78
--- /dev/null
+++ b/src/test/ui/issue-26158.stderr
@@ -0,0 +1,9 @@
+error[E0005]: refutable pattern in local binding: `&[]` not covered
+  --> $DIR/issue-26158.rs:15:9
+   |
+LL |     let &[[ref _a, ref _b..]..] = x; //~ ERROR refutable pattern
+   |         ^^^^^^^^^^^^^^^^^^^^^^^ pattern `&[]` not covered
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0005`.
diff --git a/src/test/ui/issue-26217.nll.stderr b/src/test/ui/issue-26217.nll.stderr
new file mode 100644
index 00000000000..94e3692d53d
--- /dev/null
+++ b/src/test/ui/issue-26217.nll.stderr
@@ -0,0 +1,15 @@
+warning: not reporting region error due to nll
+  --> $DIR/issue-26217.rs:14:5
+   |
+LL |     foo::<&'a i32>();
+   |     ^^^^^^^^^^^^^^
+
+error[E0131]: `main` function is not allowed to have generic parameters
+  --> $DIR/issue-26217.rs:13:8
+   |
+LL | fn main<'a>() {
+   |        ^^^^ `main` cannot have generic parameters
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0131`.
diff --git a/src/test/compile-fail/issue-26217.rs b/src/test/ui/issue-26217.rs
index 06a8fe52588..06a8fe52588 100644
--- a/src/test/compile-fail/issue-26217.rs
+++ b/src/test/ui/issue-26217.rs
diff --git a/src/test/ui/issue-26217.stderr b/src/test/ui/issue-26217.stderr
new file mode 100644
index 00000000000..f581826440e
--- /dev/null
+++ b/src/test/ui/issue-26217.stderr
@@ -0,0 +1,11 @@
+error[E0477]: the type `&'a i32` does not fulfill the required lifetime
+  --> $DIR/issue-26217.rs:14:5
+   |
+LL |     foo::<&'a i32>();
+   |     ^^^^^^^^^^^^^^
+   |
+   = note: type must satisfy the static lifetime
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0477`.
diff --git a/src/test/compile-fail/issue-26237.rs b/src/test/ui/issue-26237.rs
index 22772e596b1..22772e596b1 100644
--- a/src/test/compile-fail/issue-26237.rs
+++ b/src/test/ui/issue-26237.rs
diff --git a/src/test/ui/issue-26237.stderr b/src/test/ui/issue-26237.stderr
new file mode 100644
index 00000000000..ae6fda8b932
--- /dev/null
+++ b/src/test/ui/issue-26237.stderr
@@ -0,0 +1,15 @@
+error[E0618]: expected function, found `{integer}`
+  --> $DIR/issue-26237.rs:13:9
+   |
+LL |         $not_a_function($some_argument)
+   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not a function
+...
+LL |     let mut value_a = 0;
+   |         ----------- `{integer}` defined here
+LL |     let mut value_b = 0;
+LL |     macro_panic!(value_a, value_b);
+   |     ------------------------------- in this macro invocation
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0618`.
diff --git a/src/test/compile-fail/issue-26262.rs b/src/test/ui/issue-26262.rs
index 8d79fd4570d..8d79fd4570d 100644
--- a/src/test/compile-fail/issue-26262.rs
+++ b/src/test/ui/issue-26262.rs
diff --git a/src/test/ui/issue-26262.stderr b/src/test/ui/issue-26262.stderr
new file mode 100644
index 00000000000..2e0a211d061
--- /dev/null
+++ b/src/test/ui/issue-26262.stderr
@@ -0,0 +1,15 @@
+error[E0207]: the type parameter `T` is not constrained by the impl trait, self type, or predicates
+  --> $DIR/issue-26262.rs:17:6
+   |
+LL | impl<T: Tr> S<T::Assoc> {
+   |      ^ unconstrained type parameter
+
+error[E0207]: the lifetime parameter `'a` is not constrained by the impl trait, self type, or predicates
+  --> $DIR/issue-26262.rs:27:6
+   |
+LL | impl<'a,T: Trait2<'a>> Trait1<<T as Trait2<'a>>::Foo> for T {
+   |      ^^ unconstrained lifetime parameter
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0207`.
diff --git a/src/test/compile-fail/issue-26459.rs b/src/test/ui/issue-26459.rs
index 8be3d88bd5c..8be3d88bd5c 100644
--- a/src/test/compile-fail/issue-26459.rs
+++ b/src/test/ui/issue-26459.rs
diff --git a/src/test/ui/issue-26459.stderr b/src/test/ui/issue-26459.stderr
new file mode 100644
index 00000000000..d497c1c9209
--- /dev/null
+++ b/src/test/ui/issue-26459.stderr
@@ -0,0 +1,9 @@
+error[E0574]: expected struct, variant or union type, found builtin type `char`
+  --> $DIR/issue-26459.rs:13:9
+   |
+LL |         char{ch} => true
+   |         ^^^^ not a struct, variant or union type
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0574`.
diff --git a/src/test/compile-fail/issue-26548.rs b/src/test/ui/issue-26548.rs
index aab674fbb1a..fc4f3d1fb53 100644
--- a/src/test/compile-fail/issue-26548.rs
+++ b/src/test/ui/issue-26548.rs
@@ -8,9 +8,10 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-// error-pattern: cycle detected when computing layout of
-// note-pattern: ...which requires computing layout of
-// note-pattern: ...which again requires computing layout of
+//~^^^^^^^^^^ ERROR cycle detected when computing layout of
+//~| NOTE ...which requires computing layout of
+//~| NOTE ...which again requires computing layout of
+//~| NOTE cycle used when compile_codegen_unit
 
 trait Mirror { type It: ?Sized; }
 impl<T: ?Sized> Mirror for T { type It = Self; }
diff --git a/src/test/ui/issue-26548.stderr b/src/test/ui/issue-26548.stderr
new file mode 100644
index 00000000000..c1db7fe128f
--- /dev/null
+++ b/src/test/ui/issue-26548.stderr
@@ -0,0 +1,9 @@
+error[E0391]: cycle detected when computing layout of `std::option::Option<S>`
+   |
+note: ...which requires computing layout of `S`...
+   = note: ...which again requires computing layout of `std::option::Option<S>`, completing the cycle
+note: cycle used when compile_codegen_unit
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0391`.
diff --git a/src/test/compile-fail/issue-26614.rs b/src/test/ui/issue-26614.rs
index c128fb3b479..c128fb3b479 100644
--- a/src/test/compile-fail/issue-26614.rs
+++ b/src/test/ui/issue-26614.rs
diff --git a/src/test/ui/issue-26614.stderr b/src/test/ui/issue-26614.stderr
new file mode 100644
index 00000000000..1752d80fde3
--- /dev/null
+++ b/src/test/ui/issue-26614.stderr
@@ -0,0 +1,11 @@
+error: compilation successful
+  --> $DIR/issue-26614.rs:24:1
+   |
+LL | / fn main() { //~ ERROR compilation successful
+LL | |     let c: <u32 as Mirror>::It = 5;
+LL | |     const CCCC: <u32 as Mirror>::It = 5;
+LL | | }
+   | |_^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-26812.rs b/src/test/ui/issue-26812.rs
index 1dd00881078..1dd00881078 100644
--- a/src/test/compile-fail/issue-26812.rs
+++ b/src/test/ui/issue-26812.rs
diff --git a/src/test/ui/issue-26812.stderr b/src/test/ui/issue-26812.stderr
new file mode 100644
index 00000000000..82cc17b7665
--- /dev/null
+++ b/src/test/ui/issue-26812.stderr
@@ -0,0 +1,9 @@
+error[E0128]: type parameters with a default cannot use forward declared identifiers
+  --> $DIR/issue-26812.rs:13:10
+   |
+LL | fn avg<T=T::Item>(_: T) {}
+   |          ^^^^^^^ defaulted type parameters cannot be forward declared
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0128`.
diff --git a/src/test/compile-fail/issue-26905.rs b/src/test/ui/issue-26905.rs
index 3b8fac832a4..3b8fac832a4 100644
--- a/src/test/compile-fail/issue-26905.rs
+++ b/src/test/ui/issue-26905.rs
diff --git a/src/test/ui/issue-26905.stderr b/src/test/ui/issue-26905.stderr
new file mode 100644
index 00000000000..f18b58a8330
--- /dev/null
+++ b/src/test/ui/issue-26905.stderr
@@ -0,0 +1,12 @@
+error[E0375]: implementing the trait `CoerceUnsized` requires multiple coercions
+  --> $DIR/issue-26905.rs:26:40
+   |
+LL | impl<T: ?Sized + Unsize<U>, U: ?Sized> CoerceUnsized<MyRc<U>> for MyRc<T>{ } //~ERROR
+   |                                        ^^^^^^^^^^^^^^^^^^^^^^ requires multiple coercions
+   |
+   = note: `CoerceUnsized` may only be implemented for a coercion between structures with one field being coerced
+   = note: currently, 2 fields need coercions: _ptr (*const T to *const U), _boo (NotPhantomData<T> to NotPhantomData<U>)
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0375`.
diff --git a/src/test/compile-fail/issue-26930.rs b/src/test/ui/issue-26930.rs
index 6c98f3e8560..6c98f3e8560 100644
--- a/src/test/compile-fail/issue-26930.rs
+++ b/src/test/ui/issue-26930.rs
diff --git a/src/test/ui/issue-26930.stderr b/src/test/ui/issue-26930.stderr
new file mode 100644
index 00000000000..f962f4c58c4
--- /dev/null
+++ b/src/test/ui/issue-26930.stderr
@@ -0,0 +1,8 @@
+error: compilation successful
+  --> $DIR/issue-26930.rs:20:1
+   |
+LL | fn main() {} //~ ERROR compilation successful
+   | ^^^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-26948.rs b/src/test/ui/issue-26948.rs
index c63cb5defb7..c63cb5defb7 100644
--- a/src/test/compile-fail/issue-26948.rs
+++ b/src/test/ui/issue-26948.rs
diff --git a/src/test/ui/issue-26948.stderr b/src/test/ui/issue-26948.stderr
new file mode 100644
index 00000000000..982ce1d6c7b
--- /dev/null
+++ b/src/test/ui/issue-26948.stderr
@@ -0,0 +1,9 @@
+error[E0436]: functional record update syntax requires a struct
+  --> $DIR/issue-26948.rs:14:22
+   |
+LL |     Foo::A { x: 6, ..orig };
+   |                      ^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0436`.
diff --git a/src/test/compile-fail/issue-27008.rs b/src/test/ui/issue-27008.rs
index f80135848e0..f80135848e0 100644
--- a/src/test/compile-fail/issue-27008.rs
+++ b/src/test/ui/issue-27008.rs
diff --git a/src/test/ui/issue-27008.stderr b/src/test/ui/issue-27008.stderr
new file mode 100644
index 00000000000..79831463664
--- /dev/null
+++ b/src/test/ui/issue-27008.stderr
@@ -0,0 +1,12 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-27008.rs:14:17
+   |
+LL |     let b = [0; S];
+   |                 ^ expected usize, found struct `S`
+   |
+   = note: expected type `usize`
+              found type `S`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-27033.rs b/src/test/ui/issue-27033.rs
index b8552aaee90..b8552aaee90 100644
--- a/src/test/compile-fail/issue-27033.rs
+++ b/src/test/ui/issue-27033.rs
diff --git a/src/test/ui/issue-27033.stderr b/src/test/ui/issue-27033.stderr
new file mode 100644
index 00000000000..ba573c3eb6d
--- /dev/null
+++ b/src/test/ui/issue-27033.stderr
@@ -0,0 +1,18 @@
+error[E0530]: match bindings cannot shadow unit variants
+  --> $DIR/issue-27033.rs:13:9
+   |
+LL |         None @ _ => {} //~ ERROR match bindings cannot shadow unit variants
+   |         ^^^^ cannot be named the same as a unit variant
+
+error[E0530]: match bindings cannot shadow constants
+  --> $DIR/issue-27033.rs:17:9
+   |
+LL |     const C: u8 = 1;
+   |     ---------------- a constant `C` is defined here
+LL |     match 1 {
+LL |         C @ 2 => { //~ ERROR match bindings cannot shadow constant
+   |         ^ cannot be named the same as a constant
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0530`.
diff --git a/src/test/compile-fail/issue-27042.rs b/src/test/ui/issue-27042.rs
index 23afa4b6296..23afa4b6296 100644
--- a/src/test/compile-fail/issue-27042.rs
+++ b/src/test/ui/issue-27042.rs
diff --git a/src/test/ui/issue-27042.stderr b/src/test/ui/issue-27042.stderr
new file mode 100644
index 00000000000..48113445582
--- /dev/null
+++ b/src/test/ui/issue-27042.stderr
@@ -0,0 +1,42 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-27042.rs:16:16
+   |
+LL |         loop { break }; //~ ERROR mismatched types
+   |                ^^^^^ expected (), found i32
+   |
+   = note: expected type `()`
+              found type `i32`
+
+error[E0308]: mismatched types
+  --> $DIR/issue-27042.rs:18:9
+   |
+LL | /         'b: //~ ERROR mismatched types
+LL | |         while true { break }; // but here we cite the whole loop
+   | |____________________________^ expected i32, found ()
+   |
+   = note: expected type `i32`
+              found type `()`
+
+error[E0308]: mismatched types
+  --> $DIR/issue-27042.rs:21:9
+   |
+LL | /         'c: //~ ERROR mismatched types
+LL | |         for _ in None { break }; // but here we cite the whole loop
+   | |_______________________________^ expected i32, found ()
+   |
+   = note: expected type `i32`
+              found type `()`
+
+error[E0308]: mismatched types
+  --> $DIR/issue-27042.rs:24:9
+   |
+LL | /         'd: //~ ERROR mismatched types
+LL | |         while let Some(_) = None { break };
+   | |__________________________________________^ expected i32, found ()
+   |
+   = note: expected type `i32`
+              found type `()`
+
+error: aborting due to 4 previous errors
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-27060-2.rs b/src/test/ui/issue-27060-2.rs
index 619616adda6..619616adda6 100644
--- a/src/test/compile-fail/issue-27060-2.rs
+++ b/src/test/ui/issue-27060-2.rs
diff --git a/src/test/ui/issue-27060-2.stderr b/src/test/ui/issue-27060-2.stderr
new file mode 100644
index 00000000000..bb284138ebf
--- /dev/null
+++ b/src/test/ui/issue-27060-2.stderr
@@ -0,0 +1,14 @@
+error[E0277]: the size for values of type `T` cannot be known at compilation time
+  --> $DIR/issue-27060-2.rs:13:5
+   |
+LL |     data: T, //~ ERROR the size for values of type
+   |     ^^^^^^^ doesn't have a size known at compile-time
+   |
+   = help: the trait `std::marker::Sized` is not implemented for `T`
+   = note: to learn more, visit <https://doc.rust-lang.org/book/second-edition/ch19-04-advanced-types.html#dynamically-sized-types--sized>
+   = help: consider adding a `where T: std::marker::Sized` bound
+   = note: only the last field of a struct may have a dynamically sized type
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/compile-fail/issue-27078.rs b/src/test/ui/issue-27078.rs
index 294c288a970..294c288a970 100644
--- a/src/test/compile-fail/issue-27078.rs
+++ b/src/test/ui/issue-27078.rs
diff --git a/src/test/ui/issue-27078.stderr b/src/test/ui/issue-27078.stderr
new file mode 100644
index 00000000000..1a729c00fc1
--- /dev/null
+++ b/src/test/ui/issue-27078.stderr
@@ -0,0 +1,14 @@
+error[E0277]: the size for values of type `Self` cannot be known at compilation time
+  --> $DIR/issue-27078.rs:15:12
+   |
+LL |     fn foo(self) -> &'static i32 {
+   |            ^^^^ doesn't have a size known at compile-time
+   |
+   = help: the trait `std::marker::Sized` is not implemented for `Self`
+   = note: to learn more, visit <https://doc.rust-lang.org/book/second-edition/ch19-04-advanced-types.html#dynamically-sized-types--sized>
+   = help: consider adding a `where Self: std::marker::Sized` bound
+   = note: all local variables must have a statically known size
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/compile-fail/issue-2718-a.rs b/src/test/ui/issue-2718-a.rs
index 6de28cbbf35..6de28cbbf35 100644
--- a/src/test/compile-fail/issue-2718-a.rs
+++ b/src/test/ui/issue-2718-a.rs
diff --git a/src/test/ui/issue-2718-a.stderr b/src/test/ui/issue-2718-a.stderr
new file mode 100644
index 00000000000..a60e5d04455
--- /dev/null
+++ b/src/test/ui/issue-2718-a.stderr
@@ -0,0 +1,14 @@
+error[E0072]: recursive type `pingpong::pong` has infinite size
+  --> $DIR/issue-2718-a.rs:18:5
+   |
+LL |     pub struct pong(send_packet<ping>);
+   |     ^^^^^^^^^^^^^^^^-----------------^^
+   |     |               |
+   |     |               recursive without indirection
+   |     recursive type has infinite size
+   |
+   = help: insert indirection (e.g., a `Box`, `Rc`, or `&`) at some point to make `pingpong::pong` representable
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0072`.
diff --git a/src/test/compile-fail/issue-27340.rs b/src/test/ui/issue-27340.rs
index ce3fa487d4e..ce3fa487d4e 100644
--- a/src/test/compile-fail/issue-27340.rs
+++ b/src/test/ui/issue-27340.rs
diff --git a/src/test/ui/issue-27340.stderr b/src/test/ui/issue-27340.stderr
new file mode 100644
index 00000000000..bae47b3d2a3
--- /dev/null
+++ b/src/test/ui/issue-27340.stderr
@@ -0,0 +1,12 @@
+error[E0204]: the trait `Copy` may not be implemented for this type
+  --> $DIR/issue-27340.rs:12:10
+   |
+LL | #[derive(Copy, Clone)]
+   |          ^^^^
+LL | //~^ ERROR the trait `Copy` may not be implemented for this type
+LL | struct Bar(Foo);
+   |            --- this field does not implement `Copy`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0204`.
diff --git a/src/test/compile-fail/issue-27433.rs b/src/test/ui/issue-27433.rs
index 782b2057438..782b2057438 100644
--- a/src/test/compile-fail/issue-27433.rs
+++ b/src/test/ui/issue-27433.rs
diff --git a/src/test/ui/issue-27433.stderr b/src/test/ui/issue-27433.stderr
new file mode 100644
index 00000000000..0fc04b082e5
--- /dev/null
+++ b/src/test/ui/issue-27433.stderr
@@ -0,0 +1,11 @@
+error[E0434]: can't capture dynamic environment in a fn item
+  --> $DIR/issue-27433.rs:13:23
+   |
+LL |     const FOO : u32 = foo;
+   |                       ^^^
+   |
+   = help: use the `|| { ... }` closure form instead
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0434`.
diff --git a/src/test/ui/issue-27592.nll.stderr b/src/test/ui/issue-27592.nll.stderr
new file mode 100644
index 00000000000..0b55117cad2
--- /dev/null
+++ b/src/test/ui/issue-27592.nll.stderr
@@ -0,0 +1,19 @@
+error[E0597]: borrowed value does not live long enough
+  --> $DIR/issue-27592.rs:26:33
+   |
+LL |     write(|| format_args!("{}", String::from("Hello world")));
+   |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^- temporary value only lives until here
+   |                                 |
+   |                                 temporary value does not live long enough
+
+error[E0597]: borrowed value does not live long enough
+  --> $DIR/issue-27592.rs:26:27
+   |
+LL |     write(|| format_args!("{}", String::from("Hello world")));
+   |                           ^^^^                             - temporary value only lives until here
+   |                           |
+   |                           temporary value does not live long enough
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0597`.
diff --git a/src/test/compile-fail/issue-27592.rs b/src/test/ui/issue-27592.rs
index 731d4fb2bf6..731d4fb2bf6 100644
--- a/src/test/compile-fail/issue-27592.rs
+++ b/src/test/ui/issue-27592.rs
diff --git a/src/test/ui/issue-27592.stderr b/src/test/ui/issue-27592.stderr
new file mode 100644
index 00000000000..74b0541c01b
--- /dev/null
+++ b/src/test/ui/issue-27592.stderr
@@ -0,0 +1,21 @@
+error[E0597]: borrowed value does not live long enough
+  --> $DIR/issue-27592.rs:26:27
+   |
+LL |     write(|| format_args!("{}", String::from("Hello world")));
+   |                           ^^^^                             -- temporary value needs to live until here
+   |                           |                                |
+   |                           |                                temporary value dropped here while still borrowed
+   |                           temporary value does not live long enough
+
+error[E0597]: borrowed value does not live long enough
+  --> $DIR/issue-27592.rs:26:33
+   |
+LL |     write(|| format_args!("{}", String::from("Hello world")));
+   |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^-- temporary value needs to live until here
+   |                                 |                          |
+   |                                 |                          temporary value dropped here while still borrowed
+   |                                 temporary value does not live long enough
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0597`.
diff --git a/src/test/compile-fail/issue-27815.rs b/src/test/ui/issue-27815.rs
index d9840abf0ca..d9840abf0ca 100644
--- a/src/test/compile-fail/issue-27815.rs
+++ b/src/test/ui/issue-27815.rs
diff --git a/src/test/ui/issue-27815.stderr b/src/test/ui/issue-27815.stderr
new file mode 100644
index 00000000000..987feaee9eb
--- /dev/null
+++ b/src/test/ui/issue-27815.stderr
@@ -0,0 +1,27 @@
+error[E0574]: expected struct, variant or union type, found module `A`
+  --> $DIR/issue-27815.rs:14:13
+   |
+LL |     let u = A { x: 1 }; //~ ERROR expected struct, variant or union type, found module `A`
+   |             ^ not a struct, variant or union type
+
+error[E0574]: expected struct, variant or union type, found builtin type `u32`
+  --> $DIR/issue-27815.rs:15:13
+   |
+LL |     let v = u32 { x: 1 }; //~ ERROR expected struct, variant or union type, found builtin type `u32`
+   |             ^^^ not a struct, variant or union type
+
+error[E0574]: expected struct, variant or union type, found module `A`
+  --> $DIR/issue-27815.rs:17:9
+   |
+LL |         A { x: 1 } => {}
+   |         ^ not a struct, variant or union type
+
+error[E0574]: expected struct, variant or union type, found builtin type `u32`
+  --> $DIR/issue-27815.rs:19:9
+   |
+LL |         u32 { x: 1 } => {}
+   |         ^^^ not a struct, variant or union type
+
+error: aborting due to 4 previous errors
+
+For more information about this error, try `rustc --explain E0574`.
diff --git a/src/test/compile-fail/issue-27895.rs b/src/test/ui/issue-27895.rs
index 6063755c04f..6063755c04f 100644
--- a/src/test/compile-fail/issue-27895.rs
+++ b/src/test/ui/issue-27895.rs
diff --git a/src/test/ui/issue-27895.stderr b/src/test/ui/issue-27895.stderr
new file mode 100644
index 00000000000..395c806fbdb
--- /dev/null
+++ b/src/test/ui/issue-27895.stderr
@@ -0,0 +1,9 @@
+error[E0080]: runtime values cannot be referenced in patterns
+  --> $DIR/issue-27895.rs:16:13
+   |
+LL |         0..=index => println!("winner"),
+   |             ^^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0080`.
diff --git a/src/test/compile-fail/issue-28098.rs b/src/test/ui/issue-28098.rs
index 5dded2b1e16..5dded2b1e16 100644
--- a/src/test/compile-fail/issue-28098.rs
+++ b/src/test/ui/issue-28098.rs
diff --git a/src/test/ui/issue-28098.stderr b/src/test/ui/issue-28098.stderr
new file mode 100644
index 00000000000..3a6e1aea288
--- /dev/null
+++ b/src/test/ui/issue-28098.stderr
@@ -0,0 +1,57 @@
+error[E0277]: the trait bound `(): std::iter::Iterator` is not satisfied
+  --> $DIR/issue-28098.rs:12:13
+   |
+LL |     let _ = Iterator::next(&mut ());
+   |             ^^^^^^^^^^^^^^ `()` is not an iterator; maybe try calling `.iter()` or a similar method
+   |
+   = help: the trait `std::iter::Iterator` is not implemented for `()`
+   = note: required by `std::iter::Iterator::next`
+
+error[E0277]: the trait bound `bool: std::iter::Iterator` is not satisfied
+  --> $DIR/issue-28098.rs:15:14
+   |
+LL |     for _ in false {}
+   |              ^^^^^ `bool` is not an iterator; maybe try calling `.iter()` or a similar method
+   |
+   = help: the trait `std::iter::Iterator` is not implemented for `bool`
+   = note: required by `std::iter::IntoIterator::into_iter`
+
+error[E0277]: the trait bound `(): std::iter::Iterator` is not satisfied
+  --> $DIR/issue-28098.rs:18:13
+   |
+LL |     let _ = Iterator::next(&mut ());
+   |             ^^^^^^^^^^^^^^ `()` is not an iterator; maybe try calling `.iter()` or a similar method
+   |
+   = help: the trait `std::iter::Iterator` is not implemented for `()`
+   = note: required by `std::iter::Iterator::next`
+
+error[E0277]: the trait bound `(): std::iter::Iterator` is not satisfied
+  --> $DIR/issue-28098.rs:27:13
+   |
+LL |     let _ = Iterator::next(&mut ());
+   |             ^^^^^^^^^^^^^^ `()` is not an iterator; maybe try calling `.iter()` or a similar method
+   |
+   = help: the trait `std::iter::Iterator` is not implemented for `()`
+   = note: required by `std::iter::Iterator::next`
+
+error[E0277]: the trait bound `(): std::iter::Iterator` is not satisfied
+  --> $DIR/issue-28098.rs:30:13
+   |
+LL |     let _ = Iterator::next(&mut ());
+   |             ^^^^^^^^^^^^^^ `()` is not an iterator; maybe try calling `.iter()` or a similar method
+   |
+   = help: the trait `std::iter::Iterator` is not implemented for `()`
+   = note: required by `std::iter::Iterator::next`
+
+error[E0277]: the trait bound `bool: std::iter::Iterator` is not satisfied
+  --> $DIR/issue-28098.rs:33:14
+   |
+LL |     for _ in false {}
+   |              ^^^^^ `bool` is not an iterator; maybe try calling `.iter()` or a similar method
+   |
+   = help: the trait `std::iter::Iterator` is not implemented for `bool`
+   = note: required by `std::iter::IntoIterator::into_iter`
+
+error: aborting due to 6 previous errors
+
+For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/compile-fail/issue-28105.rs b/src/test/ui/issue-28105.rs
index 8e58d1aaf24..8e58d1aaf24 100644
--- a/src/test/compile-fail/issue-28105.rs
+++ b/src/test/ui/issue-28105.rs
diff --git a/src/test/ui/issue-28105.stderr b/src/test/ui/issue-28105.stderr
new file mode 100644
index 00000000000..eb05dbea2be
--- /dev/null
+++ b/src/test/ui/issue-28105.stderr
@@ -0,0 +1,15 @@
+error[E0268]: `continue` outside of loop
+  --> $DIR/issue-28105.rs:14:5
+   |
+LL |     continue //~ ERROR `continue` outside of loop
+   |     ^^^^^^^^ cannot break outside of a loop
+
+error[E0268]: `break` outside of loop
+  --> $DIR/issue-28105.rs:16:5
+   |
+LL |     break //~ ERROR `break` outside of loop
+   |     ^^^^^ cannot break outside of a loop
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0268`.
diff --git a/src/test/compile-fail/issue-28109.rs b/src/test/ui/issue-28109.rs
index 0d372d30015..0d372d30015 100644
--- a/src/test/compile-fail/issue-28109.rs
+++ b/src/test/ui/issue-28109.rs
diff --git a/src/test/ui/issue-28109.stderr b/src/test/ui/issue-28109.stderr
new file mode 100644
index 00000000000..902fe2390b9
--- /dev/null
+++ b/src/test/ui/issue-28109.stderr
@@ -0,0 +1,15 @@
+error[E0426]: use of undeclared label `'b`
+  --> $DIR/issue-28109.rs:16:9
+   |
+LL |         'b //~ ERROR use of undeclared label
+   |         ^^ undeclared label `'b`
+
+error[E0426]: use of undeclared label `'c`
+  --> $DIR/issue-28109.rs:19:9
+   |
+LL |         'c //~ ERROR use of undeclared label
+   |         ^^ undeclared label `'c`
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0426`.
diff --git a/src/test/compile-fail/issue-28113.rs b/src/test/ui/issue-28113.rs
index 7d2541966a4..7d2541966a4 100644
--- a/src/test/compile-fail/issue-28113.rs
+++ b/src/test/ui/issue-28113.rs
diff --git a/src/test/ui/issue-28113.stderr b/src/test/ui/issue-28113.stderr
new file mode 100644
index 00000000000..633257f1a4b
--- /dev/null
+++ b/src/test/ui/issue-28113.stderr
@@ -0,0 +1,9 @@
+error[E0015]: calls in constants are limited to constant functions, tuple structs and tuple variants
+  --> $DIR/issue-28113.rs:14:5
+   |
+LL |     || -> u8 { 5 }()
+   |     ^^^^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0015`.
diff --git a/src/test/compile-fail/issue-2823.rs b/src/test/ui/issue-2823.rs
index 631bcb7bd9e..631bcb7bd9e 100644
--- a/src/test/compile-fail/issue-2823.rs
+++ b/src/test/ui/issue-2823.rs
diff --git a/src/test/ui/issue-2823.stderr b/src/test/ui/issue-2823.stderr
new file mode 100644
index 00000000000..5a5cae7aab4
--- /dev/null
+++ b/src/test/ui/issue-2823.stderr
@@ -0,0 +1,16 @@
+error[E0599]: no method named `clone` found for type `C` in the current scope
+  --> $DIR/issue-2823.rs:23:16
+   |
+LL | struct C {
+   | -------- method `clone` not found for this
+...
+LL |     let _d = c.clone(); //~ ERROR no method named `clone` found
+   |                ^^^^^
+   |
+   = help: items from traits can only be used if the trait is implemented and in scope
+   = note: the following trait defines an item `clone`, perhaps you need to implement it:
+           candidate #1: `std::clone::Clone`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0599`.
diff --git a/src/test/compile-fail/issue-28324.rs b/src/test/ui/issue-28324.rs
index af73db2b4d2..af73db2b4d2 100644
--- a/src/test/compile-fail/issue-28324.rs
+++ b/src/test/ui/issue-28324.rs
diff --git a/src/test/ui/issue-28324.stderr b/src/test/ui/issue-28324.stderr
new file mode 100644
index 00000000000..c62d8bddf00
--- /dev/null
+++ b/src/test/ui/issue-28324.stderr
@@ -0,0 +1,9 @@
+error[E0080]: could not evaluate static initializer
+  --> $DIR/issue-28324.rs:17:23
+   |
+LL | pub static BAZ: u32 = *&error_message_count;
+   |                       ^^^^^^^^^^^^^^^^^^^^^ tried to read from foreign (extern) static
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0080`.
diff --git a/src/test/compile-fail/issue-28344.rs b/src/test/ui/issue-28344.rs
index d28c3146404..d28c3146404 100644
--- a/src/test/compile-fail/issue-28344.rs
+++ b/src/test/ui/issue-28344.rs
diff --git a/src/test/ui/issue-28344.stderr b/src/test/ui/issue-28344.stderr
new file mode 100644
index 00000000000..7ef2e906422
--- /dev/null
+++ b/src/test/ui/issue-28344.stderr
@@ -0,0 +1,32 @@
+error[E0191]: the value of the associated type `Output` (from the trait `std::ops::BitXor`) must be specified
+  --> $DIR/issue-28344.rs:14:17
+   |
+LL |     let x: u8 = BitXor::bitor(0 as u8, 0 as u8);
+   |                 ^^^^^^^^^^^^^ missing associated type `Output` value
+
+error[E0599]: no function or associated item named `bitor` found for type `dyn std::ops::BitXor<_>` in the current scope
+  --> $DIR/issue-28344.rs:14:17
+   |
+LL |     let x: u8 = BitXor::bitor(0 as u8, 0 as u8);
+   |                 ^^^^^^^^^^^^^ function or associated item not found in `dyn std::ops::BitXor<_>`
+   |
+   = help: did you mean `bitxor`?
+
+error[E0191]: the value of the associated type `Output` (from the trait `std::ops::BitXor`) must be specified
+  --> $DIR/issue-28344.rs:18:13
+   |
+LL |     let g = BitXor::bitor;
+   |             ^^^^^^^^^^^^^ missing associated type `Output` value
+
+error[E0599]: no function or associated item named `bitor` found for type `dyn std::ops::BitXor<_>` in the current scope
+  --> $DIR/issue-28344.rs:18:13
+   |
+LL |     let g = BitXor::bitor;
+   |             ^^^^^^^^^^^^^ function or associated item not found in `dyn std::ops::BitXor<_>`
+   |
+   = help: did you mean `bitxor`?
+
+error: aborting due to 4 previous errors
+
+Some errors occurred: E0191, E0599.
+For more information about an error, try `rustc --explain E0191`.
diff --git a/src/test/compile-fail/issue-28433.rs b/src/test/ui/issue-28433.rs
index 9253a490733..9253a490733 100644
--- a/src/test/compile-fail/issue-28433.rs
+++ b/src/test/ui/issue-28433.rs
diff --git a/src/test/ui/issue-28433.stderr b/src/test/ui/issue-28433.stderr
new file mode 100644
index 00000000000..bde01ef3746
--- /dev/null
+++ b/src/test/ui/issue-28433.stderr
@@ -0,0 +1,14 @@
+error: expected identifier, found keyword `pub`
+  --> $DIR/issue-28433.rs:14:5
+   |
+LL |     pub duck,
+   |     ^^^ expected identifier, found keyword
+
+error: expected one of `(`, `,`, `=`, `{`, or `}`, found `duck`
+  --> $DIR/issue-28433.rs:14:9
+   |
+LL |     pub duck,
+   |         ^^^^ expected one of `(`, `,`, `=`, `{`, or `}` here
+
+error: aborting due to 2 previous errors
+
diff --git a/src/test/compile-fail/issue-28472.rs b/src/test/ui/issue-28472.rs
index 837de8eddcf..837de8eddcf 100644
--- a/src/test/compile-fail/issue-28472.rs
+++ b/src/test/ui/issue-28472.rs
diff --git a/src/test/ui/issue-28472.stderr b/src/test/ui/issue-28472.stderr
new file mode 100644
index 00000000000..37c04a7a774
--- /dev/null
+++ b/src/test/ui/issue-28472.stderr
@@ -0,0 +1,27 @@
+error[E0428]: the name `foo` is defined multiple times
+  --> $DIR/issue-28472.rs:16:3
+   |
+LL |     fn foo();
+   |     --------- previous definition of the value `foo` here
+LL | 
+LL | /   pub //~ ERROR the name `foo` is defined multiple times
+LL | |   fn foo();
+   | |___________^ `foo` redefined here
+   |
+   = note: `foo` must be defined only once in the value namespace of this module
+
+error[E0428]: the name `foo` is defined multiple times
+  --> $DIR/issue-28472.rs:19:3
+   |
+LL |     fn foo();
+   |     --------- previous definition of the value `foo` here
+...
+LL | /   pub //~ ERROR the name `foo` is defined multiple times
+LL | |   static mut foo: u32;
+   | |______________________^ `foo` redefined here
+   |
+   = note: `foo` must be defined only once in the value namespace of this module
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0428`.
diff --git a/src/test/compile-fail/issue-2849.rs b/src/test/ui/issue-2849.rs
index 203b28bd5e4..203b28bd5e4 100644
--- a/src/test/compile-fail/issue-2849.rs
+++ b/src/test/ui/issue-2849.rs
diff --git a/src/test/ui/issue-2849.stderr b/src/test/ui/issue-2849.stderr
new file mode 100644
index 00000000000..ffd15a58880
--- /dev/null
+++ b/src/test/ui/issue-2849.stderr
@@ -0,0 +1,11 @@
+error[E0408]: variable `i` is not bound in all patterns
+  --> $DIR/issue-2849.rs:15:7
+   |
+LL |       foo::alpha | foo::beta(i) => {}
+   |       ^^^^^^^^^^             - variable not in all patterns
+   |       |
+   |       pattern doesn't bind `i`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0408`.
diff --git a/src/test/compile-fail/issue-28576.rs b/src/test/ui/issue-28576.rs
index bd7186708a6..bd7186708a6 100644
--- a/src/test/compile-fail/issue-28576.rs
+++ b/src/test/ui/issue-28576.rs
diff --git a/src/test/ui/issue-28576.stderr b/src/test/ui/issue-28576.stderr
new file mode 100644
index 00000000000..80f0f1ba1b1
--- /dev/null
+++ b/src/test/ui/issue-28576.stderr
@@ -0,0 +1,12 @@
+error[E0038]: the trait `Bar` cannot be made into an object
+  --> $DIR/issue-28576.rs:17:12
+   |
+LL | /            Bar //~ ERROR the trait `Bar` cannot be made into an object
+LL | |               <Assoc=()>
+   | |________________________^ the trait `Bar` cannot be made into an object
+   |
+   = note: the trait cannot use `Self` as a type parameter in the supertraits or where-clauses
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0038`.
diff --git a/src/test/compile-fail/issue-28586.rs b/src/test/ui/issue-28586.rs
index b8571d2e85e..b8571d2e85e 100644
--- a/src/test/compile-fail/issue-28586.rs
+++ b/src/test/ui/issue-28586.rs
diff --git a/src/test/ui/issue-28586.stderr b/src/test/ui/issue-28586.stderr
new file mode 100644
index 00000000000..9820d64909e
--- /dev/null
+++ b/src/test/ui/issue-28586.stderr
@@ -0,0 +1,9 @@
+error[E0599]: no associated item named `BYTES` found for type `usize` in the current scope
+  --> $DIR/issue-28586.rs:14:19
+   |
+LL | impl Foo for [u8; usize::BYTES] {}
+   |                   ^^^^^^^^^^^^ associated item not found in `usize`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0599`.
diff --git a/src/test/compile-fail/issue-28625.rs b/src/test/ui/issue-28625.rs
index dc9155ed66c..dc9155ed66c 100644
--- a/src/test/compile-fail/issue-28625.rs
+++ b/src/test/ui/issue-28625.rs
diff --git a/src/test/ui/issue-28625.stderr b/src/test/ui/issue-28625.stderr
new file mode 100644
index 00000000000..90b50f193fb
--- /dev/null
+++ b/src/test/ui/issue-28625.stderr
@@ -0,0 +1,12 @@
+error[E0512]: transmute called with types of different sizes
+  --> $DIR/issue-28625.rs:20:14
+   |
+LL |     unsafe { std::mem::transmute(a) } //~ ERROR transmute called with types of different sizes
+   |              ^^^^^^^^^^^^^^^^^^^
+   |
+   = note: source type: &ArrayPeano<T> (64 bits)
+   = note: target type: &[T] (128 bits)
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0512`.
diff --git a/src/test/compile-fail/issue-28992-empty.rs b/src/test/ui/issue-28992-empty.rs
index 536784508b7..536784508b7 100644
--- a/src/test/compile-fail/issue-28992-empty.rs
+++ b/src/test/ui/issue-28992-empty.rs
diff --git a/src/test/ui/issue-28992-empty.stderr b/src/test/ui/issue-28992-empty.stderr
new file mode 100644
index 00000000000..9b5e42f8eb9
--- /dev/null
+++ b/src/test/ui/issue-28992-empty.stderr
@@ -0,0 +1,16 @@
+error[E0532]: expected tuple struct/variant, found constant `C1`
+  --> $DIR/issue-28992-empty.rs:23:12
+   |
+LL |     if let C1(..) = 0 {} //~ ERROR expected tuple struct/variant, found constant `C1`
+   |            ^^ not a tuple struct/variant
+
+error[E0164]: expected tuple struct/variant, found associated constant `<S>::C2`
+  --> $DIR/issue-28992-empty.rs:24:12
+   |
+LL |     if let S::C2(..) = 0 {}
+   |            ^^^^^^^^^ not a tuple variant or struct
+
+error: aborting due to 2 previous errors
+
+Some errors occurred: E0164, E0532.
+For more information about an error, try `rustc --explain E0164`.
diff --git a/src/test/compile-fail/issue-29084.rs b/src/test/ui/issue-29084.rs
index 6cb6bbf1893..6cb6bbf1893 100644
--- a/src/test/compile-fail/issue-29084.rs
+++ b/src/test/ui/issue-29084.rs
diff --git a/src/test/ui/issue-29084.stderr b/src/test/ui/issue-29084.stderr
new file mode 100644
index 00000000000..3f1f18dabd0
--- /dev/null
+++ b/src/test/ui/issue-29084.stderr
@@ -0,0 +1,15 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-29084.rs:14:13
+   |
+LL |         bar(&mut $d);
+   |             ^^^^^^^ expected u8, found &mut u8
+...
+LL |     foo!(0u8);
+   |     ---------- in this macro invocation
+   |
+   = note: expected type `u8`
+              found type `&mut u8`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-29147.rs b/src/test/ui/issue-29147.rs
index 0ecaa409412..0ecaa409412 100644
--- a/src/test/compile-fail/issue-29147.rs
+++ b/src/test/ui/issue-29147.rs
diff --git a/src/test/ui/issue-29147.stderr b/src/test/ui/issue-29147.stderr
new file mode 100644
index 00000000000..d0ad0c99aa0
--- /dev/null
+++ b/src/test/ui/issue-29147.stderr
@@ -0,0 +1,15 @@
+error[E0283]: type annotations required: cannot resolve `S5<_>: Foo`
+  --> $DIR/issue-29147.rs:31:13
+   |
+LL |     let _ = <S5<_>>::xxx; //~ ERROR cannot resolve `S5<_>: Foo`
+   |             ^^^^^^^^^^^^
+   |
+note: required by `Foo::xxx`
+  --> $DIR/issue-29147.rs:20:13
+   |
+LL | trait Foo { fn xxx(&self); }
+   |             ^^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0283`.
diff --git a/src/test/compile-fail/issue-29161.rs b/src/test/ui/issue-29161.rs
index 97ba222fe45..97ba222fe45 100644
--- a/src/test/compile-fail/issue-29161.rs
+++ b/src/test/ui/issue-29161.rs
diff --git a/src/test/ui/issue-29161.stderr b/src/test/ui/issue-29161.stderr
new file mode 100644
index 00000000000..fb6a41d2eca
--- /dev/null
+++ b/src/test/ui/issue-29161.stderr
@@ -0,0 +1,16 @@
+error[E0449]: unnecessary visibility qualifier
+  --> $DIR/issue-29161.rs:15:9
+   |
+LL |         pub fn default() -> A { //~ ERROR unnecessary visibility qualifier
+   |         ^^^ `pub` not permitted here because it's implied
+
+error[E0603]: struct `A` is private
+  --> $DIR/issue-29161.rs:23:5
+   |
+LL |     a::A::default();
+   |     ^^^^^^^^^^^^^
+
+error: aborting due to 2 previous errors
+
+Some errors occurred: E0449, E0603.
+For more information about an error, try `rustc --explain E0449`.
diff --git a/src/test/compile-fail/issue-29184.rs b/src/test/ui/issue-29184.rs
index 98fe12c1b9d..98fe12c1b9d 100644
--- a/src/test/compile-fail/issue-29184.rs
+++ b/src/test/ui/issue-29184.rs
diff --git a/src/test/ui/issue-29184.stderr b/src/test/ui/issue-29184.stderr
new file mode 100644
index 00000000000..72d7bb8d5f6
--- /dev/null
+++ b/src/test/ui/issue-29184.stderr
@@ -0,0 +1,9 @@
+error[E0516]: `typeof` is a reserved keyword but unimplemented
+  --> $DIR/issue-29184.rs:12:12
+   |
+LL |     let x: typeof(92) = 92; //~ ERROR `typeof` is a reserved keyword
+   |            ^^^^^^^^^^ reserved keyword
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0516`.
diff --git a/src/test/compile-fail/issue-2937.rs b/src/test/ui/issue-2937.rs
index 0d684ec5ae1..0d684ec5ae1 100644
--- a/src/test/compile-fail/issue-2937.rs
+++ b/src/test/ui/issue-2937.rs
diff --git a/src/test/ui/issue-2937.stderr b/src/test/ui/issue-2937.stderr
new file mode 100644
index 00000000000..8c0125c7522
--- /dev/null
+++ b/src/test/ui/issue-2937.stderr
@@ -0,0 +1,9 @@
+error[E0432]: unresolved import `m::f`
+  --> $DIR/issue-2937.rs:11:5
+   |
+LL | use m::f as x; //~ ERROR unresolved import `m::f` [E0432]
+   |     ^^^^^^^^^ no `f` in `m`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0432`.
diff --git a/src/test/compile-fail/issue-2951.rs b/src/test/ui/issue-2951.rs
index 11ff7ab2476..11ff7ab2476 100644
--- a/src/test/compile-fail/issue-2951.rs
+++ b/src/test/ui/issue-2951.rs
diff --git a/src/test/ui/issue-2951.stderr b/src/test/ui/issue-2951.stderr
new file mode 100644
index 00000000000..8c166807c46
--- /dev/null
+++ b/src/test/ui/issue-2951.stderr
@@ -0,0 +1,12 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-2951.rs:13:10
+   |
+LL |     xx = y;
+   |          ^ expected type parameter, found a different type parameter
+   |
+   = note: expected type `T`
+              found type `U`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-29857.rs b/src/test/ui/issue-29857.rs
index 661579f52b6..661579f52b6 100644
--- a/src/test/compile-fail/issue-29857.rs
+++ b/src/test/ui/issue-29857.rs
diff --git a/src/test/ui/issue-29857.stderr b/src/test/ui/issue-29857.stderr
new file mode 100644
index 00000000000..d5ba942b19f
--- /dev/null
+++ b/src/test/ui/issue-29857.stderr
@@ -0,0 +1,8 @@
+error: compilation successful
+  --> $DIR/issue-29857.rs:31:1
+   |
+LL | fn main() {} //~ ERROR compilation successful
+   | ^^^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-29861.rs b/src/test/ui/issue-29861.rs
index 79514ad376b..79514ad376b 100644
--- a/src/test/compile-fail/issue-29861.rs
+++ b/src/test/ui/issue-29861.rs
diff --git a/src/test/ui/issue-29861.stderr b/src/test/ui/issue-29861.stderr
new file mode 100644
index 00000000000..27453337b10
--- /dev/null
+++ b/src/test/ui/issue-29861.stderr
@@ -0,0 +1,9 @@
+error[E0207]: the lifetime parameter `'a` is not constrained by the impl trait, self type, or predicates
+  --> $DIR/issue-29861.rs:21:6
+   |
+LL | impl<'a, T: 'a> MakeRef2 for T {
+   |      ^^ unconstrained lifetime parameter
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0207`.
diff --git a/src/test/compile-fail/issue-2995.rs b/src/test/ui/issue-2995.rs
index d735e184d5c..d735e184d5c 100644
--- a/src/test/compile-fail/issue-2995.rs
+++ b/src/test/ui/issue-2995.rs
diff --git a/src/test/ui/issue-2995.stderr b/src/test/ui/issue-2995.stderr
new file mode 100644
index 00000000000..b52bbbead91
--- /dev/null
+++ b/src/test/ui/issue-2995.stderr
@@ -0,0 +1,11 @@
+error[E0605]: non-primitive cast: `*const isize` as `&isize`
+  --> $DIR/issue-2995.rs:12:22
+   |
+LL |     let _q: &isize = p as &isize; //~ ERROR non-primitive cast
+   |                      ^^^^^^^^^^^
+   |
+   = note: an `as` expression can only be used to convert between primitive types. Consider using the `From` trait
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0605`.
diff --git a/src/test/compile-fail/issue-30079.rs b/src/test/ui/issue-30079.rs
index 04ae8f6d255..04ae8f6d255 100644
--- a/src/test/compile-fail/issue-30079.rs
+++ b/src/test/ui/issue-30079.rs
diff --git a/src/test/ui/issue-30079.stderr b/src/test/ui/issue-30079.stderr
new file mode 100644
index 00000000000..dadaf3db24e
--- /dev/null
+++ b/src/test/ui/issue-30079.stderr
@@ -0,0 +1,31 @@
+warning: private type `m1::Priv` in public interface (error E0446)
+  --> $DIR/issue-30079.rs:16:9
+   |
+LL |         pub fn f(_: Priv) {} //~ WARN private type `m1::Priv` in public interface
+   |         ^^^^^^^^^^^^^^^^^^^^
+   |
+   = note: #[warn(private_in_public)] on by default
+   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
+   = note: for more information, see issue #34537 <https://github.com/rust-lang/rust/issues/34537>
+
+error[E0446]: private type `m2::Priv` in public interface
+  --> $DIR/issue-30079.rs:28:9
+   |
+LL |     struct Priv;
+   |     - `m2::Priv` declared as private
+LL |     impl ::std::ops::Deref for ::SemiPriv {
+LL |         type Target = Priv; //~ ERROR private type `m2::Priv` in public interface
+   |         ^^^^^^^^^^^^^^^^^^^ can't leak private type
+
+error[E0446]: private type `m3::Priv` in public interface
+  --> $DIR/issue-30079.rs:45:9
+   |
+LL |     struct Priv;
+   |     - `m3::Priv` declared as private
+LL |     impl ::SemiPrivTrait for () {
+LL |         type Assoc = Priv; //~ ERROR private type `m3::Priv` in public interface
+   |         ^^^^^^^^^^^^^^^^^^ can't leak private type
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0446`.
diff --git a/src/test/compile-fail/issue-3008-3.rs b/src/test/ui/issue-3008-3.rs
index 66bfab003e9..66bfab003e9 100644
--- a/src/test/compile-fail/issue-3008-3.rs
+++ b/src/test/ui/issue-3008-3.rs
diff --git a/src/test/ui/issue-3008-3.stderr b/src/test/ui/issue-3008-3.stderr
new file mode 100644
index 00000000000..22c0871fb0c
--- /dev/null
+++ b/src/test/ui/issue-3008-3.stderr
@@ -0,0 +1,13 @@
+error[E0072]: recursive type `E2` has infinite size
+  --> $DIR/issue-3008-3.rs:14:1
+   |
+LL | enum E2<T> { V2(E2<E1>, marker::PhantomData<T>), }
+   | ^^^^^^^^^^      ------ recursive without indirection
+   | |
+   | recursive type has infinite size
+   |
+   = help: insert indirection (e.g., a `Box`, `Rc`, or `&`) at some point to make `E2` representable
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0072`.
diff --git a/src/test/compile-fail/issue-3021-b.rs b/src/test/ui/issue-3021-b.rs
index 2b0a24cfdb3..2b0a24cfdb3 100644
--- a/src/test/compile-fail/issue-3021-b.rs
+++ b/src/test/ui/issue-3021-b.rs
diff --git a/src/test/ui/issue-3021-b.stderr b/src/test/ui/issue-3021-b.stderr
new file mode 100644
index 00000000000..dfc80e5ca52
--- /dev/null
+++ b/src/test/ui/issue-3021-b.stderr
@@ -0,0 +1,11 @@
+error[E0434]: can't capture dynamic environment in a fn item
+  --> $DIR/issue-3021-b.rs:19:22
+   |
+LL |            self.v0 = k0 ^ 0x736f6d6570736575; //~ ERROR can't capture dynamic environment
+   |                      ^^
+   |
+   = help: use the `|| { ... }` closure form instead
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0434`.
diff --git a/src/test/compile-fail/issue-3021-c.rs b/src/test/ui/issue-3021-c.rs
index 55975cc8e86..55975cc8e86 100644
--- a/src/test/compile-fail/issue-3021-c.rs
+++ b/src/test/ui/issue-3021-c.rs
diff --git a/src/test/ui/issue-3021-c.stderr b/src/test/ui/issue-3021-c.stderr
new file mode 100644
index 00000000000..4a250e76af3
--- /dev/null
+++ b/src/test/ui/issue-3021-c.stderr
@@ -0,0 +1,25 @@
+error[E0401]: can't use type parameters from outer function
+  --> $DIR/issue-3021-c.rs:14:24
+   |
+LL | fn siphash<T>() {
+   |            - type variable from outer function
+...
+LL |         fn g(&self, x: T) -> T;  //~ ERROR can't use type parameters from outer function
+   |            -           ^ use of type variable from outer function
+   |            |
+   |            help: try using a local type parameter instead: `g<T>`
+
+error[E0401]: can't use type parameters from outer function
+  --> $DIR/issue-3021-c.rs:14:30
+   |
+LL | fn siphash<T>() {
+   |            - type variable from outer function
+...
+LL |         fn g(&self, x: T) -> T;  //~ ERROR can't use type parameters from outer function
+   |            -                 ^ use of type variable from outer function
+   |            |
+   |            help: try using a local type parameter instead: `g<T>`
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0401`.
diff --git a/src/test/compile-fail/issue-3021-d.rs b/src/test/ui/issue-3021-d.rs
index c23e12e713a..c23e12e713a 100644
--- a/src/test/compile-fail/issue-3021-d.rs
+++ b/src/test/ui/issue-3021-d.rs
diff --git a/src/test/ui/issue-3021-d.stderr b/src/test/ui/issue-3021-d.stderr
new file mode 100644
index 00000000000..ab5ad94a031
--- /dev/null
+++ b/src/test/ui/issue-3021-d.stderr
@@ -0,0 +1,19 @@
+error[E0434]: can't capture dynamic environment in a fn item
+  --> $DIR/issue-3021-d.rs:31:23
+   |
+LL |             self.v0 = k0 ^ 0x736f6d6570736575; //~ ERROR can't capture dynamic environment
+   |                       ^^
+   |
+   = help: use the `|| { ... }` closure form instead
+
+error[E0434]: can't capture dynamic environment in a fn item
+  --> $DIR/issue-3021-d.rs:32:23
+   |
+LL |             self.v1 = k1 ^ 0x646f72616e646f6d; //~ ERROR can't capture dynamic environment
+   |                       ^^
+   |
+   = help: use the `|| { ... }` closure form instead
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0434`.
diff --git a/src/test/compile-fail/issue-3021.rs b/src/test/ui/issue-3021.rs
index f93a333d2ae..f93a333d2ae 100644
--- a/src/test/compile-fail/issue-3021.rs
+++ b/src/test/ui/issue-3021.rs
diff --git a/src/test/ui/issue-3021.stderr b/src/test/ui/issue-3021.stderr
new file mode 100644
index 00000000000..312b9f3b864
--- /dev/null
+++ b/src/test/ui/issue-3021.stderr
@@ -0,0 +1,11 @@
+error[E0434]: can't capture dynamic environment in a fn item
+  --> $DIR/issue-3021.rs:22:22
+   |
+LL |            self.v0 = k0 ^ 0x736f6d6570736575; //~ ERROR can't capture dynamic environment
+   |                      ^^
+   |
+   = help: use the `|| { ... }` closure form instead
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0434`.
diff --git a/src/test/compile-fail/issue-30225.rs b/src/test/ui/issue-30225.rs
index 7acbbfb8826..7acbbfb8826 100644
--- a/src/test/compile-fail/issue-30225.rs
+++ b/src/test/ui/issue-30225.rs
diff --git a/src/test/ui/issue-30225.stderr b/src/test/ui/issue-30225.stderr
new file mode 100644
index 00000000000..b3bbf233257
--- /dev/null
+++ b/src/test/ui/issue-30225.stderr
@@ -0,0 +1,12 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-30225.rs:41:9
+   |
+LL |     u = v; // mark $0 and $1 in a subtype relationship
+   |         ^ expected struct `A`, found struct `B`
+   |
+   = note: expected type `A`
+              found type `B`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-30236.rs b/src/test/ui/issue-30236.rs
index 45a5cd09337..45a5cd09337 100644
--- a/src/test/compile-fail/issue-30236.rs
+++ b/src/test/ui/issue-30236.rs
diff --git a/src/test/ui/issue-30236.stderr b/src/test/ui/issue-30236.stderr
new file mode 100644
index 00000000000..3a9f075d480
--- /dev/null
+++ b/src/test/ui/issue-30236.stderr
@@ -0,0 +1,9 @@
+error[E0091]: type parameter `Unused` is unused
+  --> $DIR/issue-30236.rs:12:5
+   |
+LL |     Unused //~ ERROR type parameter `Unused` is unused
+   |     ^^^^^^ unused type parameter
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0091`.
diff --git a/src/test/compile-fail/issue-30240-b.rs b/src/test/ui/issue-30240-b.rs
index cf6935b9ba6..cf6935b9ba6 100644
--- a/src/test/compile-fail/issue-30240-b.rs
+++ b/src/test/ui/issue-30240-b.rs
diff --git a/src/test/ui/issue-30240-b.stderr b/src/test/ui/issue-30240-b.stderr
new file mode 100644
index 00000000000..535d1a92ed9
--- /dev/null
+++ b/src/test/ui/issue-30240-b.stderr
@@ -0,0 +1,14 @@
+error: unreachable pattern
+  --> $DIR/issue-30240-b.rs:22:9
+   |
+LL |         "hello" => {} //~ ERROR unreachable pattern
+   |         ^^^^^^^
+   |
+note: lint level defined here
+  --> $DIR/issue-30240-b.rs:11:9
+   |
+LL | #![deny(unreachable_patterns)]
+   |         ^^^^^^^^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-30240.rs b/src/test/ui/issue-30240.rs
index 60fb307d4e1..60fb307d4e1 100644
--- a/src/test/compile-fail/issue-30240.rs
+++ b/src/test/ui/issue-30240.rs
diff --git a/src/test/ui/issue-30240.stderr b/src/test/ui/issue-30240.stderr
new file mode 100644
index 00000000000..9acb53ff911
--- /dev/null
+++ b/src/test/ui/issue-30240.stderr
@@ -0,0 +1,15 @@
+error[E0004]: non-exhaustive patterns: `&_` not covered
+  --> $DIR/issue-30240.rs:12:11
+   |
+LL |     match "world" { //~ ERROR non-exhaustive patterns: `&_`
+   |           ^^^^^^^ pattern `&_` not covered
+
+error[E0004]: non-exhaustive patterns: `&_` not covered
+  --> $DIR/issue-30240.rs:16:11
+   |
+LL |     match "world" { //~ ERROR non-exhaustive patterns: `&_`
+   |           ^^^^^^^ pattern `&_` not covered
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0004`.
diff --git a/src/test/ui/issue-30355.nll.stderr b/src/test/ui/issue-30355.nll.stderr
new file mode 100644
index 00000000000..e565ad59116
--- /dev/null
+++ b/src/test/ui/issue-30355.nll.stderr
@@ -0,0 +1,22 @@
+error[E0508]: cannot move out of type `[u8]`, a non-copy slice
+  --> $DIR/issue-30355.rs:15:8
+   |
+LL |     &X(*Y)
+   |        ^^ cannot move out of here
+
+error[E0161]: cannot move a value of type X: the size of X cannot be statically determined
+  --> $DIR/issue-30355.rs:15:6
+   |
+LL |     &X(*Y)
+   |      ^^^^^
+
+error[E0161]: cannot move a value of type [u8]: the size of [u8] cannot be statically determined
+  --> $DIR/issue-30355.rs:15:8
+   |
+LL |     &X(*Y)
+   |        ^^
+
+error: aborting due to 3 previous errors
+
+Some errors occurred: E0161, E0508.
+For more information about an error, try `rustc --explain E0161`.
diff --git a/src/test/compile-fail/issue-30355.rs b/src/test/ui/issue-30355.rs
index ee19d040318..ee19d040318 100644
--- a/src/test/compile-fail/issue-30355.rs
+++ b/src/test/ui/issue-30355.rs
diff --git a/src/test/ui/issue-30355.stderr b/src/test/ui/issue-30355.stderr
new file mode 100644
index 00000000000..7e843688035
--- /dev/null
+++ b/src/test/ui/issue-30355.stderr
@@ -0,0 +1,22 @@
+error[E0161]: cannot move a value of type X: the size of X cannot be statically determined
+  --> $DIR/issue-30355.rs:15:6
+   |
+LL |     &X(*Y)
+   |      ^^^^^
+
+error[E0161]: cannot move a value of type [u8]: the size of [u8] cannot be statically determined
+  --> $DIR/issue-30355.rs:15:8
+   |
+LL |     &X(*Y)
+   |        ^^
+
+error[E0507]: cannot move out of borrowed content
+  --> $DIR/issue-30355.rs:15:8
+   |
+LL |     &X(*Y)
+   |        ^^ cannot move out of borrowed content
+
+error: aborting due to 3 previous errors
+
+Some errors occurred: E0161, E0507.
+For more information about an error, try `rustc --explain E0161`.
diff --git a/src/test/compile-fail/issue-3038.rs b/src/test/ui/issue-3038.rs
index 1eec62df788..1eec62df788 100644
--- a/src/test/compile-fail/issue-3038.rs
+++ b/src/test/ui/issue-3038.rs
diff --git a/src/test/ui/issue-3038.stderr b/src/test/ui/issue-3038.stderr
new file mode 100644
index 00000000000..17ad9936149
--- /dev/null
+++ b/src/test/ui/issue-3038.stderr
@@ -0,0 +1,21 @@
+error[E0416]: identifier `x` is bound more than once in the same pattern
+  --> $DIR/issue-3038.rs:22:15
+   |
+LL |       f::g(x, x) => { println!("{}", x + x); }
+   |               ^ used in a pattern more than once
+
+error[E0416]: identifier `x` is bound more than once in the same pattern
+  --> $DIR/issue-3038.rs:27:32
+   |
+LL |       h::i(j::l(x, _), k::m(_, x))
+   |                                ^ used in a pattern more than once
+
+error[E0416]: identifier `x` is bound more than once in the same pattern
+  --> $DIR/issue-3038.rs:33:13
+   |
+LL |         (x, x) => { x } //~ ERROR identifier `x` is bound more than once in the same pattern
+   |             ^ used in a pattern more than once
+
+error: aborting due to 3 previous errors
+
+For more information about this error, try `rustc --explain E0416`.
diff --git a/src/test/ui/issue-30438-a.nll.stderr b/src/test/ui/issue-30438-a.nll.stderr
new file mode 100644
index 00000000000..2d27cd55e01
--- /dev/null
+++ b/src/test/ui/issue-30438-a.nll.stderr
@@ -0,0 +1,20 @@
+error[E0597]: borrowed value does not live long enough
+  --> $DIR/issue-30438-a.rs:22:17
+   |
+LL |         return &Test { s: &self.s};
+   |                 ^^^^^^^^^^^^^^^^^^- temporary value only lives until here
+   |                 |
+   |                 temporary value does not live long enough
+   |
+note: borrowed value must be valid for the anonymous lifetime #1 defined on the method body at 21:5...
+  --> $DIR/issue-30438-a.rs:21:5
+   |
+LL | /     fn index(&self, _: usize) -> &Self::Output {
+LL | |         return &Test { s: &self.s};
+LL | |         //~^ ERROR: borrowed value does not live long enough
+LL | |     }
+   | |_____^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0597`.
diff --git a/src/test/compile-fail/issue-30438-a.rs b/src/test/ui/issue-30438-a.rs
index 441815de81d..441815de81d 100644
--- a/src/test/compile-fail/issue-30438-a.rs
+++ b/src/test/ui/issue-30438-a.rs
diff --git a/src/test/ui/issue-30438-a.stderr b/src/test/ui/issue-30438-a.stderr
new file mode 100644
index 00000000000..5f4a51a927a
--- /dev/null
+++ b/src/test/ui/issue-30438-a.stderr
@@ -0,0 +1,21 @@
+error[E0597]: borrowed value does not live long enough
+  --> $DIR/issue-30438-a.rs:22:17
+   |
+LL |         return &Test { s: &self.s};
+   |                 ^^^^^^^^^^^^^^^^^^- temporary value only lives until here
+   |                 |
+   |                 temporary value does not live long enough
+   |
+note: borrowed value must be valid for the anonymous lifetime #1 defined on the method body at 21:5...
+  --> $DIR/issue-30438-a.rs:21:5
+   |
+LL | /     fn index(&self, _: usize) -> &Self::Output {
+LL | |         return &Test { s: &self.s};
+LL | |         //~^ ERROR: borrowed value does not live long enough
+LL | |     }
+   | |_____^
+   = note: consider using a `let` binding to increase its lifetime
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0597`.
diff --git a/src/test/compile-fail/issue-30438-b.rs b/src/test/ui/issue-30438-b.rs
index 981b196c4ae..981b196c4ae 100644
--- a/src/test/compile-fail/issue-30438-b.rs
+++ b/src/test/ui/issue-30438-b.rs
diff --git a/src/test/ui/issue-30438-b.stderr b/src/test/ui/issue-30438-b.stderr
new file mode 100644
index 00000000000..651ff9f2ae1
--- /dev/null
+++ b/src/test/ui/issue-30438-b.stderr
@@ -0,0 +1,21 @@
+error[E0597]: borrowed value does not live long enough
+  --> $DIR/issue-30438-b.rs:23:10
+   |
+LL |         &Test { s: &self.s}
+   |          ^^^^^^^^^^^^^^^^^^ temporary value does not live long enough
+LL |         //~^ ERROR: borrowed value does not live long enough
+LL |     }
+   |     - temporary value only lives until here
+   |
+note: borrowed value must be valid for the anonymous lifetime #1 defined on the method body at 22:5...
+  --> $DIR/issue-30438-b.rs:22:5
+   |
+LL | /     fn index(&self, _: usize) -> &Self::Output {
+LL | |         &Test { s: &self.s}
+LL | |         //~^ ERROR: borrowed value does not live long enough
+LL | |     }
+   | |_____^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0597`.
diff --git a/src/test/ui/issue-30438-c.nll.stderr b/src/test/ui/issue-30438-c.nll.stderr
new file mode 100644
index 00000000000..0bfac131e22
--- /dev/null
+++ b/src/test/ui/issue-30438-c.nll.stderr
@@ -0,0 +1,18 @@
+error[E0597]: `x` does not live long enough
+  --> $DIR/issue-30438-c.rs:19:5
+   |
+LL |     &x
+   |     ^^ borrowed value does not live long enough
+LL |     //~^ ERROR: `x` does not live long enough
+LL | }
+   | - borrowed value only lives until here
+   |
+note: borrowed value must be valid for the lifetime 'y as defined on the function body at 17:10...
+  --> $DIR/issue-30438-c.rs:17:10
+   |
+LL | fn silly<'y, 'z>(_s: &'y Test<'z>) -> &'y <Test<'z> as Trait>::Out where 'z: 'static {
+   |          ^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0597`.
diff --git a/src/test/compile-fail/issue-30438-c.rs b/src/test/ui/issue-30438-c.rs
index 2b4d0dc339b..2b4d0dc339b 100644
--- a/src/test/compile-fail/issue-30438-c.rs
+++ b/src/test/ui/issue-30438-c.rs
diff --git a/src/test/ui/issue-30438-c.stderr b/src/test/ui/issue-30438-c.stderr
new file mode 100644
index 00000000000..dc6e1c52be1
--- /dev/null
+++ b/src/test/ui/issue-30438-c.stderr
@@ -0,0 +1,18 @@
+error[E0597]: `x` does not live long enough
+  --> $DIR/issue-30438-c.rs:19:6
+   |
+LL |     &x
+   |      ^ borrowed value does not live long enough
+LL |     //~^ ERROR: `x` does not live long enough
+LL | }
+   | - borrowed value only lives until here
+   |
+note: borrowed value must be valid for the lifetime 'y as defined on the function body at 17:10...
+  --> $DIR/issue-30438-c.rs:17:10
+   |
+LL | fn silly<'y, 'z>(_s: &'y Test<'z>) -> &'y <Test<'z> as Trait>::Out where 'z: 'static {
+   |          ^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0597`.
diff --git a/src/test/compile-fail/issue-30560.rs b/src/test/ui/issue-30560.rs
index 0b1afd75ca9..0b1afd75ca9 100644
--- a/src/test/compile-fail/issue-30560.rs
+++ b/src/test/ui/issue-30560.rs
diff --git a/src/test/ui/issue-30560.stderr b/src/test/ui/issue-30560.stderr
new file mode 100644
index 00000000000..cb38c0dabe0
--- /dev/null
+++ b/src/test/ui/issue-30560.stderr
@@ -0,0 +1,21 @@
+error: items in traits are not importable.
+  --> $DIR/issue-30560.rs:20:5
+   |
+LL | use T::*; //~ ERROR items in traits are not importable
+   |     ^^^^
+
+error[E0432]: unresolved import `Alias`
+  --> $DIR/issue-30560.rs:12:5
+   |
+LL | use Alias::*;
+   |     ^^^^^ Not a module `Alias`
+
+error[E0432]: unresolved import `std::io::Result`
+  --> $DIR/issue-30560.rs:15:14
+   |
+LL | use std::io::Result::*;
+   |              ^^^^^^ Not a module `Result`
+
+error: aborting due to 3 previous errors
+
+For more information about this error, try `rustc --explain E0432`.
diff --git a/src/test/compile-fail/issue-30589.rs b/src/test/ui/issue-30589.rs
index 61721fe58b3..61721fe58b3 100644
--- a/src/test/compile-fail/issue-30589.rs
+++ b/src/test/ui/issue-30589.rs
diff --git a/src/test/ui/issue-30589.stderr b/src/test/ui/issue-30589.stderr
new file mode 100644
index 00000000000..8174af83230
--- /dev/null
+++ b/src/test/ui/issue-30589.stderr
@@ -0,0 +1,9 @@
+error[E0412]: cannot find type `DecoderError` in this scope
+  --> $DIR/issue-30589.rs:13:23
+   |
+LL | impl fmt::Display for DecoderError { //~ ERROR cannot find type `DecoderError` in this scope
+   |                       ^^^^^^^^^^^^ not found in this scope
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0412`.
diff --git a/src/test/compile-fail/issue-3080.rs b/src/test/ui/issue-3080.rs
index fb16dad3960..fb16dad3960 100644
--- a/src/test/compile-fail/issue-3080.rs
+++ b/src/test/ui/issue-3080.rs
diff --git a/src/test/ui/issue-3080.stderr b/src/test/ui/issue-3080.stderr
new file mode 100644
index 00000000000..3a966e3f315
--- /dev/null
+++ b/src/test/ui/issue-3080.stderr
@@ -0,0 +1,11 @@
+error[E0133]: call to unsafe function is unsafe and requires unsafe function or block
+  --> $DIR/issue-3080.rs:17:5
+   |
+LL |     x(()).with(); //~ ERROR requires unsafe function or block
+   |     ^^^^^^^^^^^^ call to unsafe function
+   |
+   = note: consult the function's documentation for information on how to avoid undefined behavior
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0133`.
diff --git a/src/test/compile-fail/issue-3096-1.rs b/src/test/ui/issue-3096-1.rs
index 62c2639836b..62c2639836b 100644
--- a/src/test/compile-fail/issue-3096-1.rs
+++ b/src/test/ui/issue-3096-1.rs
diff --git a/src/test/ui/issue-3096-1.stderr b/src/test/ui/issue-3096-1.stderr
new file mode 100644
index 00000000000..783e831a2a5
--- /dev/null
+++ b/src/test/ui/issue-3096-1.stderr
@@ -0,0 +1,15 @@
+error[E0004]: non-exhaustive patterns: type () is non-empty
+  --> $DIR/issue-3096-1.rs:12:11
+   |
+LL |     match () { } //~ ERROR non-exhaustive
+   |           ^^
+   |
+help: Please ensure that all possible cases are being handled; possibly adding wildcards or more match arms.
+  --> $DIR/issue-3096-1.rs:12:11
+   |
+LL |     match () { } //~ ERROR non-exhaustive
+   |           ^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0004`.
diff --git a/src/test/compile-fail/issue-3096-2.rs b/src/test/ui/issue-3096-2.rs
index 2d1ad9a2692..2d1ad9a2692 100644
--- a/src/test/compile-fail/issue-3096-2.rs
+++ b/src/test/ui/issue-3096-2.rs
diff --git a/src/test/ui/issue-3096-2.stderr b/src/test/ui/issue-3096-2.stderr
new file mode 100644
index 00000000000..6031f25c03d
--- /dev/null
+++ b/src/test/ui/issue-3096-2.stderr
@@ -0,0 +1,15 @@
+error[E0004]: non-exhaustive patterns: type *const bottom is non-empty
+  --> $DIR/issue-3096-2.rs:15:11
+   |
+LL |     match x { } //~ ERROR non-exhaustive patterns
+   |           ^
+   |
+help: Please ensure that all possible cases are being handled; possibly adding wildcards or more match arms.
+  --> $DIR/issue-3096-2.rs:15:11
+   |
+LL |     match x { } //~ ERROR non-exhaustive patterns
+   |           ^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0004`.
diff --git a/src/test/compile-fail/issue-3099-a.rs b/src/test/ui/issue-3099-a.rs
index db60d70ca9b..db60d70ca9b 100644
--- a/src/test/compile-fail/issue-3099-a.rs
+++ b/src/test/ui/issue-3099-a.rs
diff --git a/src/test/ui/issue-3099-a.stderr b/src/test/ui/issue-3099-a.stderr
new file mode 100644
index 00000000000..6a194593c3f
--- /dev/null
+++ b/src/test/ui/issue-3099-a.stderr
@@ -0,0 +1,14 @@
+error[E0428]: the name `a` is defined multiple times
+  --> $DIR/issue-3099-a.rs:13:1
+   |
+LL | enum a { b, c }
+   | ------ previous definition of the type `a` here
+LL | 
+LL | enum a { d, e } //~ ERROR the name `a` is defined multiple times
+   | ^^^^^^ `a` redefined here
+   |
+   = note: `a` must be defined only once in the type namespace of this module
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0428`.
diff --git a/src/test/compile-fail/issue-3099-b.rs b/src/test/ui/issue-3099-b.rs
index 956d2186752..956d2186752 100644
--- a/src/test/compile-fail/issue-3099-b.rs
+++ b/src/test/ui/issue-3099-b.rs
diff --git a/src/test/ui/issue-3099-b.stderr b/src/test/ui/issue-3099-b.stderr
new file mode 100644
index 00000000000..226d99e3b82
--- /dev/null
+++ b/src/test/ui/issue-3099-b.stderr
@@ -0,0 +1,14 @@
+error[E0428]: the name `a` is defined multiple times
+  --> $DIR/issue-3099-b.rs:13:1
+   |
+LL | pub mod a {}
+   | --------- previous definition of the module `a` here
+LL | 
+LL | pub mod a {} //~ ERROR the name `a` is defined multiple times
+   | ^^^^^^^^^ `a` redefined here
+   |
+   = note: `a` must be defined only once in the type namespace of this module
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0428`.
diff --git a/src/test/compile-fail/issue-3099.rs b/src/test/ui/issue-3099.rs
index 42766533556..42766533556 100644
--- a/src/test/compile-fail/issue-3099.rs
+++ b/src/test/ui/issue-3099.rs
diff --git a/src/test/ui/issue-3099.stderr b/src/test/ui/issue-3099.stderr
new file mode 100644
index 00000000000..a5f29e7b6c3
--- /dev/null
+++ b/src/test/ui/issue-3099.stderr
@@ -0,0 +1,14 @@
+error[E0428]: the name `a` is defined multiple times
+  --> $DIR/issue-3099.rs:15:1
+   |
+LL | fn a(x: String) -> String {
+   | ------------------------- previous definition of the value `a` here
+...
+LL | fn a(x: String, y: String) -> String { //~ ERROR the name `a` is defined multiple times
+   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `a` redefined here
+   |
+   = note: `a` must be defined only once in the value namespace of this module
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0428`.
diff --git a/src/test/compile-fail/issue-31011.rs b/src/test/ui/issue-31011.rs
index 716b0bbe772..716b0bbe772 100644
--- a/src/test/compile-fail/issue-31011.rs
+++ b/src/test/ui/issue-31011.rs
diff --git a/src/test/ui/issue-31011.stderr b/src/test/ui/issue-31011.stderr
new file mode 100644
index 00000000000..c2e7c9876cb
--- /dev/null
+++ b/src/test/ui/issue-31011.stderr
@@ -0,0 +1,12 @@
+error[E0609]: no field `trace` on type `&T`
+  --> $DIR/issue-31011.rs:13:17
+   |
+LL |         if $ctx.trace {
+   |                 ^^^^^
+...
+LL |     log!(context, "entered wrapper");
+   |     --------------------------------- in this macro invocation
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0609`.
diff --git a/src/test/compile-fail/issue-31109.rs b/src/test/ui/issue-31109.rs
index 74121e3a420..74121e3a420 100644
--- a/src/test/compile-fail/issue-31109.rs
+++ b/src/test/ui/issue-31109.rs
diff --git a/src/test/ui/issue-31109.stderr b/src/test/ui/issue-31109.stderr
new file mode 100644
index 00000000000..c66a4f0b175
--- /dev/null
+++ b/src/test/ui/issue-31109.stderr
@@ -0,0 +1,8 @@
+error: could not evaluate float literal (see issue #31407)
+  --> $DIR/issue-31109.rs:14:18
+   |
+LL |     let _: f64 = 1234567890123456789012345678901234567890e-340;
+   |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-31173.rs b/src/test/ui/issue-31173.rs
index fb1e3cc87e8..fb1e3cc87e8 100644
--- a/src/test/compile-fail/issue-31173.rs
+++ b/src/test/ui/issue-31173.rs
diff --git a/src/test/ui/issue-31173.stderr b/src/test/ui/issue-31173.stderr
new file mode 100644
index 00000000000..e2630b5b8ce
--- /dev/null
+++ b/src/test/ui/issue-31173.stderr
@@ -0,0 +1,23 @@
+error[E0271]: type mismatch resolving `<std::iter::TakeWhile<&mut std::vec::IntoIter<u8>, [closure@$DIR/issue-31173.rs:16:39: 19:6 found_e:_]> as std::iter::Iterator>::Item == &_`
+  --> $DIR/issue-31173.rs:20:10
+   |
+LL |         .cloned()
+   |          ^^^^^^ expected u8, found reference
+   |
+   = note: expected type `u8`
+              found type `&_`
+
+error[E0599]: no method named `collect` found for type `std::iter::Cloned<std::iter::TakeWhile<&mut std::vec::IntoIter<u8>, [closure@$DIR/issue-31173.rs:16:39: 19:6 found_e:_]>>` in the current scope
+  --> $DIR/issue-31173.rs:24:10
+   |
+LL |         .collect(); //~ ERROR no method named `collect`
+   |          ^^^^^^^
+   |
+   = note: the method `collect` exists but the following trait bounds were not satisfied:
+           `std::iter::Cloned<std::iter::TakeWhile<&mut std::vec::IntoIter<u8>, [closure@$DIR/issue-31173.rs:16:39: 19:6 found_e:_]>> : std::iter::Iterator`
+           `&mut std::iter::Cloned<std::iter::TakeWhile<&mut std::vec::IntoIter<u8>, [closure@$DIR/issue-31173.rs:16:39: 19:6 found_e:_]>> : std::iter::Iterator`
+
+error: aborting due to 2 previous errors
+
+Some errors occurred: E0271, E0599.
+For more information about an error, try `rustc --explain E0271`.
diff --git a/src/test/compile-fail/issue-31212.rs b/src/test/ui/issue-31212.rs
index 8dc58eee5fb..8dc58eee5fb 100644
--- a/src/test/compile-fail/issue-31212.rs
+++ b/src/test/ui/issue-31212.rs
diff --git a/src/test/ui/issue-31212.stderr b/src/test/ui/issue-31212.stderr
new file mode 100644
index 00000000000..17cf2e81236
--- /dev/null
+++ b/src/test/ui/issue-31212.stderr
@@ -0,0 +1,16 @@
+error[E0432]: unresolved import `self::*`
+  --> $DIR/issue-31212.rs:15:13
+   |
+LL |     pub use self::*; //~ ERROR unresolved
+   |             ^^^^^^^ Cannot glob-import a module into itself.
+
+error[E0425]: cannot find function `f` in module `foo`
+  --> $DIR/issue-31212.rs:19:10
+   |
+LL |     foo::f(); //~ ERROR cannot find function `f` in module `foo`
+   |          ^ not found in `foo`
+
+error: aborting due to 2 previous errors
+
+Some errors occurred: E0425, E0432.
+For more information about an error, try `rustc --explain E0425`.
diff --git a/src/test/compile-fail/issue-31495.rs b/src/test/ui/issue-31495.rs
index 794b8bb86bb..794b8bb86bb 100644
--- a/src/test/compile-fail/issue-31495.rs
+++ b/src/test/ui/issue-31495.rs
diff --git a/src/test/compile-fail/issue-31511.rs b/src/test/ui/issue-31511.rs
index dd1af2f4448..dd1af2f4448 100644
--- a/src/test/compile-fail/issue-31511.rs
+++ b/src/test/ui/issue-31511.rs
diff --git a/src/test/ui/issue-31511.stderr b/src/test/ui/issue-31511.stderr
new file mode 100644
index 00000000000..7d4c9426da1
--- /dev/null
+++ b/src/test/ui/issue-31511.stderr
@@ -0,0 +1,9 @@
+error[E0607]: cannot cast thin pointer `*const ()` to fat pointer `*const [u8]`
+  --> $DIR/issue-31511.rs:12:5
+   |
+LL |     x as *const [u8];
+   |     ^^^^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0607`.
diff --git a/src/test/ui/issue-3154.nll.stderr b/src/test/ui/issue-3154.nll.stderr
new file mode 100644
index 00000000000..4420f9dcae4
--- /dev/null
+++ b/src/test/ui/issue-3154.nll.stderr
@@ -0,0 +1,23 @@
+warning: not reporting region error due to nll
+  --> $DIR/issue-3154.rs:16:15
+   |
+LL |     thing{ x: x } //~ ERROR 16:5: 16:18: explicit lifetime required in the type of `x` [E0621]
+   |               ^
+
+warning: not reporting region error due to nll
+  --> $DIR/issue-3154.rs:16:5
+   |
+LL |     thing{ x: x } //~ ERROR 16:5: 16:18: explicit lifetime required in the type of `x` [E0621]
+   |     ^^^^^
+
+error[E0621]: explicit lifetime required in the type of `x`
+  --> $DIR/issue-3154.rs:16:15
+   |
+LL | fn thing<'a,Q>(x: &Q) -> thing<'a,Q> {
+   |                - consider changing the type of `x` to `&'a Q`
+LL |     thing{ x: x } //~ ERROR 16:5: 16:18: explicit lifetime required in the type of `x` [E0621]
+   |               ^ lifetime `'a` required
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0621`.
diff --git a/src/test/compile-fail/issue-3154.rs b/src/test/ui/issue-3154.rs
index 519e9d06d1b..519e9d06d1b 100644
--- a/src/test/compile-fail/issue-3154.rs
+++ b/src/test/ui/issue-3154.rs
diff --git a/src/test/ui/issue-3154.stderr b/src/test/ui/issue-3154.stderr
new file mode 100644
index 00000000000..cc0cfd768c4
--- /dev/null
+++ b/src/test/ui/issue-3154.stderr
@@ -0,0 +1,11 @@
+error[E0621]: explicit lifetime required in the type of `x`
+  --> $DIR/issue-3154.rs:16:5
+   |
+LL | fn thing<'a,Q>(x: &Q) -> thing<'a,Q> {
+   |                - consider changing the type of `x` to `&'a Q`
+LL |     thing{ x: x } //~ ERROR 16:5: 16:18: explicit lifetime required in the type of `x` [E0621]
+   |     ^^^^^^^^^^^^^ lifetime `'a` required
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0621`.
diff --git a/src/test/compile-fail/issue-31561.rs b/src/test/ui/issue-31561.rs
index f8645c4d3a7..f8645c4d3a7 100644
--- a/src/test/compile-fail/issue-31561.rs
+++ b/src/test/ui/issue-31561.rs
diff --git a/src/test/ui/issue-31561.stderr b/src/test/ui/issue-31561.stderr
new file mode 100644
index 00000000000..4608a95459b
--- /dev/null
+++ b/src/test/ui/issue-31561.stderr
@@ -0,0 +1,9 @@
+error[E0005]: refutable pattern in local binding: `Bar` not covered
+  --> $DIR/issue-31561.rs:18:9
+   |
+LL |     let Thing::Foo(y) = Thing::Foo(1);
+   |         ^^^^^^^^^^^^^ pattern `Bar` not covered
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0005`.
diff --git a/src/test/compile-fail/issue-31769.rs b/src/test/ui/issue-31769.rs
index 2bd45deeab4..2bd45deeab4 100644
--- a/src/test/compile-fail/issue-31769.rs
+++ b/src/test/ui/issue-31769.rs
diff --git a/src/test/ui/issue-31769.stderr b/src/test/ui/issue-31769.stderr
new file mode 100644
index 00000000000..1f1904e3c2c
--- /dev/null
+++ b/src/test/ui/issue-31769.stderr
@@ -0,0 +1,16 @@
+error[E0518]: attribute should be applied to function or closure
+  --> $DIR/issue-31769.rs:12:5
+   |
+LL |     #[inline] struct Foo;  //~ ERROR attribute should be applied to function or closure
+   |     ^^^^^^^^^ ----------- not a function or closure
+
+error[E0517]: attribute should be applied to struct, enum or union
+  --> $DIR/issue-31769.rs:13:12
+   |
+LL |     #[repr(C)] fn foo() {} //~ ERROR attribute should be applied to struct, enum or union
+   |            ^   ----------- not a struct, enum or union
+
+error: aborting due to 2 previous errors
+
+Some errors occurred: E0517, E0518.
+For more information about an error, try `rustc --explain E0517`.
diff --git a/src/test/compile-fail/issue-31804.rs b/src/test/ui/issue-31804.rs
index cea52b11c5d..cea52b11c5d 100644
--- a/src/test/compile-fail/issue-31804.rs
+++ b/src/test/ui/issue-31804.rs
diff --git a/src/test/ui/issue-31804.stderr b/src/test/ui/issue-31804.stderr
new file mode 100644
index 00000000000..e0ac2f631ba
--- /dev/null
+++ b/src/test/ui/issue-31804.stderr
@@ -0,0 +1,8 @@
+error: expected pattern, found `}`
+  --> $DIR/issue-31804.rs:16:1
+   |
+LL | } //~ ERROR expected pattern, found `}`
+   | ^ expected pattern
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-31845.rs b/src/test/ui/issue-31845.rs
index 514255e4676..514255e4676 100644
--- a/src/test/compile-fail/issue-31845.rs
+++ b/src/test/ui/issue-31845.rs
diff --git a/src/test/ui/issue-31845.stderr b/src/test/ui/issue-31845.stderr
new file mode 100644
index 00000000000..9fb8f2ead87
--- /dev/null
+++ b/src/test/ui/issue-31845.stderr
@@ -0,0 +1,9 @@
+error[E0425]: cannot find function `g` in this scope
+  --> $DIR/issue-31845.rs:17:12
+   |
+LL |            g(); //~ ERROR cannot find function `g` in this scope
+   |            ^ did you mean `h`?
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0425`.
diff --git a/src/test/compile-fail/issue-31910.rs b/src/test/ui/issue-31910.rs
index 7524049c5df..7524049c5df 100644
--- a/src/test/compile-fail/issue-31910.rs
+++ b/src/test/ui/issue-31910.rs
diff --git a/src/test/ui/issue-31910.stderr b/src/test/ui/issue-31910.stderr
new file mode 100644
index 00000000000..da5aa154450
--- /dev/null
+++ b/src/test/ui/issue-31910.stderr
@@ -0,0 +1,9 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-31910.rs:13:9
+   |
+LL |     X = Trait::Number,
+   |         ^^^^^^^^^^^^^ expected isize, found i32
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-31924-non-snake-ffi.rs b/src/test/ui/issue-31924-non-snake-ffi.rs
index d9ce1159c0e..d9ce1159c0e 100644
--- a/src/test/compile-fail/issue-31924-non-snake-ffi.rs
+++ b/src/test/ui/issue-31924-non-snake-ffi.rs
diff --git a/src/test/ui/issue-31924-non-snake-ffi.stderr b/src/test/ui/issue-31924-non-snake-ffi.stderr
new file mode 100644
index 00000000000..2aaaa1578a5
--- /dev/null
+++ b/src/test/ui/issue-31924-non-snake-ffi.stderr
@@ -0,0 +1,8 @@
+error: compilation successful
+  --> $DIR/issue-31924-non-snake-ffi.rs:18:1
+   |
+LL | fn main() {} //~ ERROR compilation successful
+   | ^^^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-32004.rs b/src/test/ui/issue-32004.rs
index 7e1f4c28d21..7e1f4c28d21 100644
--- a/src/test/compile-fail/issue-32004.rs
+++ b/src/test/ui/issue-32004.rs
diff --git a/src/test/ui/issue-32004.stderr b/src/test/ui/issue-32004.stderr
new file mode 100644
index 00000000000..c409d4bb612
--- /dev/null
+++ b/src/test/ui/issue-32004.stderr
@@ -0,0 +1,17 @@
+error[E0532]: expected unit struct/variant or constant, found tuple variant `Foo::Bar`
+  --> $DIR/issue-32004.rs:20:9
+   |
+LL |         Foo::Bar => {}
+   |         ^^^^^---
+   |              |
+   |              did you mean `Baz`?
+
+error[E0532]: expected tuple struct/variant, found unit struct `S`
+  --> $DIR/issue-32004.rs:26:9
+   |
+LL |         S(()) => {}
+   |         ^ not a tuple struct/variant
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0532`.
diff --git a/src/test/compile-fail/issue-32086.rs b/src/test/ui/issue-32086.rs
index dd236b76a67..dd236b76a67 100644
--- a/src/test/compile-fail/issue-32086.rs
+++ b/src/test/ui/issue-32086.rs
diff --git a/src/test/ui/issue-32086.stderr b/src/test/ui/issue-32086.stderr
new file mode 100644
index 00000000000..28d21708b21
--- /dev/null
+++ b/src/test/ui/issue-32086.stderr
@@ -0,0 +1,15 @@
+error[E0532]: expected tuple struct/variant, found constant `C`
+  --> $DIR/issue-32086.rs:15:9
+   |
+LL |     let C(a) = S(11); //~ ERROR expected tuple struct/variant, found constant `C`
+   |         ^ did you mean `S`?
+
+error[E0532]: expected tuple struct/variant, found constant `C`
+  --> $DIR/issue-32086.rs:16:9
+   |
+LL |     let C(..) = S(11); //~ ERROR expected tuple struct/variant, found constant `C`
+   |         ^ did you mean `S`?
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0532`.
diff --git a/src/test/compile-fail/issue-32119.rs b/src/test/ui/issue-32119.rs
index e630a01a593..e630a01a593 100644
--- a/src/test/compile-fail/issue-32119.rs
+++ b/src/test/ui/issue-32119.rs
diff --git a/src/test/ui/issue-32119.stderr b/src/test/ui/issue-32119.stderr
new file mode 100644
index 00000000000..04276ec1ffd
--- /dev/null
+++ b/src/test/ui/issue-32119.stderr
@@ -0,0 +1,8 @@
+error: compilation successful
+  --> $DIR/issue-32119.rs:29:1
+   |
+LL | fn main() {} //~ ERROR compilation successful
+   | ^^^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-3214.rs b/src/test/ui/issue-3214.rs
index 9a769c39eca..9a769c39eca 100644
--- a/src/test/compile-fail/issue-3214.rs
+++ b/src/test/ui/issue-3214.rs
diff --git a/src/test/ui/issue-3214.stderr b/src/test/ui/issue-3214.stderr
new file mode 100644
index 00000000000..1298e4a007d
--- /dev/null
+++ b/src/test/ui/issue-3214.stderr
@@ -0,0 +1,21 @@
+error[E0401]: can't use type parameters from outer function
+  --> $DIR/issue-3214.rs:13:12
+   |
+LL | fn foo<T>() {
+   |    --- - type variable from outer function
+   |    |
+   |    try adding a local type parameter in this method instead
+LL |     struct foo {
+LL |         x: T, //~ ERROR can't use type parameters from outer function
+   |            ^ use of type variable from outer function
+
+error[E0244]: wrong number of type arguments: expected 0, found 1
+  --> $DIR/issue-3214.rs:16:22
+   |
+LL |     impl<T> Drop for foo<T> {
+   |                      ^^^^^^ expected no type arguments
+
+error: aborting due to 2 previous errors
+
+Some errors occurred: E0244, E0401.
+For more information about an error, try `rustc --explain E0244`.
diff --git a/src/test/compile-fail/issue-32201.rs b/src/test/ui/issue-32201.rs
index bf9f8ecbc80..bf9f8ecbc80 100644
--- a/src/test/compile-fail/issue-32201.rs
+++ b/src/test/ui/issue-32201.rs
diff --git a/src/test/ui/issue-32201.stderr b/src/test/ui/issue-32201.stderr
new file mode 100644
index 00000000000..986c2f0890c
--- /dev/null
+++ b/src/test/ui/issue-32201.stderr
@@ -0,0 +1,9 @@
+error[E0617]: can't pass `fn(*const u8) {bar}` to variadic function
+  --> $DIR/issue-32201.rs:19:16
+   |
+LL |         foo(0, bar);
+   |                ^^^ help: cast the value to `fn(*const u8)`: `bar as fn(*const u8)`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0617`.
diff --git a/src/test/compile-fail/issue-32222.rs b/src/test/ui/issue-32222.rs
index b3b34f4b0ef..b3b34f4b0ef 100644
--- a/src/test/compile-fail/issue-32222.rs
+++ b/src/test/ui/issue-32222.rs
diff --git a/src/test/ui/issue-32222.stderr b/src/test/ui/issue-32222.stderr
new file mode 100644
index 00000000000..ba2c5396e4d
--- /dev/null
+++ b/src/test/ui/issue-32222.stderr
@@ -0,0 +1,8 @@
+error: compilation successful
+  --> $DIR/issue-32222.rs:34:1
+   |
+LL | fn main() {} //~ ERROR compilation successful
+   | ^^^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-32323.rs b/src/test/ui/issue-32323.rs
index e5cb8130327..e5cb8130327 100644
--- a/src/test/compile-fail/issue-32323.rs
+++ b/src/test/ui/issue-32323.rs
diff --git a/src/test/ui/issue-32323.stderr b/src/test/ui/issue-32323.stderr
new file mode 100644
index 00000000000..09ac1553b3a
--- /dev/null
+++ b/src/test/ui/issue-32323.stderr
@@ -0,0 +1,12 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-32323.rs:15:49
+   |
+LL | pub fn f<'a, T: Tr<'a>>() -> <T as Tr<'a>>::Out {}
+   |                                                 ^^ expected associated type, found ()
+   |
+   = note: expected type `<T as Tr<'a>>::Out`
+              found type `()`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-32377.rs b/src/test/ui/issue-32377.rs
index 5091ba4ee1a..5091ba4ee1a 100644
--- a/src/test/compile-fail/issue-32377.rs
+++ b/src/test/ui/issue-32377.rs
diff --git a/src/test/ui/issue-32377.stderr b/src/test/ui/issue-32377.stderr
new file mode 100644
index 00000000000..a0698885caa
--- /dev/null
+++ b/src/test/ui/issue-32377.stderr
@@ -0,0 +1,12 @@
+error[E0512]: transmute called with types of different sizes
+  --> $DIR/issue-32377.rs:23:14
+   |
+LL |     unsafe { mem::transmute(x) }
+   |              ^^^^^^^^^^^^^^
+   |
+   = note: source type: [usize; 2] (128 bits)
+   = note: target type: Bar<U> (0 bits)
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0512`.
diff --git a/src/test/compile-fail/issue-32655.rs b/src/test/ui/issue-32655.rs
index 25ecd5d0862..25ecd5d0862 100644
--- a/src/test/compile-fail/issue-32655.rs
+++ b/src/test/ui/issue-32655.rs
diff --git a/src/test/ui/issue-32655.stderr b/src/test/ui/issue-32655.stderr
new file mode 100644
index 00000000000..a1323808a91
--- /dev/null
+++ b/src/test/ui/issue-32655.stderr
@@ -0,0 +1,22 @@
+error[E0658]: attributes of the form `#[derive_*]` are reserved for the compiler (see issue #29644)
+  --> $DIR/issue-32655.rs:16:9
+   |
+LL |         #[derive_Clone] //~ ERROR attributes of the form
+   |         ^^^^^^^^^^^^^^^
+...
+LL | foo!();
+   | ------- in this macro invocation
+   |
+   = help: add #![feature(custom_derive)] to the crate attributes to enable
+
+error[E0658]: attributes of the form `#[derive_*]` are reserved for the compiler (see issue #29644)
+  --> $DIR/issue-32655.rs:28:5
+   |
+LL |     #[derive_Clone] //~ ERROR attributes of the form
+   |     ^^^^^^^^^^^^^^^
+   |
+   = help: add #![feature(custom_derive)] to the crate attributes to enable
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0658`.
diff --git a/src/test/compile-fail/issue-32709.rs b/src/test/ui/issue-32709.rs
index 09538818dcd..09538818dcd 100644
--- a/src/test/compile-fail/issue-32709.rs
+++ b/src/test/ui/issue-32709.rs
diff --git a/src/test/ui/issue-32709.stderr b/src/test/ui/issue-32709.stderr
new file mode 100644
index 00000000000..8da4be2ba2b
--- /dev/null
+++ b/src/test/ui/issue-32709.stderr
@@ -0,0 +1,11 @@
+error[E0277]: the trait bound `(): std::convert::From<{integer}>` is not satisfied
+  --> $DIR/issue-32709.rs:14:5
+   |
+LL |     Err(5)?; //~ ERROR 14:5: 14:12
+   |     ^^^^^^^ the trait `std::convert::From<{integer}>` is not implemented for `()`
+   |
+   = note: required by `std::convert::From::from`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/compile-fail/issue-32782.rs b/src/test/ui/issue-32782.rs
index 696ea0ef547..696ea0ef547 100644
--- a/src/test/compile-fail/issue-32782.rs
+++ b/src/test/ui/issue-32782.rs
diff --git a/src/test/ui/issue-32782.stderr b/src/test/ui/issue-32782.stderr
new file mode 100644
index 00000000000..8b486000a45
--- /dev/null
+++ b/src/test/ui/issue-32782.stderr
@@ -0,0 +1,14 @@
+error[E0658]: allow_internal_unstable side-steps feature gating and stability checks
+  --> $DIR/issue-32782.rs:17:9
+   |
+LL |         #[allow_internal_unstable] //~ ERROR allow_internal_unstable side-steps
+   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
+...
+LL | foo!();
+   | ------- in this macro invocation
+   |
+   = help: add #![feature(allow_internal_unstable)] to the crate attributes to enable
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0658`.
diff --git a/src/test/compile-fail/issue-32797.rs b/src/test/ui/issue-32797.rs
index 2c54ed3e857..2c54ed3e857 100644
--- a/src/test/compile-fail/issue-32797.rs
+++ b/src/test/ui/issue-32797.rs
diff --git a/src/test/ui/issue-32797.stderr b/src/test/ui/issue-32797.stderr
new file mode 100644
index 00000000000..8e1430e505d
--- /dev/null
+++ b/src/test/ui/issue-32797.stderr
@@ -0,0 +1,8 @@
+error: compilation successful
+  --> $DIR/issue-32797.rs:24:1
+   |
+LL | pub fn main() {} //~ ERROR compilation successful
+   | ^^^^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-32829.rs b/src/test/ui/issue-32829.rs
index 9ac70882ca2..9ac70882ca2 100644
--- a/src/test/compile-fail/issue-32829.rs
+++ b/src/test/ui/issue-32829.rs
diff --git a/src/test/ui/issue-32829.stderr b/src/test/ui/issue-32829.stderr
new file mode 100644
index 00000000000..fc7d356411a
--- /dev/null
+++ b/src/test/ui/issue-32829.stderr
@@ -0,0 +1,11 @@
+error[E0015]: calls in statics are limited to constant functions, tuple structs and tuple variants
+  --> $DIR/issue-32829.rs:13:22
+   |
+LL | static S : u64 = { { panic!("foo"); 0 } };
+   |                      ^^^^^^^^^^^^^^
+   |
+   = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0015`.
diff --git a/src/test/compile-fail/issue-32833.rs b/src/test/ui/issue-32833.rs
index 41383e93603..41383e93603 100644
--- a/src/test/compile-fail/issue-32833.rs
+++ b/src/test/ui/issue-32833.rs
diff --git a/src/test/ui/issue-32833.stderr b/src/test/ui/issue-32833.stderr
new file mode 100644
index 00000000000..11af5d56766
--- /dev/null
+++ b/src/test/ui/issue-32833.stderr
@@ -0,0 +1,9 @@
+error[E0432]: unresolved import `bar::Foo`
+  --> $DIR/issue-32833.rs:11:5
+   |
+LL | use bar::Foo; //~ ERROR unresolved import `bar::Foo` [E0432]
+   |     ^^^^^^^^ no `Foo` in `bar`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0432`.
diff --git a/src/test/compile-fail/issue-32922.rs b/src/test/ui/issue-32922.rs
index 317a47156c1..317a47156c1 100644
--- a/src/test/compile-fail/issue-32922.rs
+++ b/src/test/ui/issue-32922.rs
diff --git a/src/test/ui/issue-32922.stderr b/src/test/ui/issue-32922.stderr
new file mode 100644
index 00000000000..c1e80b0eb78
--- /dev/null
+++ b/src/test/ui/issue-32922.stderr
@@ -0,0 +1,14 @@
+error: compilation successful
+  --> $DIR/issue-32922.rs:35:1
+   |
+LL | / fn main() { //~ ERROR compilation successful
+LL | |     foo! {};
+LL | |     bar! {};
+LL | |
+LL | |     let mut a = true;
+LL | |     baz!(a);
+LL | | }
+   | |_^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-32963.rs b/src/test/ui/issue-32963.rs
index 24db822f89c..24db822f89c 100644
--- a/src/test/compile-fail/issue-32963.rs
+++ b/src/test/ui/issue-32963.rs
diff --git a/src/test/ui/issue-32963.stderr b/src/test/ui/issue-32963.stderr
new file mode 100644
index 00000000000..dff7c9f2b8b
--- /dev/null
+++ b/src/test/ui/issue-32963.stderr
@@ -0,0 +1,22 @@
+error[E0225]: only auto traits can be used as additional traits in a trait object
+  --> $DIR/issue-32963.rs:18:25
+   |
+LL |     size_of_copy::<Misc+Copy>();
+   |                         ^^^^ non-auto additional trait
+
+error[E0277]: the trait bound `dyn Misc: std::marker::Copy` is not satisfied
+  --> $DIR/issue-32963.rs:18:5
+   |
+LL |     size_of_copy::<Misc+Copy>();
+   |     ^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::marker::Copy` is not implemented for `dyn Misc`
+   |
+note: required by `size_of_copy`
+  --> $DIR/issue-32963.rs:15:1
+   |
+LL | fn size_of_copy<T: Copy+?Sized>() -> usize { mem::size_of::<T>() }
+   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+error: aborting due to 2 previous errors
+
+Some errors occurred: E0225, E0277.
+For more information about an error, try `rustc --explain E0225`.
diff --git a/src/test/compile-fail/issue-32995-2.rs b/src/test/ui/issue-32995-2.rs
index 18424fcc9e0..18424fcc9e0 100644
--- a/src/test/compile-fail/issue-32995-2.rs
+++ b/src/test/ui/issue-32995-2.rs
diff --git a/src/test/ui/issue-32995-2.stderr b/src/test/ui/issue-32995-2.stderr
new file mode 100644
index 00000000000..68eda14f81d
--- /dev/null
+++ b/src/test/ui/issue-32995-2.stderr
@@ -0,0 +1,30 @@
+error: parenthesized parameters may only be used with a trait
+  --> $DIR/issue-32995-2.rs:14:28
+   |
+LL |     { fn f<X: ::std::marker()::Send>() {} }
+   |                            ^^
+   |
+   = note: #[deny(parenthesized_params_in_types_and_modules)] on by default
+   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
+   = note: for more information, see issue #42238 <https://github.com/rust-lang/rust/issues/42238>
+
+error: parenthesized parameters may only be used with a trait
+  --> $DIR/issue-32995-2.rs:18:35
+   |
+LL |     { fn f() -> impl ::std::marker()::Send { } }
+   |                                   ^^
+   |
+   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
+   = note: for more information, see issue #42238 <https://github.com/rust-lang/rust/issues/42238>
+
+error: parenthesized parameters may only be used with a trait
+  --> $DIR/issue-32995-2.rs:26:19
+   |
+LL | impl ::std::marker()::Copy for X {}
+   |                   ^^
+   |
+   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
+   = note: for more information, see issue #42238 <https://github.com/rust-lang/rust/issues/42238>
+
+error: aborting due to 3 previous errors
+
diff --git a/src/test/compile-fail/issue-32995.rs b/src/test/ui/issue-32995.rs
index ffbd0c0c22a..ffbd0c0c22a 100644
--- a/src/test/compile-fail/issue-32995.rs
+++ b/src/test/ui/issue-32995.rs
diff --git a/src/test/ui/issue-32995.stderr b/src/test/ui/issue-32995.stderr
new file mode 100644
index 00000000000..f427964135c
--- /dev/null
+++ b/src/test/ui/issue-32995.stderr
@@ -0,0 +1,66 @@
+error: parenthesized parameters may only be used with a trait
+  --> $DIR/issue-32995.rs:14:17
+   |
+LL |     let x: usize() = 1;
+   |                 ^^
+   |
+   = note: #[deny(parenthesized_params_in_types_and_modules)] on by default
+   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
+   = note: for more information, see issue #42238 <https://github.com/rust-lang/rust/issues/42238>
+
+error: parenthesized parameters may only be used with a trait
+  --> $DIR/issue-32995.rs:18:24
+   |
+LL |     let b: ::std::boxed()::Box<_> = Box::new(1);
+   |                        ^^
+   |
+   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
+   = note: for more information, see issue #42238 <https://github.com/rust-lang/rust/issues/42238>
+
+error: parenthesized parameters may only be used with a trait
+  --> $DIR/issue-32995.rs:22:23
+   |
+LL |     let p = ::std::str::()::from_utf8(b"foo").unwrap();
+   |                       ^^^^
+   |
+   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
+   = note: for more information, see issue #42238 <https://github.com/rust-lang/rust/issues/42238>
+
+error: parenthesized parameters may only be used with a trait
+  --> $DIR/issue-32995.rs:26:34
+   |
+LL |     let p = ::std::str::from_utf8::()(b"foo").unwrap();
+   |                                  ^^^^
+   |
+   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
+   = note: for more information, see issue #42238 <https://github.com/rust-lang/rust/issues/42238>
+
+error: parenthesized parameters may only be used with a trait
+  --> $DIR/issue-32995.rs:30:30
+   |
+LL |     let o : Box<::std::marker()::Send> = Box::new(1);
+   |                              ^^
+   |
+   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
+   = note: for more information, see issue #42238 <https://github.com/rust-lang/rust/issues/42238>
+
+error: parenthesized parameters may only be used with a trait
+  --> $DIR/issue-32995.rs:34:37
+   |
+LL |     let o : Box<Send + ::std::marker()::Sync> = Box::new(1);
+   |                                     ^^
+   |
+   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
+   = note: for more information, see issue #42238 <https://github.com/rust-lang/rust/issues/42238>
+
+error: parenthesized parameters may only be used with a trait
+  --> $DIR/issue-32995.rs:40:14
+   |
+LL |     let d : X() = Default::default();
+   |              ^^
+   |
+   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
+   = note: for more information, see issue #42238 <https://github.com/rust-lang/rust/issues/42238>
+
+error: aborting due to 7 previous errors
+
diff --git a/src/test/compile-fail/issue-33241.rs b/src/test/ui/issue-33241.rs
index 6a411b4c59c..6a411b4c59c 100644
--- a/src/test/compile-fail/issue-33241.rs
+++ b/src/test/ui/issue-33241.rs
diff --git a/src/test/ui/issue-33241.stderr b/src/test/ui/issue-33241.stderr
new file mode 100644
index 00000000000..1b6577dc41f
--- /dev/null
+++ b/src/test/ui/issue-33241.stderr
@@ -0,0 +1,11 @@
+error: compilation successful
+  --> $DIR/issue-33241.rs:20:1
+   |
+LL | / fn main() { //~ ERROR compilation successful
+LL | |     let t: &(u8, fmt::Debug) = any();
+LL | |     println!("{:?}", &t.1);
+LL | | }
+   | |_^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-33293.rs b/src/test/ui/issue-33293.rs
index bed577b8b9d..bed577b8b9d 100644
--- a/src/test/compile-fail/issue-33293.rs
+++ b/src/test/ui/issue-33293.rs
diff --git a/src/test/ui/issue-33293.stderr b/src/test/ui/issue-33293.stderr
new file mode 100644
index 00000000000..e94979b6da4
--- /dev/null
+++ b/src/test/ui/issue-33293.stderr
@@ -0,0 +1,9 @@
+error[E0433]: failed to resolve. Use of undeclared type or module `aaa`
+  --> $DIR/issue-33293.rs:13:9
+   |
+LL |         aaa::bbb(_) => ()
+   |         ^^^ Use of undeclared type or module `aaa`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0433`.
diff --git a/src/test/compile-fail/issue-3344.rs b/src/test/ui/issue-3344.rs
index 73532cb768a..73532cb768a 100644
--- a/src/test/compile-fail/issue-3344.rs
+++ b/src/test/ui/issue-3344.rs
diff --git a/src/test/ui/issue-3344.stderr b/src/test/ui/issue-3344.stderr
new file mode 100644
index 00000000000..eb6caa7307e
--- /dev/null
+++ b/src/test/ui/issue-3344.stderr
@@ -0,0 +1,11 @@
+error[E0046]: not all trait items implemented, missing: `partial_cmp`
+  --> $DIR/issue-3344.rs:13:1
+   |
+LL | impl PartialOrd for thing { //~ ERROR not all trait items implemented, missing: `partial_cmp`
+   | ^^^^^^^^^^^^^^^^^^^^^^^^^ missing `partial_cmp` in implementation
+   |
+   = note: `partial_cmp` from trait: `fn(&Self, &Rhs) -> std::option::Option<std::cmp::Ordering>`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0046`.
diff --git a/src/test/compile-fail/issue-33464.rs b/src/test/ui/issue-33464.rs
index b7dbaf20eca..b7dbaf20eca 100644
--- a/src/test/compile-fail/issue-33464.rs
+++ b/src/test/ui/issue-33464.rs
diff --git a/src/test/ui/issue-33464.stderr b/src/test/ui/issue-33464.stderr
new file mode 100644
index 00000000000..b70fff01c9e
--- /dev/null
+++ b/src/test/ui/issue-33464.stderr
@@ -0,0 +1,21 @@
+error[E0432]: unresolved import `abc`
+  --> $DIR/issue-33464.rs:13:5
+   |
+LL | use abc::one_el;
+   |     ^^^ Maybe a missing `extern crate abc;`?
+
+error[E0432]: unresolved import `abc`
+  --> $DIR/issue-33464.rs:15:5
+   |
+LL | use abc::{a, bbb, cccccc};
+   |     ^^^ Maybe a missing `extern crate abc;`?
+
+error[E0432]: unresolved import `a_very_long_name`
+  --> $DIR/issue-33464.rs:17:5
+   |
+LL | use a_very_long_name::{el, el2};
+   |     ^^^^^^^^^^^^^^^^ Maybe a missing `extern crate a_very_long_name;`?
+
+error: aborting due to 3 previous errors
+
+For more information about this error, try `rustc --explain E0432`.
diff --git a/src/test/compile-fail/issue-33504.rs b/src/test/ui/issue-33504.rs
index 1e1994357c7..1e1994357c7 100644
--- a/src/test/compile-fail/issue-33504.rs
+++ b/src/test/ui/issue-33504.rs
diff --git a/src/test/ui/issue-33504.stderr b/src/test/ui/issue-33504.stderr
new file mode 100644
index 00000000000..ecf8076b2b3
--- /dev/null
+++ b/src/test/ui/issue-33504.stderr
@@ -0,0 +1,12 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-33504.rs:17:13
+   |
+LL |         let Test = 1; //~ ERROR mismatched types
+   |             ^^^^ expected integral variable, found struct `Test`
+   |
+   = note: expected type `{integer}`
+              found type `Test`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-33571.rs b/src/test/ui/issue-33571.rs
index 5dfc41c8f4a..5dfc41c8f4a 100644
--- a/src/test/compile-fail/issue-33571.rs
+++ b/src/test/ui/issue-33571.rs
diff --git a/src/test/ui/issue-33571.stderr b/src/test/ui/issue-33571.stderr
new file mode 100644
index 00000000000..be45f377c1f
--- /dev/null
+++ b/src/test/ui/issue-33571.stderr
@@ -0,0 +1,8 @@
+error: this unsafe trait should be implemented explicitly
+  --> $DIR/issue-33571.rs:12:10
+   |
+LL |          Sync, //~ ERROR this unsafe trait should be implemented explicitly
+   |          ^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/ui/issue-33819.nll.stderr b/src/test/ui/issue-33819.nll.stderr
new file mode 100644
index 00000000000..88728207921
--- /dev/null
+++ b/src/test/ui/issue-33819.nll.stderr
@@ -0,0 +1,12 @@
+error[E0596]: cannot borrow immutable item `v` as mutable
+  --> $DIR/issue-33819.rs:13:34
+   |
+LL |         Some(ref v) => { let a = &mut v; },
+   |                                  ^^^^^^
+   |                                  |
+   |                                  cannot borrow as mutable
+   |                                  try removing `&mut` here
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0596`.
diff --git a/src/test/compile-fail/issue-33819.rs b/src/test/ui/issue-33819.rs
index 499e7e54947..499e7e54947 100644
--- a/src/test/compile-fail/issue-33819.rs
+++ b/src/test/ui/issue-33819.rs
diff --git a/src/test/ui/issue-33819.stderr b/src/test/ui/issue-33819.stderr
new file mode 100644
index 00000000000..bb8a542b12b
--- /dev/null
+++ b/src/test/ui/issue-33819.stderr
@@ -0,0 +1,9 @@
+error[E0596]: cannot borrow immutable local variable `v` as mutable
+  --> $DIR/issue-33819.rs:13:39
+   |
+LL |         Some(ref v) => { let a = &mut v; },
+   |                                       ^ cannot borrow mutably
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0596`.
diff --git a/src/test/compile-fail/issue-34028.rs b/src/test/ui/issue-34028.rs
index 117ab18a115..117ab18a115 100644
--- a/src/test/compile-fail/issue-34028.rs
+++ b/src/test/ui/issue-34028.rs
diff --git a/src/test/ui/issue-34028.stderr b/src/test/ui/issue-34028.stderr
new file mode 100644
index 00000000000..b715fa84f60
--- /dev/null
+++ b/src/test/ui/issue-34028.stderr
@@ -0,0 +1,8 @@
+error: compilation successful
+  --> $DIR/issue-34028.rs:21:1
+   |
+LL | fn main() {} //~ ERROR compilation successful
+   | ^^^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-34171.rs b/src/test/ui/issue-34171.rs
index 30dd34ae9a0..30dd34ae9a0 100644
--- a/src/test/compile-fail/issue-34171.rs
+++ b/src/test/ui/issue-34171.rs
diff --git a/src/test/ui/issue-34171.stderr b/src/test/ui/issue-34171.stderr
new file mode 100644
index 00000000000..cb8cfbd8599
--- /dev/null
+++ b/src/test/ui/issue-34171.stderr
@@ -0,0 +1,10 @@
+error: compilation successful
+  --> $DIR/issue-34171.rs:19:1
+   |
+LL | / fn main() { //~ ERROR compilation successful
+LL | |     apply_null!(#[cfg(all())] fn f() {});
+LL | | }
+   | |_^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-34222-1.rs b/src/test/ui/issue-34222-1.rs
index 6c85414860f..6c85414860f 100644
--- a/src/test/compile-fail/issue-34222-1.rs
+++ b/src/test/ui/issue-34222-1.rs
diff --git a/src/test/ui/issue-34222-1.stderr b/src/test/ui/issue-34222-1.stderr
new file mode 100644
index 00000000000..ef68d41da3c
--- /dev/null
+++ b/src/test/ui/issue-34222-1.stderr
@@ -0,0 +1,11 @@
+error[E0585]: found a documentation comment that doesn't document anything
+  --> $DIR/issue-34222-1.rs:12:5
+   |
+LL |     /// comment //~ ERROR found a documentation comment that doesn't document anything
+   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |
+   = help: doc comments must come before what they document, maybe a comment was intended with `//`?
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0585`.
diff --git a/src/test/compile-fail/issue-34334.rs b/src/test/ui/issue-34334.rs
index a752a36ade2..a752a36ade2 100644
--- a/src/test/compile-fail/issue-34334.rs
+++ b/src/test/ui/issue-34334.rs
diff --git a/src/test/ui/issue-34334.stderr b/src/test/ui/issue-34334.stderr
new file mode 100644
index 00000000000..240df196ae7
--- /dev/null
+++ b/src/test/ui/issue-34334.stderr
@@ -0,0 +1,10 @@
+error: expected one of `,` or `>`, found `=`
+  --> $DIR/issue-34334.rs:12:29
+   |
+LL |     let sr: Vec<(u32, _, _) = vec![]; //~ ERROR expected one of `,` or `>`, found `=`
+   |         --                  ^ expected one of `,` or `>` here
+   |         |
+   |         while parsing the type for `sr`
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-34349.rs b/src/test/ui/issue-34349.rs
index 591753181db..591753181db 100644
--- a/src/test/compile-fail/issue-34349.rs
+++ b/src/test/ui/issue-34349.rs
diff --git a/src/test/ui/issue-34349.stderr b/src/test/ui/issue-34349.stderr
new file mode 100644
index 00000000000..8683962b24d
--- /dev/null
+++ b/src/test/ui/issue-34349.stderr
@@ -0,0 +1,14 @@
+error[E0525]: expected a closure that implements the `Fn` trait, but this closure only implements `FnMut`
+  --> $DIR/issue-34349.rs:26:17
+   |
+LL |     let diary = || { //~ ERROR E0525
+   |                 ^^ this closure implements `FnMut`, not `Fn`
+LL |         farewell.push_str("!!!");
+   |         -------- closure is `FnMut` because it mutates the variable `farewell` here
+...
+LL |     apply(diary);
+   |     ----- the requirement to implement `Fn` derives from here
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0525`.
diff --git a/src/test/compile-fail/issue-34373.rs b/src/test/ui/issue-34373.rs
index 4d7238ad76f..4d7238ad76f 100644
--- a/src/test/compile-fail/issue-34373.rs
+++ b/src/test/ui/issue-34373.rs
diff --git a/src/test/ui/issue-34373.stderr b/src/test/ui/issue-34373.stderr
new file mode 100644
index 00000000000..ea80111b5e2
--- /dev/null
+++ b/src/test/ui/issue-34373.stderr
@@ -0,0 +1,16 @@
+error[E0391]: cycle detected when processing `Foo::T`
+  --> $DIR/issue-34373.rs:17:30
+   |
+LL | pub struct Foo<T = Box<Trait<DefaultFoo>>>;  //~ ERROR cycle detected
+   |                              ^^^^^^^^^^
+   |
+note: ...which requires processing `DefaultFoo`...
+  --> $DIR/issue-34373.rs:18:19
+   |
+LL | type DefaultFoo = Foo;
+   |                   ^^^
+   = note: ...which again requires processing `Foo::T`, completing the cycle
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0391`.
diff --git a/src/test/compile-fail/issue-34418.rs b/src/test/ui/issue-34418.rs
index 6bc0add2205..6bc0add2205 100644
--- a/src/test/compile-fail/issue-34418.rs
+++ b/src/test/ui/issue-34418.rs
diff --git a/src/test/ui/issue-34418.stderr b/src/test/ui/issue-34418.stderr
new file mode 100644
index 00000000000..4cb5ec1ae3b
--- /dev/null
+++ b/src/test/ui/issue-34418.stderr
@@ -0,0 +1,8 @@
+error: compilation successful
+  --> $DIR/issue-34418.rs:31:1
+   |
+LL | fn main() {} //~ ERROR compilation successful
+   | ^^^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-3477.rs b/src/test/ui/issue-3477.rs
index 0bad7372a12..0bad7372a12 100644
--- a/src/test/compile-fail/issue-3477.rs
+++ b/src/test/ui/issue-3477.rs
diff --git a/src/test/ui/issue-3477.stderr b/src/test/ui/issue-3477.stderr
new file mode 100644
index 00000000000..4207828693a
--- /dev/null
+++ b/src/test/ui/issue-3477.stderr
@@ -0,0 +1,9 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-3477.rs:12:20
+   |
+LL |     let _p: char = 100;
+   |                    ^^^ expected char, found u8
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-34839.rs b/src/test/ui/issue-34839.rs
index be7e7820020..be7e7820020 100644
--- a/src/test/compile-fail/issue-34839.rs
+++ b/src/test/ui/issue-34839.rs
diff --git a/src/test/ui/issue-34839.stderr b/src/test/ui/issue-34839.stderr
new file mode 100644
index 00000000000..538cc7a581b
--- /dev/null
+++ b/src/test/ui/issue-34839.stderr
@@ -0,0 +1,8 @@
+error: compilation successful
+  --> $DIR/issue-34839.rs:31:1
+   |
+LL | fn main() {}    //~ ERROR compilation successful
+   | ^^^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-35075.rs b/src/test/ui/issue-35075.rs
index 9943cfb9bca..9943cfb9bca 100644
--- a/src/test/compile-fail/issue-35075.rs
+++ b/src/test/ui/issue-35075.rs
diff --git a/src/test/ui/issue-35075.stderr b/src/test/ui/issue-35075.stderr
new file mode 100644
index 00000000000..9b2f17f038b
--- /dev/null
+++ b/src/test/ui/issue-35075.stderr
@@ -0,0 +1,21 @@
+error[E0412]: cannot find type `Foo` in this scope
+  --> $DIR/issue-35075.rs:12:12
+   |
+LL |     inner: Foo<T> //~ ERROR cannot find type `Foo` in this scope
+   |            ^^^---
+   |            |
+   |            not found in this scope
+   |            help: you can try using the variant's enum: `Baz`
+
+error[E0412]: cannot find type `Foo` in this scope
+  --> $DIR/issue-35075.rs:16:9
+   |
+LL |     Foo(Foo<T>) //~ ERROR cannot find type `Foo` in this scope
+   |         ^^^---
+   |         |
+   |         not found in this scope
+   |         help: you can try using the variant's enum: `Baz`
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0412`.
diff --git a/src/test/compile-fail/issue-3521-2.rs b/src/test/ui/issue-3521-2.rs
index 1742cb4fb72..1742cb4fb72 100644
--- a/src/test/compile-fail/issue-3521-2.rs
+++ b/src/test/ui/issue-3521-2.rs
diff --git a/src/test/ui/issue-3521-2.stderr b/src/test/ui/issue-3521-2.stderr
new file mode 100644
index 00000000000..07c37fadbba
--- /dev/null
+++ b/src/test/ui/issue-3521-2.stderr
@@ -0,0 +1,11 @@
+error[E0434]: can't capture dynamic environment in a fn item
+  --> $DIR/issue-3521-2.rs:14:23
+   |
+LL |     static y: isize = foo + 1;
+   |                       ^^^
+   |
+   = help: use the `|| { ... }` closure form instead
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0434`.
diff --git a/src/test/compile-fail/issue-3521.rs b/src/test/ui/issue-3521.rs
index 78af11a0b58..78af11a0b58 100644
--- a/src/test/compile-fail/issue-3521.rs
+++ b/src/test/ui/issue-3521.rs
diff --git a/src/test/ui/issue-3521.stderr b/src/test/ui/issue-3521.stderr
new file mode 100644
index 00000000000..f4a1ef5cefa
--- /dev/null
+++ b/src/test/ui/issue-3521.stderr
@@ -0,0 +1,9 @@
+error[E0435]: attempt to use a non-constant value in a constant
+  --> $DIR/issue-3521.rs:16:15
+   |
+LL |         Bar = foo
+   |               ^^^ non-constant value
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0435`.
diff --git a/src/test/compile-fail/issue-35450.rs b/src/test/ui/issue-35450.rs
index 5f54f269c6c..5f54f269c6c 100644
--- a/src/test/compile-fail/issue-35450.rs
+++ b/src/test/ui/issue-35450.rs
diff --git a/src/test/ui/issue-35450.stderr b/src/test/ui/issue-35450.stderr
new file mode 100644
index 00000000000..b8fc7d2054c
--- /dev/null
+++ b/src/test/ui/issue-35450.stderr
@@ -0,0 +1,8 @@
+error: expected expression, found `$`
+  --> $DIR/issue-35450.rs:14:8
+   |
+LL |     m!($t); //~ ERROR expected expression
+   |        ^ expected expression
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-35570.rs b/src/test/ui/issue-35570.rs
index 092bf00ddd6..092bf00ddd6 100644
--- a/src/test/compile-fail/issue-35570.rs
+++ b/src/test/ui/issue-35570.rs
diff --git a/src/test/ui/issue-35570.stderr b/src/test/ui/issue-35570.stderr
new file mode 100644
index 00000000000..349693f29d5
--- /dev/null
+++ b/src/test/ui/issue-35570.stderr
@@ -0,0 +1,10 @@
+error: compilation successful
+  --> $DIR/issue-35570.rs:38:1
+   |
+LL | / fn main() { //~ ERROR compilation successful
+LL | |     takes_lifetime(foo);
+LL | | }
+   | |_^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-35668.rs b/src/test/ui/issue-35668.rs
index 17fd77b6df3..17fd77b6df3 100644
--- a/src/test/compile-fail/issue-35668.rs
+++ b/src/test/ui/issue-35668.rs
diff --git a/src/test/ui/issue-35668.stderr b/src/test/ui/issue-35668.stderr
new file mode 100644
index 00000000000..51d6b040240
--- /dev/null
+++ b/src/test/ui/issue-35668.stderr
@@ -0,0 +1,11 @@
+error[E0369]: binary operation `*` cannot be applied to type `&T`
+  --> $DIR/issue-35668.rs:12:22
+   |
+LL |     a.iter().map(|a| a*a)
+   |                      ^^^
+   |
+   = note: an implementation of `std::ops::Mul` might be missing for `&T`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0369`.
diff --git a/src/test/compile-fail/issue-35988.rs b/src/test/ui/issue-35988.rs
index 5909322ff1f..5909322ff1f 100644
--- a/src/test/compile-fail/issue-35988.rs
+++ b/src/test/ui/issue-35988.rs
diff --git a/src/test/ui/issue-35988.stderr b/src/test/ui/issue-35988.stderr
new file mode 100644
index 00000000000..35452fcf392
--- /dev/null
+++ b/src/test/ui/issue-35988.stderr
@@ -0,0 +1,13 @@
+error[E0277]: the size for values of type `[std::boxed::Box<E>]` cannot be known at compilation time
+  --> $DIR/issue-35988.rs:12:7
+   |
+LL |     V([Box<E>]),
+   |       ^^^^^^^^ doesn't have a size known at compile-time
+   |
+   = help: the trait `std::marker::Sized` is not implemented for `[std::boxed::Box<E>]`
+   = note: to learn more, visit <https://doc.rust-lang.org/book/second-edition/ch19-04-advanced-types.html#dynamically-sized-types--sized>
+   = note: no field of an enum variant may have a dynamically sized type
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/compile-fail/issue-3601.rs b/src/test/ui/issue-3601.rs
index cc69a76e043..cc69a76e043 100644
--- a/src/test/compile-fail/issue-3601.rs
+++ b/src/test/ui/issue-3601.rs
diff --git a/src/test/ui/issue-3601.stderr b/src/test/ui/issue-3601.stderr
new file mode 100644
index 00000000000..6c28ccb2ee8
--- /dev/null
+++ b/src/test/ui/issue-3601.stderr
@@ -0,0 +1,9 @@
+error[E0004]: non-exhaustive patterns: `_` not covered
+  --> $DIR/issue-3601.rs:40:44
+   |
+LL |         box NodeKind::Element(ed) => match ed.kind { //~ ERROR non-exhaustive patterns
+   |                                            ^^^^^^^ pattern `_` not covered
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0004`.
diff --git a/src/test/ui/issue-36082.ast.nll.stderr b/src/test/ui/issue-36082.ast.nll.stderr
new file mode 100644
index 00000000000..cf280bd80b2
--- /dev/null
+++ b/src/test/ui/issue-36082.ast.nll.stderr
@@ -0,0 +1,14 @@
+error[E0597]: borrowed value does not live long enough
+  --> $DIR/issue-36082.rs:23:19
+   |
+LL |     let val: &_ = x.borrow().0;
+   |                   ^^^^^^^^^^  - temporary value only lives until here
+   |                   |
+   |                   temporary value does not live long enough
+...
+LL |     println!("{}", val);
+   |                    --- borrow later used here
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0597`.
diff --git a/src/test/ui/issue-36082.ast.stderr b/src/test/ui/issue-36082.ast.stderr
new file mode 100644
index 00000000000..b79958de5cb
--- /dev/null
+++ b/src/test/ui/issue-36082.ast.stderr
@@ -0,0 +1,16 @@
+error[E0597]: borrowed value does not live long enough
+  --> $DIR/issue-36082.rs:23:19
+   |
+LL |     let val: &_ = x.borrow().0;
+   |                   ^^^^^^^^^^  - temporary value dropped here while still borrowed
+   |                   |
+   |                   temporary value does not live long enough
+...
+LL | }
+   | - temporary value needs to live until here
+   |
+   = note: consider using a `let` binding to increase its lifetime
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0597`.
diff --git a/src/test/ui/issue-36082.mir.stderr b/src/test/ui/issue-36082.mir.stderr
new file mode 100644
index 00000000000..cf280bd80b2
--- /dev/null
+++ b/src/test/ui/issue-36082.mir.stderr
@@ -0,0 +1,14 @@
+error[E0597]: borrowed value does not live long enough
+  --> $DIR/issue-36082.rs:23:19
+   |
+LL |     let val: &_ = x.borrow().0;
+   |                   ^^^^^^^^^^  - temporary value only lives until here
+   |                   |
+   |                   temporary value does not live long enough
+...
+LL |     println!("{}", val);
+   |                    --- borrow later used here
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0597`.
diff --git a/src/test/compile-fail/issue-36082.rs b/src/test/ui/issue-36082.rs
index ed6a2f85fbe..ed6a2f85fbe 100644
--- a/src/test/compile-fail/issue-36082.rs
+++ b/src/test/ui/issue-36082.rs
diff --git a/src/test/compile-fail/issue-36116.rs b/src/test/ui/issue-36116.rs
index 3afbfa61984..3afbfa61984 100644
--- a/src/test/compile-fail/issue-36116.rs
+++ b/src/test/ui/issue-36116.rs
diff --git a/src/test/ui/issue-36116.stderr b/src/test/ui/issue-36116.stderr
new file mode 100644
index 00000000000..df69dcb0d92
--- /dev/null
+++ b/src/test/ui/issue-36116.stderr
@@ -0,0 +1,20 @@
+warning: unnecessary path disambiguator
+  --> $DIR/issue-36116.rs:30:50
+   |
+LL |     let f = Some(Foo { _a: 42 }).map(|a| a as Foo::<i32>); //~ WARN unnecessary path disambiguator
+   |                                                  ^^ try removing `::`
+
+warning: unnecessary path disambiguator
+  --> $DIR/issue-36116.rs:31:15
+   |
+LL |     let g: Foo::<i32> = Foo { _a: 42 }; //~ WARN unnecessary path disambiguator
+   |               ^^ try removing `::`
+
+error: compilation successful
+  --> $DIR/issue-36116.rs:37:1
+   |
+LL | fn main() {} //~ ERROR compilation successful
+   | ^^^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-36299.rs b/src/test/ui/issue-36299.rs
index 88ac74cb09e..88ac74cb09e 100644
--- a/src/test/compile-fail/issue-36299.rs
+++ b/src/test/ui/issue-36299.rs
diff --git a/src/test/ui/issue-36299.stderr b/src/test/ui/issue-36299.stderr
new file mode 100644
index 00000000000..faa20253b9b
--- /dev/null
+++ b/src/test/ui/issue-36299.stderr
@@ -0,0 +1,19 @@
+error[E0392]: parameter `'a` is never used
+  --> $DIR/issue-36299.rs:11:12
+   |
+LL | struct Foo<'a, A> {}
+   |            ^^ unused type parameter
+   |
+   = help: consider removing `'a` or using a marker such as `std::marker::PhantomData`
+
+error[E0392]: parameter `A` is never used
+  --> $DIR/issue-36299.rs:11:16
+   |
+LL | struct Foo<'a, A> {}
+   |                ^ unused type parameter
+   |
+   = help: consider removing `A` or using a marker such as `std::marker::PhantomData`
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0392`.
diff --git a/src/test/compile-fail/issue-36379.rs b/src/test/ui/issue-36379.rs
index b20765815e0..b20765815e0 100644
--- a/src/test/compile-fail/issue-36379.rs
+++ b/src/test/ui/issue-36379.rs
diff --git a/src/test/ui/issue-36379.stderr b/src/test/ui/issue-36379.stderr
new file mode 100644
index 00000000000..b06591f411e
--- /dev/null
+++ b/src/test/ui/issue-36379.stderr
@@ -0,0 +1,8 @@
+error: compilation successful
+  --> $DIR/issue-36379.rs:16:1
+   |
+LL | fn main() { } //~ ERROR compilation successful
+   | ^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-36617.rs b/src/test/ui/issue-36617.rs
index 9f5eeb1a45d..9f5eeb1a45d 100644
--- a/src/test/compile-fail/issue-36617.rs
+++ b/src/test/ui/issue-36617.rs
diff --git a/src/test/ui/issue-36617.stderr b/src/test/ui/issue-36617.stderr
new file mode 100644
index 00000000000..efd58235282
--- /dev/null
+++ b/src/test/ui/issue-36617.stderr
@@ -0,0 +1,8 @@
+error: `derive` may only be applied to structs, enums and unions
+  --> $DIR/issue-36617.rs:11:1
+   |
+LL | #![derive(Copy)] //~ ERROR `derive` may only be applied to structs, enums and unions
+   | ^^^^^^^^^^^^^^^^ help: try an outer attribute: `#[derive(Copy)]`
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-36638.rs b/src/test/ui/issue-36638.rs
index 5e43536ef3f..5e43536ef3f 100644
--- a/src/test/compile-fail/issue-36638.rs
+++ b/src/test/ui/issue-36638.rs
diff --git a/src/test/ui/issue-36638.stderr b/src/test/ui/issue-36638.stderr
new file mode 100644
index 00000000000..d111fb469bf
--- /dev/null
+++ b/src/test/ui/issue-36638.stderr
@@ -0,0 +1,14 @@
+error: expected identifier, found keyword `Self`
+  --> $DIR/issue-36638.rs:13:12
+   |
+LL | struct Foo<Self>(Self);
+   |            ^^^^ expected identifier, found keyword
+
+error: expected identifier, found keyword `Self`
+  --> $DIR/issue-36638.rs:16:11
+   |
+LL | trait Bar<Self> {}
+   |           ^^^^ expected identifier, found keyword
+
+error: aborting due to 2 previous errors
+
diff --git a/src/test/compile-fail/issue-3668-2.rs b/src/test/ui/issue-3668-2.rs
index fe46877e8d3..fe46877e8d3 100644
--- a/src/test/compile-fail/issue-3668-2.rs
+++ b/src/test/ui/issue-3668-2.rs
diff --git a/src/test/ui/issue-3668-2.stderr b/src/test/ui/issue-3668-2.stderr
new file mode 100644
index 00000000000..e78a2791907
--- /dev/null
+++ b/src/test/ui/issue-3668-2.stderr
@@ -0,0 +1,11 @@
+error[E0434]: can't capture dynamic environment in a fn item
+  --> $DIR/issue-3668-2.rs:12:27
+   |
+LL |     static child: isize = x + 1;
+   |                           ^
+   |
+   = help: use the `|| { ... }` closure form instead
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0434`.
diff --git a/src/test/compile-fail/issue-3668.rs b/src/test/ui/issue-3668.rs
index 00f64414a9e..00f64414a9e 100644
--- a/src/test/compile-fail/issue-3668.rs
+++ b/src/test/ui/issue-3668.rs
diff --git a/src/test/ui/issue-3668.stderr b/src/test/ui/issue-3668.stderr
new file mode 100644
index 00000000000..73eaf57c955
--- /dev/null
+++ b/src/test/ui/issue-3668.stderr
@@ -0,0 +1,11 @@
+error[E0434]: can't capture dynamic environment in a fn item
+  --> $DIR/issue-3668.rs:18:34
+   |
+LL |        static childVal: Box<P> = self.child.get();
+   |                                  ^^^^
+   |
+   = help: use the `|| { ... }` closure form instead
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0434`.
diff --git a/src/test/compile-fail/issue-3680.rs b/src/test/ui/issue-3680.rs
index e698e6da529..e698e6da529 100644
--- a/src/test/compile-fail/issue-3680.rs
+++ b/src/test/ui/issue-3680.rs
diff --git a/src/test/ui/issue-3680.stderr b/src/test/ui/issue-3680.stderr
new file mode 100644
index 00000000000..4fea4789dbd
--- /dev/null
+++ b/src/test/ui/issue-3680.stderr
@@ -0,0 +1,12 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-3680.rs:13:9
+   |
+LL |         Err(_) => ()
+   |         ^^^^^^ expected enum `std::option::Option`, found enum `std::result::Result`
+   |
+   = note: expected type `std::option::Option<_>`
+              found type `std::result::Result<_, _>`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-36839.rs b/src/test/ui/issue-36839.rs
index 3e34b250672..3e34b250672 100644
--- a/src/test/compile-fail/issue-36839.rs
+++ b/src/test/ui/issue-36839.rs
diff --git a/src/test/ui/issue-36839.stderr b/src/test/ui/issue-36839.stderr
new file mode 100644
index 00000000000..dd78668801c
--- /dev/null
+++ b/src/test/ui/issue-36839.stderr
@@ -0,0 +1,10 @@
+error: compilation successful
+  --> $DIR/issue-36839.rs:30:1
+   |
+LL | / fn main() { //~ ERROR compilation successful
+LL | |     let _m: &Broken<Assoc=()> = &();
+LL | | }
+   | |_^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-3702-2.rs b/src/test/ui/issue-3702-2.rs
index 325f05841f4..325f05841f4 100644
--- a/src/test/compile-fail/issue-3702-2.rs
+++ b/src/test/ui/issue-3702-2.rs
diff --git a/src/test/ui/issue-3702-2.stderr b/src/test/ui/issue-3702-2.stderr
new file mode 100644
index 00000000000..9ec400db47f
--- /dev/null
+++ b/src/test/ui/issue-3702-2.stderr
@@ -0,0 +1,20 @@
+error[E0034]: multiple applicable items in scope
+  --> $DIR/issue-3702-2.rs:26:14
+   |
+LL |         self.to_int() + other.to_int() //~ ERROR multiple applicable items in scope
+   |              ^^^^^^ multiple `to_int` found
+   |
+note: candidate #1 is defined in an impl of the trait `ToPrimitive` for the type `isize`
+  --> $DIR/issue-3702-2.rs:12:5
+   |
+LL |     fn to_int(&self) -> isize { 0 }
+   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
+note: candidate #2 is defined in an impl of the trait `Add` for the type `isize`
+  --> $DIR/issue-3702-2.rs:24:5
+   |
+LL |     fn to_int(&self) -> isize { *self }
+   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0034`.
diff --git a/src/test/compile-fail/issue-37026.rs b/src/test/ui/issue-37026.rs
index 95fd5d1222e..95fd5d1222e 100644
--- a/src/test/compile-fail/issue-37026.rs
+++ b/src/test/ui/issue-37026.rs
diff --git a/src/test/ui/issue-37026.stderr b/src/test/ui/issue-37026.stderr
new file mode 100644
index 00000000000..c53ec5b55ce
--- /dev/null
+++ b/src/test/ui/issue-37026.stderr
@@ -0,0 +1,21 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-37026.rs:16:9
+   |
+LL |     let empty_struct::XEmpty2 = (); //~ ERROR mismatched types
+   |         ^^^^^^^^^^^^^^^^^^^^^ expected (), found struct `empty_struct::XEmpty2`
+   |
+   = note: expected type `()`
+              found type `empty_struct::XEmpty2`
+
+error[E0308]: mismatched types
+  --> $DIR/issue-37026.rs:17:9
+   |
+LL |     let empty_struct::XEmpty6(..) = (); //~ ERROR mismatched types
+   |         ^^^^^^^^^^^^^^^^^^^^^^^^^ expected (), found struct `empty_struct::XEmpty6`
+   |
+   = note: expected type `()`
+              found type `empty_struct::XEmpty6`
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-37051.rs b/src/test/ui/issue-37051.rs
index ab08e1899a0..ab08e1899a0 100644
--- a/src/test/compile-fail/issue-37051.rs
+++ b/src/test/ui/issue-37051.rs
diff --git a/src/test/ui/issue-37051.stderr b/src/test/ui/issue-37051.stderr
new file mode 100644
index 00000000000..b0404088d4d
--- /dev/null
+++ b/src/test/ui/issue-37051.stderr
@@ -0,0 +1,9 @@
+error: compilation successful
+  --> $DIR/issue-37051.rs:28:1
+   |
+LL | / fn main() { //~ ERROR compilation successful
+LL | | }
+   | |_^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-3707.rs b/src/test/ui/issue-3707.rs
index ad56b125b08..ad56b125b08 100644
--- a/src/test/compile-fail/issue-3707.rs
+++ b/src/test/ui/issue-3707.rs
diff --git a/src/test/ui/issue-3707.stderr b/src/test/ui/issue-3707.stderr
new file mode 100644
index 00000000000..c6d28fecaf9
--- /dev/null
+++ b/src/test/ui/issue-3707.stderr
@@ -0,0 +1,19 @@
+error[E0599]: no method named `boom` found for type `&Obj` in the current scope
+  --> $DIR/issue-3707.rs:20:14
+   |
+LL |         self.boom(); //~ ERROR no method named `boom` found for type `&Obj` in the current scope
+   |         -----^^^^
+   |         |    |
+   |         |    this is an associated function, not a method
+   |         help: use associated function syntax instead: `&Obj::boom`
+   |
+   = note: found the following associated functions; to be used as methods, functions must have a `self` parameter
+note: the candidate is defined in an impl for the type `Obj`
+  --> $DIR/issue-3707.rs:16:5
+   |
+LL |     pub fn boom() -> bool {
+   |     ^^^^^^^^^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0599`.
diff --git a/src/test/compile-fail/issue-37323.rs b/src/test/ui/issue-37323.rs
index 98806cdd1b9..98806cdd1b9 100644
--- a/src/test/compile-fail/issue-37323.rs
+++ b/src/test/ui/issue-37323.rs
diff --git a/src/test/ui/issue-37323.stderr b/src/test/ui/issue-37323.stderr
new file mode 100644
index 00000000000..a83923a5910
--- /dev/null
+++ b/src/test/ui/issue-37323.stderr
@@ -0,0 +1,20 @@
+error[E0491]: in type `&'a NestedB<'b>`, reference has a longer lifetime than the data it references
+  --> $DIR/issue-37323.rs:19:5
+   |
+LL |     x: &'a NestedB<'b>
+   |     ^^^^^^^^^^^^^^^^^^
+   |
+note: the pointer is valid for the lifetime 'a as defined on the struct at 18:16
+  --> $DIR/issue-37323.rs:18:16
+   |
+LL | struct NestedA<'a, 'b> {
+   |                ^^
+note: but the referenced data is only valid for the lifetime 'b as defined on the struct at 18:20
+  --> $DIR/issue-37323.rs:18:20
+   |
+LL | struct NestedA<'a, 'b> {
+   |                    ^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0491`.
diff --git a/src/test/compile-fail/issue-37366.rs b/src/test/ui/issue-37366.rs
index 2a4808fb186..2a4808fb186 100644
--- a/src/test/compile-fail/issue-37366.rs
+++ b/src/test/ui/issue-37366.rs
diff --git a/src/test/ui/issue-37366.stderr b/src/test/ui/issue-37366.stderr
new file mode 100644
index 00000000000..8667feccf99
--- /dev/null
+++ b/src/test/ui/issue-37366.stderr
@@ -0,0 +1,9 @@
+error: compilation successful
+  --> $DIR/issue-37366.rs:25:1
+   |
+LL | / fn main() { //~ ERROR compilation successful
+LL | | }
+   | |_^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-37510.rs b/src/test/ui/issue-37510.rs
index 53c91f323d0..53c91f323d0 100644
--- a/src/test/compile-fail/issue-37510.rs
+++ b/src/test/ui/issue-37510.rs
diff --git a/src/test/ui/issue-37510.stderr b/src/test/ui/issue-37510.stderr
new file mode 100644
index 00000000000..48db0d5e202
--- /dev/null
+++ b/src/test/ui/issue-37510.stderr
@@ -0,0 +1,14 @@
+error: compilation successful
+  --> $DIR/issue-37510.rs:16:1
+   |
+LL | / fn main() { //~ ERROR compilation successful
+LL | |     let opt = Some(92);
+LL | |     let mut x = 62;
+LL | |
+...  |
+LL | |     }
+LL | | }
+   | |_^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-37515.rs b/src/test/ui/issue-37515.rs
index d5733f98193..d5733f98193 100644
--- a/src/test/compile-fail/issue-37515.rs
+++ b/src/test/ui/issue-37515.rs
diff --git a/src/test/ui/issue-37515.stderr b/src/test/ui/issue-37515.stderr
new file mode 100644
index 00000000000..68e983f23b0
--- /dev/null
+++ b/src/test/ui/issue-37515.stderr
@@ -0,0 +1,22 @@
+warning: type alias is never used: `Z`
+  --> $DIR/issue-37515.rs:14:1
+   |
+LL | type Z = for<'x> Send;
+   | ^^^^^^^^^^^^^^^^^^^^^^
+   |
+note: lint level defined here
+  --> $DIR/issue-37515.rs:12:9
+   |
+LL | #![warn(unused)]
+   |         ^^^^^^
+   = note: #[warn(dead_code)] implied by #[warn(unused)]
+
+error: compilation successful
+  --> $DIR/issue-37515.rs:18:1
+   |
+LL | / fn main() { //~ ERROR compilation successful
+LL | | }
+   | |_^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-37534.rs b/src/test/ui/issue-37534.rs
index 70c8f92de63..70c8f92de63 100644
--- a/src/test/compile-fail/issue-37534.rs
+++ b/src/test/ui/issue-37534.rs
diff --git a/src/test/ui/issue-37534.stderr b/src/test/ui/issue-37534.stderr
new file mode 100644
index 00000000000..c4fc9db31f5
--- /dev/null
+++ b/src/test/ui/issue-37534.stderr
@@ -0,0 +1,28 @@
+error[E0405]: cannot find trait `Hash` in this scope
+  --> $DIR/issue-37534.rs:11:16
+   |
+LL | struct Foo<T: ?Hash> { }
+   |                ^^^^ not found in this scope
+help: possible candidate is found in another module, you can import it into scope
+   |
+LL | use std::hash::Hash;
+   |
+
+warning: default bound relaxed for a type parameter, but this does nothing because the given bound is not a default. Only `?Sized` is supported
+  --> $DIR/issue-37534.rs:11:12
+   |
+LL | struct Foo<T: ?Hash> { }
+   |            ^
+
+error[E0392]: parameter `T` is never used
+  --> $DIR/issue-37534.rs:11:12
+   |
+LL | struct Foo<T: ?Hash> { }
+   |            ^ unused type parameter
+   |
+   = help: consider removing `T` or using a marker such as `std::marker::PhantomData`
+
+error: aborting due to 2 previous errors
+
+Some errors occurred: E0392, E0405.
+For more information about an error, try `rustc --explain E0392`.
diff --git a/src/test/compile-fail/issue-37550.rs b/src/test/ui/issue-37550.rs
index af1f6ef5ed4..af1f6ef5ed4 100644
--- a/src/test/compile-fail/issue-37550.rs
+++ b/src/test/ui/issue-37550.rs
diff --git a/src/test/ui/issue-37550.stderr b/src/test/ui/issue-37550.stderr
new file mode 100644
index 00000000000..7468510de6a
--- /dev/null
+++ b/src/test/ui/issue-37550.stderr
@@ -0,0 +1,35 @@
+error[E0658]: let bindings in constant functions are unstable (see issue #48821)
+  --> $DIR/issue-37550.rs:14:13
+   |
+LL |     let t = true;
+   |             ^^^^
+   |
+   = help: add #![feature(const_let)] to the crate attributes to enable
+
+error[E0658]: statements in constant functions are unstable (see issue #48821)
+  --> $DIR/issue-37550.rs:14:13
+   |
+LL |     let t = true;
+   |             ^^^^
+   |
+   = help: add #![feature(const_let)] to the crate attributes to enable
+
+error[E0658]: let bindings in constant functions are unstable (see issue #48821)
+  --> $DIR/issue-37550.rs:17:13
+   |
+LL |     let x = || t;
+   |             ^^^^
+   |
+   = help: add #![feature(const_let)] to the crate attributes to enable
+
+error[E0658]: statements in constant functions are unstable (see issue #48821)
+  --> $DIR/issue-37550.rs:17:13
+   |
+LL |     let x = || t;
+   |             ^^^^
+   |
+   = help: add #![feature(const_let)] to the crate attributes to enable
+
+error: aborting due to 4 previous errors
+
+For more information about this error, try `rustc --explain E0658`.
diff --git a/src/test/compile-fail/issue-37576.rs b/src/test/ui/issue-37576.rs
index e3c1ada878d..e3c1ada878d 100644
--- a/src/test/compile-fail/issue-37576.rs
+++ b/src/test/ui/issue-37576.rs
diff --git a/src/test/ui/issue-37576.stderr b/src/test/ui/issue-37576.stderr
new file mode 100644
index 00000000000..b663c8b8a28
--- /dev/null
+++ b/src/test/ui/issue-37576.stderr
@@ -0,0 +1,51 @@
+error[E0590]: `break` or `continue` with no label in the condition of a `while` loop
+  --> $DIR/issue-37576.rs:13:11
+   |
+LL |     while break {}
+   |           ^^^^^ unlabeled `break` in the condition of a `while` loop
+
+error[E0590]: `break` or `continue` with no label in the condition of a `while` loop
+  --> $DIR/issue-37576.rs:17:22
+   |
+LL |     while let true = break {}
+   |                      ^^^^^ unlabeled `break` in the condition of a `while` loop
+
+error[E0590]: `break` or `continue` with no label in the condition of a `while` loop
+  --> $DIR/issue-37576.rs:21:18
+   |
+LL |     loop { while break {} }
+   |                  ^^^^^ unlabeled `break` in the condition of a `while` loop
+
+error[E0590]: `break` or `continue` with no label in the condition of a `while` loop
+  --> $DIR/issue-37576.rs:29:15
+   |
+LL |         while break {}
+   |               ^^^^^ unlabeled `break` in the condition of a `while` loop
+
+error[E0590]: `break` or `continue` with no label in the condition of a `while` loop
+  --> $DIR/issue-37576.rs:35:11
+   |
+LL |     while continue {}
+   |           ^^^^^^^^ unlabeled `continue` in the condition of a `while` loop
+
+error[E0590]: `break` or `continue` with no label in the condition of a `while` loop
+  --> $DIR/issue-37576.rs:39:22
+   |
+LL |     while let true = continue {}
+   |                      ^^^^^^^^ unlabeled `continue` in the condition of a `while` loop
+
+error[E0590]: `break` or `continue` with no label in the condition of a `while` loop
+  --> $DIR/issue-37576.rs:43:18
+   |
+LL |     loop { while continue {} }
+   |                  ^^^^^^^^ unlabeled `continue` in the condition of a `while` loop
+
+error[E0590]: `break` or `continue` with no label in the condition of a `while` loop
+  --> $DIR/issue-37576.rs:51:15
+   |
+LL |         while continue {}
+   |               ^^^^^^^^ unlabeled `continue` in the condition of a `while` loop
+
+error: aborting due to 8 previous errors
+
+For more information about this error, try `rustc --explain E0590`.
diff --git a/src/test/compile-fail/issue-3763.rs b/src/test/ui/issue-3763.rs
index 851f5dfeabe..851f5dfeabe 100644
--- a/src/test/compile-fail/issue-3763.rs
+++ b/src/test/ui/issue-3763.rs
diff --git a/src/test/ui/issue-3763.stderr b/src/test/ui/issue-3763.stderr
new file mode 100644
index 00000000000..0dd7d6819e8
--- /dev/null
+++ b/src/test/ui/issue-3763.stderr
@@ -0,0 +1,34 @@
+error[E0616]: field `priv_field` of struct `my_mod::MyStruct` is private
+  --> $DIR/issue-3763.rs:25:19
+   |
+LL |     let _woohoo = (&my_struct).priv_field;
+   |                   ^^^^^^^^^^^^^^^^^^^^^^^
+
+error[E0616]: field `priv_field` of struct `my_mod::MyStruct` is private
+  --> $DIR/issue-3763.rs:28:19
+   |
+LL |     let _woohoo = (Box::new(my_struct)).priv_field;
+   |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+error[E0624]: method `happyfun` is private
+  --> $DIR/issue-3763.rs:31:18
+   |
+LL |     (&my_struct).happyfun();               //~ ERROR method `happyfun` is private
+   |                  ^^^^^^^^
+
+error[E0624]: method `happyfun` is private
+  --> $DIR/issue-3763.rs:33:27
+   |
+LL |     (Box::new(my_struct)).happyfun();          //~ ERROR method `happyfun` is private
+   |                           ^^^^^^^^
+
+error[E0616]: field `priv_field` of struct `my_mod::MyStruct` is private
+  --> $DIR/issue-3763.rs:34:16
+   |
+LL |     let nope = my_struct.priv_field;
+   |                ^^^^^^^^^^^^^^^^^^^^
+
+error: aborting due to 5 previous errors
+
+Some errors occurred: E0616, E0624.
+For more information about an error, try `rustc --explain E0616`.
diff --git a/src/test/compile-fail/issue-37665.rs b/src/test/ui/issue-37665.rs
index 81ed4375e77..81ed4375e77 100644
--- a/src/test/compile-fail/issue-37665.rs
+++ b/src/test/ui/issue-37665.rs
diff --git a/src/test/ui/issue-37665.stderr b/src/test/ui/issue-37665.stderr
new file mode 100644
index 00000000000..cdf9129c002
--- /dev/null
+++ b/src/test/ui/issue-37665.stderr
@@ -0,0 +1,12 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-37665.rs:20:17
+   |
+LL |     let x: () = 0; //~ ERROR: mismatched types
+   |                 ^ expected (), found integral variable
+   |
+   = note: expected type `()`
+              found type `{integer}`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-37887.rs b/src/test/ui/issue-37887.rs
index f120bbbfc9f..f120bbbfc9f 100644
--- a/src/test/compile-fail/issue-37887.rs
+++ b/src/test/ui/issue-37887.rs
diff --git a/src/test/ui/issue-37887.stderr b/src/test/ui/issue-37887.stderr
new file mode 100644
index 00000000000..8448466087d
--- /dev/null
+++ b/src/test/ui/issue-37887.stderr
@@ -0,0 +1,18 @@
+error[E0432]: unresolved import `libc`
+  --> $DIR/issue-37887.rs:13:9
+   |
+LL |     use libc::*; //~ ERROR unresolved import
+   |         ^^^^ Maybe a missing `extern crate libc;`?
+
+error[E0658]: use of unstable library feature 'libc': use `libc` from crates.io (see issue #27783)
+  --> $DIR/issue-37887.rs:12:5
+   |
+LL |     extern crate libc; //~ ERROR use of unstable
+   |     ^^^^^^^^^^^^^^^^^^
+   |
+   = help: add #![feature(libc)] to the crate attributes to enable
+
+error: aborting due to 2 previous errors
+
+Some errors occurred: E0432, E0658.
+For more information about an error, try `rustc --explain E0432`.
diff --git a/src/test/compile-fail/issue-38160.rs b/src/test/ui/issue-38160.rs
index 311d0ceb4d3..311d0ceb4d3 100644
--- a/src/test/compile-fail/issue-38160.rs
+++ b/src/test/ui/issue-38160.rs
diff --git a/src/test/ui/issue-38160.stderr b/src/test/ui/issue-38160.stderr
new file mode 100644
index 00000000000..1277d84a032
--- /dev/null
+++ b/src/test/ui/issue-38160.stderr
@@ -0,0 +1,8 @@
+error: compilation successful
+  --> $DIR/issue-38160.rs:31:1
+   |
+LL | fn main() {} //~ ERROR compilation successful
+   | ^^^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-3820.rs b/src/test/ui/issue-3820.rs
index 28de76f18da..28de76f18da 100644
--- a/src/test/compile-fail/issue-3820.rs
+++ b/src/test/ui/issue-3820.rs
diff --git a/src/test/ui/issue-3820.stderr b/src/test/ui/issue-3820.stderr
new file mode 100644
index 00000000000..cdd14e9da7b
--- /dev/null
+++ b/src/test/ui/issue-3820.stderr
@@ -0,0 +1,11 @@
+error[E0369]: binary operation `*` cannot be applied to type `Thing`
+  --> $DIR/issue-3820.rs:24:13
+   |
+LL |     let w = u * 3; //~ ERROR binary operation `*` cannot be applied to type `Thing`
+   |             ^^^^^
+   |
+   = note: an implementation of `std::ops::Mul` might be missing for `Thing`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0369`.
diff --git a/src/test/compile-fail/issue-38293.rs b/src/test/ui/issue-38293.rs
index 1867bafa7e3..1867bafa7e3 100644
--- a/src/test/compile-fail/issue-38293.rs
+++ b/src/test/ui/issue-38293.rs
diff --git a/src/test/ui/issue-38293.stderr b/src/test/ui/issue-38293.stderr
new file mode 100644
index 00000000000..73f5425cfc0
--- /dev/null
+++ b/src/test/ui/issue-38293.stderr
@@ -0,0 +1,20 @@
+error[E0432]: unresolved import `foo::f`
+  --> $DIR/issue-38293.rs:16:14
+   |
+LL | use foo::f::{self}; //~ ERROR unresolved import `foo::f`
+   |              ^^^^ no `f` in `foo`
+
+error[E0423]: expected function, found module `baz`
+  --> $DIR/issue-38293.rs:25:5
+   |
+LL |     baz(); //~ ERROR expected function, found module `baz`
+   |     ^^^ not a function
+help: possible better candidate is found in another module, you can import it into scope
+   |
+LL | use bar::baz;
+   |
+
+error: aborting due to 2 previous errors
+
+Some errors occurred: E0423, E0432.
+For more information about an error, try `rustc --explain E0423`.
diff --git a/src/test/compile-fail/issue-38381.rs b/src/test/ui/issue-38381.rs
index 6b7dde117df..6b7dde117df 100644
--- a/src/test/compile-fail/issue-38381.rs
+++ b/src/test/ui/issue-38381.rs
diff --git a/src/test/ui/issue-38381.stderr b/src/test/ui/issue-38381.stderr
new file mode 100644
index 00000000000..baa6338a37e
--- /dev/null
+++ b/src/test/ui/issue-38381.stderr
@@ -0,0 +1,10 @@
+error: compilation successful
+  --> $DIR/issue-38381.rs:16:1
+   |
+LL | / fn main() { //~ ERROR compilation successful
+LL | |     let _x: fn(&i32) -> <&i32 as Deref>::Target = unimplemented!();
+LL | | }
+   | |_^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-38404.rs b/src/test/ui/issue-38404.rs
index a2b0d0a60c0..a2b0d0a60c0 100644
--- a/src/test/compile-fail/issue-38404.rs
+++ b/src/test/ui/issue-38404.rs
diff --git a/src/test/ui/issue-38404.stderr b/src/test/ui/issue-38404.stderr
new file mode 100644
index 00000000000..ac55be75f5b
--- /dev/null
+++ b/src/test/ui/issue-38404.stderr
@@ -0,0 +1,11 @@
+error[E0038]: the trait `B` cannot be made into an object
+  --> $DIR/issue-38404.rs:13:15
+   |
+LL | trait C<T>: A<B<T, Output=usize>> {}
+   |               ^^^^^^^^^^^^^^^^^^ the trait `B` cannot be made into an object
+   |
+   = note: the trait cannot use `Self` as a type parameter in the supertraits or where-clauses
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0038`.
diff --git a/src/test/compile-fail/issue-38412.rs b/src/test/ui/issue-38412.rs
index b4feadbacf7..b4feadbacf7 100644
--- a/src/test/compile-fail/issue-38412.rs
+++ b/src/test/ui/issue-38412.rs
diff --git a/src/test/ui/issue-38412.stderr b/src/test/ui/issue-38412.stderr
new file mode 100644
index 00000000000..96851436d6c
--- /dev/null
+++ b/src/test/ui/issue-38412.stderr
@@ -0,0 +1,9 @@
+error[E0532]: expected tuple struct/variant, found struct `Box`
+  --> $DIR/issue-38412.rs:12:9
+   |
+LL |     let Box(a) = loop { };
+   |         ^^^ constructor is not visible here due to private fields
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0532`.
diff --git a/src/test/compile-fail/issue-38458.rs b/src/test/ui/issue-38458.rs
index 56eb5f874cd..56eb5f874cd 100644
--- a/src/test/compile-fail/issue-38458.rs
+++ b/src/test/ui/issue-38458.rs
diff --git a/src/test/ui/issue-38458.stderr b/src/test/ui/issue-38458.stderr
new file mode 100644
index 00000000000..d870da63d89
--- /dev/null
+++ b/src/test/ui/issue-38458.stderr
@@ -0,0 +1,9 @@
+error[E0572]: return statement outside of function body
+  --> $DIR/issue-38458.rs:12:5
+   |
+LL |     return; //~ ERROR return statement outside of function body
+   |     ^^^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0572`.
diff --git a/src/test/compile-fail/issue-38604.rs b/src/test/ui/issue-38604.rs
index c1939a7707f..c1939a7707f 100644
--- a/src/test/compile-fail/issue-38604.rs
+++ b/src/test/ui/issue-38604.rs
diff --git a/src/test/ui/issue-38604.stderr b/src/test/ui/issue-38604.stderr
new file mode 100644
index 00000000000..78aee9172f5
--- /dev/null
+++ b/src/test/ui/issue-38604.stderr
@@ -0,0 +1,20 @@
+error[E0038]: the trait `Foo` cannot be made into an object
+  --> $DIR/issue-38604.rs:24:13
+   |
+LL |     let _f: Box<Foo> = //~ ERROR `Foo` cannot be made into an object
+   |             ^^^^^^^^ the trait `Foo` cannot be made into an object
+   |
+   = note: the trait cannot use `Self` as a type parameter in the supertraits or where-clauses
+
+error[E0038]: the trait `Foo` cannot be made into an object
+  --> $DIR/issue-38604.rs:25:9
+   |
+LL |         Box::new(()); //~ ERROR `Foo` cannot be made into an object
+   |         ^^^^^^^^^^^^ the trait `Foo` cannot be made into an object
+   |
+   = note: the trait cannot use `Self` as a type parameter in the supertraits or where-clauses
+   = note: required because of the requirements on the impl of `std::ops::CoerceUnsized<std::boxed::Box<dyn Foo>>` for `std::boxed::Box<()>`
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0038`.
diff --git a/src/test/compile-fail/issue-38857.rs b/src/test/ui/issue-38857.rs
index b38b1b9fdc6..b38b1b9fdc6 100644
--- a/src/test/compile-fail/issue-38857.rs
+++ b/src/test/ui/issue-38857.rs
diff --git a/src/test/ui/issue-38857.stderr b/src/test/ui/issue-38857.stderr
new file mode 100644
index 00000000000..985927c25a1
--- /dev/null
+++ b/src/test/ui/issue-38857.stderr
@@ -0,0 +1,16 @@
+error[E0433]: failed to resolve. Could not find `imp` in `sys`
+  --> $DIR/issue-38857.rs:12:23
+   |
+LL |     let a = std::sys::imp::process::process_common::StdioPipes { ..panic!() };
+   |                       ^^^ Could not find `imp` in `sys`
+
+error[E0603]: module `sys` is private
+  --> $DIR/issue-38857.rs:12:13
+   |
+LL |     let a = std::sys::imp::process::process_common::StdioPipes { ..panic!() };
+   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+error: aborting due to 2 previous errors
+
+Some errors occurred: E0433, E0603.
+For more information about an error, try `rustc --explain E0433`.
diff --git a/src/test/compile-fail/issue-38868.rs b/src/test/ui/issue-38868.rs
index c7e1da7094f..c7e1da7094f 100644
--- a/src/test/compile-fail/issue-38868.rs
+++ b/src/test/ui/issue-38868.rs
diff --git a/src/test/ui/issue-38868.stderr b/src/test/ui/issue-38868.stderr
new file mode 100644
index 00000000000..3a8ffe7d5e9
--- /dev/null
+++ b/src/test/ui/issue-38868.stderr
@@ -0,0 +1,21 @@
+error[E0366]: Implementations of Drop cannot be specialized
+  --> $DIR/issue-38868.rs:15:1
+   |
+LL | / impl Drop for List<i32> { //~ ERROR E0366
+LL | |     fn drop(&mut self) {
+LL | |         panic!()
+LL | |     }
+LL | | }
+   | |_^
+   |
+note: Use same sequence of generic type and region parameters that is on the struct/enum definition
+  --> $DIR/issue-38868.rs:11:1
+   |
+LL | / pub struct List<T> {
+LL | |     head: T,
+LL | | }
+   | |_^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0366`.
diff --git a/src/test/compile-fail/issue-38919.rs b/src/test/ui/issue-38919.rs
index e6cee4afd59..e6cee4afd59 100644
--- a/src/test/compile-fail/issue-38919.rs
+++ b/src/test/ui/issue-38919.rs
diff --git a/src/test/ui/issue-38919.stderr b/src/test/ui/issue-38919.stderr
new file mode 100644
index 00000000000..b80367d7c6c
--- /dev/null
+++ b/src/test/ui/issue-38919.stderr
@@ -0,0 +1,9 @@
+error[E0599]: no associated item named `Item` found for type `T` in the current scope
+  --> $DIR/issue-38919.rs:12:5
+   |
+LL |     T::Item; //~ ERROR no associated item named `Item` found for type `T` in the current scope
+   |     ^^^^^^^ associated item not found in `T`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0599`.
diff --git a/src/test/compile-fail/issue-38954.rs b/src/test/ui/issue-38954.rs
index 7f01ed3f820..7f01ed3f820 100644
--- a/src/test/compile-fail/issue-38954.rs
+++ b/src/test/ui/issue-38954.rs
diff --git a/src/test/ui/issue-38954.stderr b/src/test/ui/issue-38954.stderr
new file mode 100644
index 00000000000..f9c380317b4
--- /dev/null
+++ b/src/test/ui/issue-38954.stderr
@@ -0,0 +1,12 @@
+error[E0277]: the size for values of type `str` cannot be known at compilation time
+  --> $DIR/issue-38954.rs:11:23
+   |
+LL | fn _test(ref _p: str) {}
+   |                       ^ doesn't have a size known at compile-time
+   |
+   = help: the trait `std::marker::Sized` is not implemented for `str`
+   = note: to learn more, visit <https://doc.rust-lang.org/book/second-edition/ch19-04-advanced-types.html#dynamically-sized-types--sized>
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/compile-fail/issue-39211.rs b/src/test/ui/issue-39211.rs
index 96ba1c83997..96ba1c83997 100644
--- a/src/test/compile-fail/issue-39211.rs
+++ b/src/test/ui/issue-39211.rs
diff --git a/src/test/ui/issue-39211.stderr b/src/test/ui/issue-39211.stderr
new file mode 100644
index 00000000000..6859c6caeb0
--- /dev/null
+++ b/src/test/ui/issue-39211.stderr
@@ -0,0 +1,9 @@
+error[E0220]: associated type `Row` not found for `M`
+  --> $DIR/issue-39211.rs:21:17
+   |
+LL |     let a = [3; M::Row::DIM]; //~ ERROR associated type `Row` not found for `M`
+   |                 ^^^^^^^^^^^ associated type `Row` not found
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0220`.
diff --git a/src/test/compile-fail/issue-39362.rs b/src/test/ui/issue-39362.rs
index 9d8abbfc65d..9d8abbfc65d 100644
--- a/src/test/compile-fail/issue-39362.rs
+++ b/src/test/ui/issue-39362.rs
diff --git a/src/test/ui/issue-39362.stderr b/src/test/ui/issue-39362.stderr
new file mode 100644
index 00000000000..3e613553dea
--- /dev/null
+++ b/src/test/ui/issue-39362.stderr
@@ -0,0 +1,9 @@
+error[E0004]: non-exhaustive patterns: `Bar { bar: C, .. }`, `Bar { bar: D, .. }`, `Bar { bar: E, .. }` and 1 more not covered
+  --> $DIR/issue-39362.rs:20:11
+   |
+LL |     match f {
+   |           ^ patterns `Bar { bar: C, .. }`, `Bar { bar: D, .. }`, `Bar { bar: E, .. }` and 1 more not covered
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0004`.
diff --git a/src/test/compile-fail/issue-39388.rs b/src/test/ui/issue-39388.rs
index 6da04937408..6da04937408 100644
--- a/src/test/compile-fail/issue-39388.rs
+++ b/src/test/ui/issue-39388.rs
diff --git a/src/test/ui/issue-39388.stderr b/src/test/ui/issue-39388.stderr
new file mode 100644
index 00000000000..a38d38a51ad
--- /dev/null
+++ b/src/test/ui/issue-39388.stderr
@@ -0,0 +1,8 @@
+error: expected one of: `*`, `+`, or `?`
+  --> $DIR/issue-39388.rs:14:22
+   |
+LL |     (($($a:tt)*) = ($($b:tt))*) => { //~ ERROR expected one of: `*`, `+`, or `?`
+   |                      ^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-39404.rs b/src/test/ui/issue-39404.rs
index 56bfe27a4ff..56bfe27a4ff 100644
--- a/src/test/compile-fail/issue-39404.rs
+++ b/src/test/ui/issue-39404.rs
diff --git a/src/test/ui/issue-39404.stderr b/src/test/ui/issue-39404.stderr
new file mode 100644
index 00000000000..435a03c2858
--- /dev/null
+++ b/src/test/ui/issue-39404.stderr
@@ -0,0 +1,12 @@
+error: missing fragment specifier
+  --> $DIR/issue-39404.rs:13:19
+   |
+LL | macro_rules! m { ($i) => {} }
+   |                   ^^
+   |
+   = note: #[deny(missing_fragment_specifier)] on by default
+   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
+   = note: for more information, see issue #40107 <https://github.com/rust-lang/rust/issues/40107>
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-39559-2.rs b/src/test/ui/issue-39559-2.rs
index f01fd1fd8f1..f01fd1fd8f1 100644
--- a/src/test/compile-fail/issue-39559-2.rs
+++ b/src/test/ui/issue-39559-2.rs
diff --git a/src/test/ui/issue-39559-2.stderr b/src/test/ui/issue-39559-2.stderr
new file mode 100644
index 00000000000..91520a7ec08
--- /dev/null
+++ b/src/test/ui/issue-39559-2.stderr
@@ -0,0 +1,30 @@
+error[E0015]: calls in constants are limited to constant functions, tuple structs and tuple variants
+  --> $DIR/issue-39559-2.rs:24:24
+   |
+LL |     let array: [usize; Dim3::dim()]
+   |                        ^^^^^^^^^^^
+
+error[E0015]: calls in constants are limited to constant functions, tuple structs and tuple variants
+  --> $DIR/issue-39559-2.rs:27:15
+   |
+LL |         = [0; Dim3::dim()];
+   |               ^^^^^^^^^^^
+
+error[E0080]: could not evaluate repeat length
+  --> $DIR/issue-39559-2.rs:27:15
+   |
+LL |         = [0; Dim3::dim()];
+   |               ^^^^^^^^^^^ calling non-const fn `<Dim3 as Dim>::dim`
+
+error[E0080]: could not evaluate constant expression
+  --> $DIR/issue-39559-2.rs:24:16
+   |
+LL |     let array: [usize; Dim3::dim()]
+   |                ^^^^^^^^-----------^
+   |                        |
+   |                        calling non-const fn `<Dim3 as Dim>::dim`
+
+error: aborting due to 4 previous errors
+
+Some errors occurred: E0015, E0080.
+For more information about an error, try `rustc --explain E0015`.
diff --git a/src/test/compile-fail/issue-39559.rs b/src/test/ui/issue-39559.rs
index 2da21fb14bd..2da21fb14bd 100644
--- a/src/test/compile-fail/issue-39559.rs
+++ b/src/test/ui/issue-39559.rs
diff --git a/src/test/ui/issue-39559.stderr b/src/test/ui/issue-39559.stderr
new file mode 100644
index 00000000000..2ce6dfdbe44
--- /dev/null
+++ b/src/test/ui/issue-39559.stderr
@@ -0,0 +1,13 @@
+error[E0599]: no function or associated item named `dim` found for type `D` in the current scope
+  --> $DIR/issue-39559.rs:24:18
+   |
+LL |     entries: [T; D::dim()],
+   |                  ^^^^^^ function or associated item not found in `D`
+   |
+   = help: items from traits can only be used if the trait is implemented and in scope
+   = note: the following trait defines an item `dim`, perhaps you need to implement it:
+           candidate #1: `Dim`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0599`.
diff --git a/src/test/compile-fail/issue-39616.rs b/src/test/ui/issue-39616.rs
index 13b4c0896e7..13b4c0896e7 100644
--- a/src/test/compile-fail/issue-39616.rs
+++ b/src/test/ui/issue-39616.rs
diff --git a/src/test/ui/issue-39616.stderr b/src/test/ui/issue-39616.stderr
new file mode 100644
index 00000000000..eebf47afb54
--- /dev/null
+++ b/src/test/ui/issue-39616.stderr
@@ -0,0 +1,14 @@
+error: expected type, found `0`
+  --> $DIR/issue-39616.rs:11:12
+   |
+LL | fn foo(a: [0; 1]) {} //~ ERROR expected type, found `0`
+   |            ^
+
+error: expected one of `)`, `,`, `->`, `where`, or `{`, found `]`
+  --> $DIR/issue-39616.rs:11:16
+   |
+LL | fn foo(a: [0; 1]) {} //~ ERROR expected type, found `0`
+   |                ^ expected one of `)`, `,`, `->`, `where`, or `{` here
+
+error: aborting due to 2 previous errors
+
diff --git a/src/test/compile-fail/issue-39687.rs b/src/test/ui/issue-39687.rs
index 404465e6a0f..404465e6a0f 100644
--- a/src/test/compile-fail/issue-39687.rs
+++ b/src/test/ui/issue-39687.rs
diff --git a/src/test/ui/issue-39687.stderr b/src/test/ui/issue-39687.stderr
new file mode 100644
index 00000000000..9f8d0910d87
--- /dev/null
+++ b/src/test/ui/issue-39687.stderr
@@ -0,0 +1,9 @@
+error[E0229]: associated type bindings are not allowed here
+  --> $DIR/issue-39687.rs:14:16
+   |
+LL |     <fn() as Fn()>::call;
+   |                ^^ associated type not allowed here
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0229`.
diff --git a/src/test/compile-fail/issue-3973.rs b/src/test/ui/issue-3973.rs
index 67a934fccce..67a934fccce 100644
--- a/src/test/compile-fail/issue-3973.rs
+++ b/src/test/ui/issue-3973.rs
diff --git a/src/test/ui/issue-3973.stderr b/src/test/ui/issue-3973.stderr
new file mode 100644
index 00000000000..9be07614ec1
--- /dev/null
+++ b/src/test/ui/issue-3973.stderr
@@ -0,0 +1,22 @@
+error[E0407]: method `new` is not a member of trait `ToString_`
+  --> $DIR/issue-3973.rs:21:5
+   |
+LL | /     fn new(x: f64, y: f64) -> Point {
+LL | |     //~^ ERROR method `new` is not a member of trait `ToString_`
+LL | |         Point { x: x, y: y }
+LL | |     }
+   | |_____^ not a member of trait `ToString_`
+
+error[E0599]: no function or associated item named `new` found for type `Point` in the current scope
+  --> $DIR/issue-3973.rs:32:13
+   |
+LL | struct Point {
+   | ------------ function or associated item `new` not found for this
+...
+LL |     let p = Point::new(0.0, 0.0);
+   |             ^^^^^^^^^^ function or associated item not found in `Point`
+
+error: aborting due to 2 previous errors
+
+Some errors occurred: E0407, E0599.
+For more information about an error, try `rustc --explain E0407`.
diff --git a/src/test/compile-fail/issue-39848.rs b/src/test/ui/issue-39848.rs
index d5ca009d310..d5ca009d310 100644
--- a/src/test/compile-fail/issue-39848.rs
+++ b/src/test/ui/issue-39848.rs
diff --git a/src/test/ui/issue-39848.stderr b/src/test/ui/issue-39848.stderr
new file mode 100644
index 00000000000..9ca39dbaa34
--- /dev/null
+++ b/src/test/ui/issue-39848.stderr
@@ -0,0 +1,13 @@
+error: expected `{`, found `foo`
+  --> $DIR/issue-39848.rs:18:19
+   |
+LL |         if $tgt.has_$field() {}
+   |         --                 - help: try placing this code inside a block: `{ foo(); }`
+   |         |
+   |         this `if` statement has a condition, but no block
+...
+LL |     get_opt!(bar, foo);
+   |                   ^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-3993.rs b/src/test/ui/issue-3993.rs
index fae5eb51272..fae5eb51272 100644
--- a/src/test/compile-fail/issue-3993.rs
+++ b/src/test/ui/issue-3993.rs
diff --git a/src/test/ui/issue-3993.stderr b/src/test/ui/issue-3993.stderr
new file mode 100644
index 00000000000..4b569f2dea9
--- /dev/null
+++ b/src/test/ui/issue-3993.stderr
@@ -0,0 +1,9 @@
+error[E0603]: function `fly` is private
+  --> $DIR/issue-3993.rs:11:5
+   |
+LL | use zoo::fly; //~ ERROR: function `fly` is private
+   |     ^^^^^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0603`.
diff --git a/src/test/compile-fail/issue-39970.rs b/src/test/ui/issue-39970.rs
index 65ea1baa4a1..65ea1baa4a1 100644
--- a/src/test/compile-fail/issue-39970.rs
+++ b/src/test/ui/issue-39970.rs
diff --git a/src/test/ui/issue-39970.stderr b/src/test/ui/issue-39970.stderr
new file mode 100644
index 00000000000..397d7b8e650
--- /dev/null
+++ b/src/test/ui/issue-39970.stderr
@@ -0,0 +1,18 @@
+error[E0271]: type mismatch resolving `for<'a> <() as Array<'a>>::Element == ()`
+  --> $DIR/issue-39970.rs:29:5
+   |
+LL |     <() as Visit>::visit();
+   |     ^^^^^^^^^^^^^^^^^^^^ expected &(), found ()
+   |
+   = note: expected type `&()`
+              found type `()`
+   = note: required because of the requirements on the impl of `Visit` for `()`
+note: required by `Visit::visit`
+  --> $DIR/issue-39970.rs:16:5
+   |
+LL |     fn visit() {}
+   |     ^^^^^^^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0271`.
diff --git a/src/test/compile-fail/issue-39974.rs b/src/test/ui/issue-39974.rs
index 6f6b775a2a3..6f6b775a2a3 100644
--- a/src/test/compile-fail/issue-39974.rs
+++ b/src/test/ui/issue-39974.rs
diff --git a/src/test/ui/issue-39974.stderr b/src/test/ui/issue-39974.stderr
new file mode 100644
index 00000000000..ddd149ccba8
--- /dev/null
+++ b/src/test/ui/issue-39974.stderr
@@ -0,0 +1,9 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-39974.rs:14:19
+   |
+LL |     f: [[f64; 2]; LENGTH],
+   |                   ^^^^^^ expected usize, found f64
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-40000.rs b/src/test/ui/issue-40000.rs
index 7daf4bcbaa4..7daf4bcbaa4 100644
--- a/src/test/compile-fail/issue-40000.rs
+++ b/src/test/ui/issue-40000.rs
diff --git a/src/test/ui/issue-40000.stderr b/src/test/ui/issue-40000.stderr
new file mode 100644
index 00000000000..26e52a7ecdb
--- /dev/null
+++ b/src/test/ui/issue-40000.stderr
@@ -0,0 +1,12 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-40000.rs:16:9
+   |
+LL |     foo(bar); //~ ERROR mismatched types
+   |         ^^^ expected concrete lifetime, found bound lifetime parameter
+   |
+   = note: expected type `std::boxed::Box<(dyn for<'r> std::ops::Fn(&'r i32) + 'static)>`
+              found type `std::boxed::Box<dyn std::ops::Fn(_)>`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/ui/issue-40288-2.nll.stderr b/src/test/ui/issue-40288-2.nll.stderr
new file mode 100644
index 00000000000..fcff5c6a8ed
--- /dev/null
+++ b/src/test/ui/issue-40288-2.nll.stderr
@@ -0,0 +1,55 @@
+warning: not reporting region error due to nll
+  --> $DIR/issue-40288-2.rs:17:20
+   |
+LL |         slice[0] = y;
+   |                    ^
+
+warning: not reporting region error due to nll
+  --> $DIR/issue-40288-2.rs:16:20
+   |
+LL |         let slice: &mut [_] = &mut out;
+   |                    ^^^^^^^^
+
+warning: not reporting region error due to nll
+  --> $DIR/issue-40288-2.rs:14:19
+   |
+LL |     let mut out = [x];
+   |                   ^^^
+
+warning: not reporting region error due to nll
+  --> $DIR/issue-40288-2.rs:32:20
+   |
+LL |         dst.head = y;
+   |                    ^
+
+warning: not reporting region error due to nll
+  --> $DIR/issue-40288-2.rs:31:18
+   |
+LL |         let dst: &mut Struct<_, [()]> = &mut out;
+   |                  ^^^^^^^^^^^^^^^^^^^^
+
+warning: not reporting region error due to nll
+  --> $DIR/issue-40288-2.rs:29:19
+   |
+LL |     let mut out = Struct { head: x, _tail: [()] };
+   |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+error[E0621]: explicit lifetime required in the type of `y`
+  --> $DIR/issue-40288-2.rs:14:9
+   |
+LL | fn lifetime_transmute_slice<'a, T: ?Sized>(x: &'a T, y: &T) -> &'a T {
+   |                                                      - consider changing the type of `y` to `&'a T`
+LL |     let mut out = [x];
+   |         ^^^^^^^ lifetime `'a` required
+
+error[E0621]: explicit lifetime required in the type of `y`
+  --> $DIR/issue-40288-2.rs:29:9
+   |
+LL | fn lifetime_transmute_struct<'a, T: ?Sized>(x: &'a T, y: &T) -> &'a T {
+   |                                                       - consider changing the type of `y` to `&'a T`
+LL |     let mut out = Struct { head: x, _tail: [()] };
+   |         ^^^^^^^ lifetime `'a` required
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0621`.
diff --git a/src/test/compile-fail/issue-40288-2.rs b/src/test/ui/issue-40288-2.rs
index e16a7ecf6b9..e16a7ecf6b9 100644
--- a/src/test/compile-fail/issue-40288-2.rs
+++ b/src/test/ui/issue-40288-2.rs
diff --git a/src/test/ui/issue-40288-2.stderr b/src/test/ui/issue-40288-2.stderr
new file mode 100644
index 00000000000..d2313ef89a7
--- /dev/null
+++ b/src/test/ui/issue-40288-2.stderr
@@ -0,0 +1,21 @@
+error[E0621]: explicit lifetime required in the type of `y`
+  --> $DIR/issue-40288-2.rs:19:5
+   |
+LL | fn lifetime_transmute_slice<'a, T: ?Sized>(x: &'a T, y: &T) -> &'a T {
+   |                                                      - consider changing the type of `y` to `&'a T`
+...
+LL |     out[0]
+   |     ^^^^^^ lifetime `'a` required
+
+error[E0621]: explicit lifetime required in the type of `y`
+  --> $DIR/issue-40288-2.rs:34:5
+   |
+LL | fn lifetime_transmute_struct<'a, T: ?Sized>(x: &'a T, y: &T) -> &'a T {
+   |                                                       - consider changing the type of `y` to `&'a T`
+...
+LL |     out.head
+   |     ^^^^^^^^ lifetime `'a` required
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0621`.
diff --git a/src/test/ui/issue-40288.nll.stderr b/src/test/ui/issue-40288.nll.stderr
new file mode 100644
index 00000000000..bd4efa10f3d
--- /dev/null
+++ b/src/test/ui/issue-40288.nll.stderr
@@ -0,0 +1,15 @@
+error[E0506]: cannot assign to `*refr` because it is borrowed
+  --> $DIR/issue-40288.rs:26:5
+   |
+LL |     save_ref(&*refr, &mut out);
+   |              ------ borrow of `*refr` occurs here
+...
+LL |     *refr = 3; //~ ERROR cannot assign to `*refr` because it is borrowed
+   |     ^^^^^^^^^ assignment to borrowed `*refr` occurs here
+...
+LL |     println!("{:?}", out[0]);
+   |                      ------ borrow later used here
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0506`.
diff --git a/src/test/compile-fail/issue-40288.rs b/src/test/ui/issue-40288.rs
index b5418e85bec..b5418e85bec 100644
--- a/src/test/compile-fail/issue-40288.rs
+++ b/src/test/ui/issue-40288.rs
diff --git a/src/test/ui/issue-40288.stderr b/src/test/ui/issue-40288.stderr
new file mode 100644
index 00000000000..e69c3bc83a6
--- /dev/null
+++ b/src/test/ui/issue-40288.stderr
@@ -0,0 +1,12 @@
+error[E0506]: cannot assign to `*refr` because it is borrowed
+  --> $DIR/issue-40288.rs:26:5
+   |
+LL |     save_ref(&*refr, &mut out);
+   |               ----- borrow of `*refr` occurs here
+...
+LL |     *refr = 3; //~ ERROR cannot assign to `*refr` because it is borrowed
+   |     ^^^^^^^^^ assignment to borrowed `*refr` occurs here
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0506`.
diff --git a/src/test/compile-fail/issue-40350.rs b/src/test/ui/issue-40350.rs
index 39249ee4718..39249ee4718 100644
--- a/src/test/compile-fail/issue-40350.rs
+++ b/src/test/ui/issue-40350.rs
diff --git a/src/test/ui/issue-40350.stderr b/src/test/ui/issue-40350.stderr
new file mode 100644
index 00000000000..ad85bf2a778
--- /dev/null
+++ b/src/test/ui/issue-40350.stderr
@@ -0,0 +1,8 @@
+error: compilation successful
+  --> $DIR/issue-40350.rs:22:1
+   |
+LL | fn main() {}
+   | ^^^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/ui/issue-40510-1.nll.stderr b/src/test/ui/issue-40510-1.nll.stderr
new file mode 100644
index 00000000000..73a8d58290d
--- /dev/null
+++ b/src/test/ui/issue-40510-1.nll.stderr
@@ -0,0 +1,17 @@
+error: unsatisfied lifetime constraints
+  --> $DIR/issue-40510-1.rs:18:9
+   |
+LL |        || {
+   |   _____-
+   |  |_____|
+   | ||
+LL | ||         &mut x
+   | ||         ^^^^^^ free region requires that `'1` must outlive `'2`
+LL | ||     };
+   | ||     -
+   | ||_____|
+   | |______lifetime `'1` represents the closure body
+   |        lifetime `'2` appears in return type
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-40510-1.rs b/src/test/ui/issue-40510-1.rs
index 142092ff41e..142092ff41e 100644
--- a/src/test/compile-fail/issue-40510-1.rs
+++ b/src/test/ui/issue-40510-1.rs
diff --git a/src/test/ui/issue-40510-1.stderr b/src/test/ui/issue-40510-1.stderr
new file mode 100644
index 00000000000..1f5a41fce96
--- /dev/null
+++ b/src/test/ui/issue-40510-1.stderr
@@ -0,0 +1,8 @@
+error: compilation successful
+  --> $DIR/issue-40510-1.rs:23:1
+   |
+LL | fn main() {} //~ ERROR compilation successful
+   | ^^^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-40510-2.rs b/src/test/ui/issue-40510-2.rs
index 0fe56584822..0fe56584822 100644
--- a/src/test/compile-fail/issue-40510-2.rs
+++ b/src/test/ui/issue-40510-2.rs
diff --git a/src/test/ui/issue-40510-2.stderr b/src/test/ui/issue-40510-2.stderr
new file mode 100644
index 00000000000..03998af50c2
--- /dev/null
+++ b/src/test/ui/issue-40510-2.stderr
@@ -0,0 +1,8 @@
+error: compilation successful
+  --> $DIR/issue-40510-2.rs:23:1
+   |
+LL | fn main() {} //~ ERROR compilation successful
+   | ^^^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/ui/issue-40510-3.nll.stderr b/src/test/ui/issue-40510-3.nll.stderr
new file mode 100644
index 00000000000..4133c69f031
--- /dev/null
+++ b/src/test/ui/issue-40510-3.nll.stderr
@@ -0,0 +1,20 @@
+error: unsatisfied lifetime constraints
+  --> $DIR/issue-40510-3.rs:18:9
+   |
+LL |         || {
+   |    _____-
+   |   |_____|
+   |  ||
+LL |  ||         || {
+   |  ||_________^
+LL | |||             x.push(())
+LL | |||         }
+   | |||_________^ free region requires that `'1` must outlive `'2`
+LL |  ||     };
+   |  ||     -
+   |  ||_____|
+   |  |______lifetime `'1` represents the closure body
+   |         lifetime `'2` appears in return type
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-40510-3.rs b/src/test/ui/issue-40510-3.rs
index afa8f15ee57..afa8f15ee57 100644
--- a/src/test/compile-fail/issue-40510-3.rs
+++ b/src/test/ui/issue-40510-3.rs
diff --git a/src/test/ui/issue-40510-3.stderr b/src/test/ui/issue-40510-3.stderr
new file mode 100644
index 00000000000..c77b5cc8303
--- /dev/null
+++ b/src/test/ui/issue-40510-3.stderr
@@ -0,0 +1,8 @@
+error: compilation successful
+  --> $DIR/issue-40510-3.rs:25:1
+   |
+LL | fn main() {} //~ ERROR compilation successful
+   | ^^^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-40510-4.rs b/src/test/ui/issue-40510-4.rs
index a39c500225b..a39c500225b 100644
--- a/src/test/compile-fail/issue-40510-4.rs
+++ b/src/test/ui/issue-40510-4.rs
diff --git a/src/test/ui/issue-40510-4.stderr b/src/test/ui/issue-40510-4.stderr
new file mode 100644
index 00000000000..1f3cd00fb48
--- /dev/null
+++ b/src/test/ui/issue-40510-4.stderr
@@ -0,0 +1,8 @@
+error: compilation successful
+  --> $DIR/issue-40510-4.rs:25:1
+   |
+LL | fn main() {} //~ ERROR compilation successful
+   | ^^^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-40610.rs b/src/test/ui/issue-40610.rs
index aec20b4ad87..aec20b4ad87 100644
--- a/src/test/compile-fail/issue-40610.rs
+++ b/src/test/ui/issue-40610.rs
diff --git a/src/test/ui/issue-40610.stderr b/src/test/ui/issue-40610.stderr
new file mode 100644
index 00000000000..faf1a4d1c38
--- /dev/null
+++ b/src/test/ui/issue-40610.stderr
@@ -0,0 +1,11 @@
+error[E0369]: binary operation `+` cannot be applied to type `()`
+  --> $DIR/issue-40610.rs:14:5
+   |
+LL |     () + f(&[1.0]);
+   |     ^^^^^^^^^^^^^^
+   |
+   = note: an implementation of `std::ops::Add` might be missing for `()`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0369`.
diff --git a/src/test/compile-fail/issue-40749.rs b/src/test/ui/issue-40749.rs
index 261ed49d10c..261ed49d10c 100644
--- a/src/test/compile-fail/issue-40749.rs
+++ b/src/test/ui/issue-40749.rs
diff --git a/src/test/ui/issue-40749.stderr b/src/test/ui/issue-40749.stderr
new file mode 100644
index 00000000000..b76d469d116
--- /dev/null
+++ b/src/test/ui/issue-40749.stderr
@@ -0,0 +1,12 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-40749.rs:12:9
+   |
+LL |     [0; ..10];
+   |         ^^^^ expected usize, found struct `std::ops::RangeTo`
+   |
+   = note: expected type `usize`
+              found type `std::ops::RangeTo<{integer}>`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-40845.rs b/src/test/ui/issue-40845.rs
index c5604a0427b..c5604a0427b 100644
--- a/src/test/compile-fail/issue-40845.rs
+++ b/src/test/ui/issue-40845.rs
diff --git a/src/test/ui/issue-40845.stderr b/src/test/ui/issue-40845.stderr
new file mode 100644
index 00000000000..2e8f008a52d
--- /dev/null
+++ b/src/test/ui/issue-40845.stderr
@@ -0,0 +1,14 @@
+error: cannot find macro `m!` in this scope
+  --> $DIR/issue-40845.rs:14:10
+   |
+LL | impl S { m!(); } //~ ERROR cannot find macro `m!` in this scope
+   |          ^
+
+error: cannot find macro `m!` in this scope
+  --> $DIR/issue-40845.rs:11:11
+   |
+LL | trait T { m!(); } //~ ERROR cannot find macro `m!` in this scope
+   |           ^
+
+error: aborting due to 2 previous errors
+
diff --git a/src/test/compile-fail/issue-40861.rs b/src/test/ui/issue-40861.rs
index 75d58c58538..75d58c58538 100644
--- a/src/test/compile-fail/issue-40861.rs
+++ b/src/test/ui/issue-40861.rs
diff --git a/src/test/ui/issue-40861.stderr b/src/test/ui/issue-40861.stderr
new file mode 100644
index 00000000000..dbde40fb25e
--- /dev/null
+++ b/src/test/ui/issue-40861.stderr
@@ -0,0 +1,11 @@
+error[E0608]: cannot index into a value of type `()`
+  --> $DIR/issue-40861.rs:14:5
+   |
+LL |     ()[f(&[1.0])];
+   |     ^^^^^^^^^^^^^
+   |
+   = help: to access tuple elements, use tuple indexing syntax (e.g. `tuple.0`)
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0608`.
diff --git a/src/test/ui/issue-41139.nll.stderr b/src/test/ui/issue-41139.nll.stderr
new file mode 100644
index 00000000000..3f79c66252a
--- /dev/null
+++ b/src/test/ui/issue-41139.nll.stderr
@@ -0,0 +1,9 @@
+error[E0161]: cannot move a value of type dyn Trait: the size of dyn Trait cannot be statically determined
+  --> $DIR/issue-41139.rs:16:23
+   |
+LL |     let t : &Trait = &get_function()();
+   |                       ^^^^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0161`.
diff --git a/src/test/compile-fail/issue-41139.rs b/src/test/ui/issue-41139.rs
index 0509a4387ba..0509a4387ba 100644
--- a/src/test/compile-fail/issue-41139.rs
+++ b/src/test/ui/issue-41139.rs
diff --git a/src/test/ui/issue-41139.stderr b/src/test/ui/issue-41139.stderr
new file mode 100644
index 00000000000..9d0e19df3f2
--- /dev/null
+++ b/src/test/ui/issue-41139.stderr
@@ -0,0 +1,9 @@
+error[E0161]: cannot move a value of type (dyn Trait + 'static): the size of (dyn Trait + 'static) cannot be statically determined
+  --> $DIR/issue-41139.rs:16:23
+   |
+LL |     let t : &Trait = &get_function()();
+   |                       ^^^^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0161`.
diff --git a/src/test/compile-fail/issue-41229-ref-str.rs b/src/test/ui/issue-41229-ref-str.rs
index 5d7546e1bc4..5d7546e1bc4 100644
--- a/src/test/compile-fail/issue-41229-ref-str.rs
+++ b/src/test/ui/issue-41229-ref-str.rs
diff --git a/src/test/ui/issue-41229-ref-str.stderr b/src/test/ui/issue-41229-ref-str.stderr
new file mode 100644
index 00000000000..889da66a4e8
--- /dev/null
+++ b/src/test/ui/issue-41229-ref-str.stderr
@@ -0,0 +1,12 @@
+error[E0277]: the size for values of type `str` cannot be known at compilation time
+  --> $DIR/issue-41229-ref-str.rs:11:28
+   |
+LL | pub fn example(ref s: str) {}
+   |                            ^ doesn't have a size known at compile-time
+   |
+   = help: the trait `std::marker::Sized` is not implemented for `str`
+   = note: to learn more, visit <https://doc.rust-lang.org/book/second-edition/ch19-04-advanced-types.html#dynamically-sized-types--sized>
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/compile-fail/issue-41255.rs b/src/test/ui/issue-41255.rs
index 29912de37eb..29912de37eb 100644
--- a/src/test/compile-fail/issue-41255.rs
+++ b/src/test/ui/issue-41255.rs
diff --git a/src/test/ui/issue-41255.stderr b/src/test/ui/issue-41255.stderr
new file mode 100644
index 00000000000..03100b6db76
--- /dev/null
+++ b/src/test/ui/issue-41255.stderr
@@ -0,0 +1,88 @@
+error: floating-point types cannot be used in patterns
+  --> $DIR/issue-41255.rs:20:9
+   |
+LL |         5.0 => {}, //~ ERROR floating-point types cannot be used in patterns
+   |         ^^^
+   |
+note: lint level defined here
+  --> $DIR/issue-41255.rs:15:11
+   |
+LL | #![forbid(illegal_floating_point_literal_pattern)]
+   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
+   = note: for more information, see issue #41620 <https://github.com/rust-lang/rust/issues/41620>
+
+error: floating-point types cannot be used in patterns
+  --> $DIR/issue-41255.rs:22:9
+   |
+LL |         5.0f32 => {}, //~ ERROR floating-point types cannot be used in patterns
+   |         ^^^^^^
+   |
+   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
+   = note: for more information, see issue #41620 <https://github.com/rust-lang/rust/issues/41620>
+
+error: floating-point types cannot be used in patterns
+  --> $DIR/issue-41255.rs:24:10
+   |
+LL |         -5.0 => {}, //~ ERROR floating-point types cannot be used in patterns
+   |          ^^^
+   |
+   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
+   = note: for more information, see issue #41620 <https://github.com/rust-lang/rust/issues/41620>
+
+error: floating-point types cannot be used in patterns
+  --> $DIR/issue-41255.rs:26:9
+   |
+LL |         1.0 .. 33.0 => {}, //~ ERROR floating-point types cannot be used in patterns
+   |         ^^^
+   |
+   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
+   = note: for more information, see issue #41620 <https://github.com/rust-lang/rust/issues/41620>
+
+error: floating-point types cannot be used in patterns
+  --> $DIR/issue-41255.rs:26:16
+   |
+LL |         1.0 .. 33.0 => {}, //~ ERROR floating-point types cannot be used in patterns
+   |                ^^^^
+   |
+   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
+   = note: for more information, see issue #41620 <https://github.com/rust-lang/rust/issues/41620>
+
+error: floating-point types cannot be used in patterns
+  --> $DIR/issue-41255.rs:30:9
+   |
+LL |         39.0 ..= 70.0 => {}, //~ ERROR floating-point types cannot be used in patterns
+   |         ^^^^
+   |
+   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
+   = note: for more information, see issue #41620 <https://github.com/rust-lang/rust/issues/41620>
+
+error: floating-point types cannot be used in patterns
+  --> $DIR/issue-41255.rs:30:18
+   |
+LL |         39.0 ..= 70.0 => {}, //~ ERROR floating-point types cannot be used in patterns
+   |                  ^^^^
+   |
+   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
+   = note: for more information, see issue #41620 <https://github.com/rust-lang/rust/issues/41620>
+
+error: floating-point types cannot be used in patterns
+  --> $DIR/issue-41255.rs:39:10
+   |
+LL |         (3.14, 1) => {}, //~ ERROR floating-point types cannot be used
+   |          ^^^^
+   |
+   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
+   = note: for more information, see issue #41620 <https://github.com/rust-lang/rust/issues/41620>
+
+error: floating-point types cannot be used in patterns
+  --> $DIR/issue-41255.rs:46:18
+   |
+LL |         Foo { x: 2.0 } => {}, //~ ERROR floating-point types cannot be used
+   |                  ^^^
+   |
+   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
+   = note: for more information, see issue #41620 <https://github.com/rust-lang/rust/issues/41620>
+
+error: aborting due to 9 previous errors
+
diff --git a/src/test/compile-fail/issue-41394.rs b/src/test/ui/issue-41394.rs
index 89f11edaec8..89f11edaec8 100644
--- a/src/test/compile-fail/issue-41394.rs
+++ b/src/test/ui/issue-41394.rs
diff --git a/src/test/ui/issue-41394.stderr b/src/test/ui/issue-41394.stderr
new file mode 100644
index 00000000000..9e4afb3b28a
--- /dev/null
+++ b/src/test/ui/issue-41394.stderr
@@ -0,0 +1,11 @@
+error[E0369]: binary operation `+` cannot be applied to type `&str`
+  --> $DIR/issue-41394.rs:12:9
+   |
+LL |     A = "" + 1
+   |         ^^^^^^
+   |
+   = note: an implementation of `std::ops::Add` might be missing for `&str`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0369`.
diff --git a/src/test/ui/issue-41726.nll.stderr b/src/test/ui/issue-41726.nll.stderr
new file mode 100644
index 00000000000..feeb63e1ebb
--- /dev/null
+++ b/src/test/ui/issue-41726.nll.stderr
@@ -0,0 +1,9 @@
+error[E0596]: cannot borrow immutable item as mutable
+  --> $DIR/issue-41726.rs:15:9
+   |
+LL |         things[src.as_str()].sort(); //~ ERROR cannot borrow immutable
+   |         ^^^^^^^^^^^^^^^^^^^^ cannot borrow as mutable
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0596`.
diff --git a/src/test/compile-fail/issue-41726.rs b/src/test/ui/issue-41726.rs
index c8cd9209bce..c8cd9209bce 100644
--- a/src/test/compile-fail/issue-41726.rs
+++ b/src/test/ui/issue-41726.rs
diff --git a/src/test/ui/issue-41726.stderr b/src/test/ui/issue-41726.stderr
new file mode 100644
index 00000000000..172309537bf
--- /dev/null
+++ b/src/test/ui/issue-41726.stderr
@@ -0,0 +1,9 @@
+error[E0596]: cannot borrow immutable indexed content as mutable
+  --> $DIR/issue-41726.rs:15:9
+   |
+LL |         things[src.as_str()].sort(); //~ ERROR cannot borrow immutable
+   |         ^^^^^^^^^^^^^^^^^^^^ cannot borrow as mutable
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0596`.
diff --git a/src/test/compile-fail/issue-41742.rs b/src/test/ui/issue-41742.rs
index 067531e036a..067531e036a 100644
--- a/src/test/compile-fail/issue-41742.rs
+++ b/src/test/ui/issue-41742.rs
diff --git a/src/test/ui/issue-41742.stderr b/src/test/ui/issue-41742.stderr
new file mode 100644
index 00000000000..314b44f603a
--- /dev/null
+++ b/src/test/ui/issue-41742.stderr
@@ -0,0 +1,12 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-41742.rs:34:7
+   |
+LL |     H["?"].f(); //~ ERROR mismatched types
+   |       ^^^ expected u32, found reference
+   |
+   = note: expected type `u32`
+              found type `&'static str`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-41776.rs b/src/test/ui/issue-41776.rs
index 5f108e0a1ed..5f108e0a1ed 100644
--- a/src/test/compile-fail/issue-41776.rs
+++ b/src/test/ui/issue-41776.rs
diff --git a/src/test/ui/issue-41776.stderr b/src/test/ui/issue-41776.stderr
new file mode 100644
index 00000000000..9742f091f04
--- /dev/null
+++ b/src/test/ui/issue-41776.stderr
@@ -0,0 +1,8 @@
+error: argument must be a string literal
+  --> $DIR/issue-41776.rs:12:14
+   |
+LL |     include!(line!()); //~ ERROR argument must be a string literal
+   |              ^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-41880.rs b/src/test/ui/issue-41880.rs
index 23a2b78a769..23a2b78a769 100644
--- a/src/test/compile-fail/issue-41880.rs
+++ b/src/test/ui/issue-41880.rs
diff --git a/src/test/ui/issue-41880.stderr b/src/test/ui/issue-41880.stderr
new file mode 100644
index 00000000000..fa9fdbd8194
--- /dev/null
+++ b/src/test/ui/issue-41880.stderr
@@ -0,0 +1,12 @@
+error[E0599]: no method named `iter` found for type `Iterate<{integer}, [closure@$DIR/issue-41880.rs:36:24: 36:31]>` in the current scope
+  --> $DIR/issue-41880.rs:37:24
+   |
+LL | pub struct Iterate<T, F> {
+   | ------------------------ method `iter` not found for this
+...
+LL |     println!("{:?}", a.iter().take(10).collect::<Vec<usize>>());
+   |                        ^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0599`.
diff --git a/src/test/compile-fail/issue-41974.rs b/src/test/ui/issue-41974.rs
index 5c9077783c7..5c9077783c7 100644
--- a/src/test/compile-fail/issue-41974.rs
+++ b/src/test/ui/issue-41974.rs
diff --git a/src/test/ui/issue-41974.stderr b/src/test/ui/issue-41974.stderr
new file mode 100644
index 00000000000..eca40ed4355
--- /dev/null
+++ b/src/test/ui/issue-41974.stderr
@@ -0,0 +1,29 @@
+error[E0119]: conflicting implementations of trait `std::ops::Drop` for type `std::boxed::Box<_>`:
+  --> $DIR/issue-41974.rs:17:1
+   |
+LL | impl<T> Drop for T where T: A { //~ ERROR E0119
+   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |
+   = note: conflicting implementation in crate `alloc`:
+           - impl<T> std::ops::Drop for std::boxed::Box<T>
+             where T: ?Sized;
+   = note: downstream crates may implement trait `A` for type `std::boxed::Box<_>`
+
+error[E0120]: the Drop trait may only be implemented on structures
+  --> $DIR/issue-41974.rs:17:18
+   |
+LL | impl<T> Drop for T where T: A { //~ ERROR E0119
+   |                  ^ implementing Drop requires a struct
+
+error[E0210]: type parameter `T` must be used as the type parameter for some local type (e.g. `MyStruct<T>`)
+  --> $DIR/issue-41974.rs:17:1
+   |
+LL | impl<T> Drop for T where T: A { //~ ERROR E0119
+   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type parameter `T` must be used as the type parameter for some local type
+   |
+   = note: only traits defined in the current crate can be implemented for a type parameter
+
+error: aborting due to 3 previous errors
+
+Some errors occurred: E0119, E0120, E0210.
+For more information about an error, try `rustc --explain E0119`.
diff --git a/src/test/compile-fail/issue-41998.rs b/src/test/ui/issue-41998.rs
index 406aadcd212..406aadcd212 100644
--- a/src/test/compile-fail/issue-41998.rs
+++ b/src/test/ui/issue-41998.rs
diff --git a/src/test/ui/issue-41998.stderr b/src/test/ui/issue-41998.stderr
new file mode 100644
index 00000000000..e757c7f3a44
--- /dev/null
+++ b/src/test/ui/issue-41998.stderr
@@ -0,0 +1,14 @@
+error: compilation successful
+  --> $DIR/issue-41998.rs:14:1
+   |
+LL | / fn main() { //~ ERROR compilation successful
+LL | |     if ('x' as char) < ('y' as char) {
+LL | |         print!("x");
+LL | |     } else {
+LL | |         print!("y");
+LL | |     }
+LL | | }
+   | |_^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-4201.rs b/src/test/ui/issue-4201.rs
index b1f668d9c5e..b1f668d9c5e 100644
--- a/src/test/compile-fail/issue-4201.rs
+++ b/src/test/ui/issue-4201.rs
diff --git a/src/test/ui/issue-4201.stderr b/src/test/ui/issue-4201.stderr
new file mode 100644
index 00000000000..40de077ce76
--- /dev/null
+++ b/src/test/ui/issue-4201.stderr
@@ -0,0 +1,19 @@
+error[E0317]: if may be missing an else clause
+  --> $DIR/issue-4201.rs:14:12
+   |
+LL |       } else if false {
+   |  ____________^
+LL | | //~^ ERROR if may be missing an else clause
+LL | | //~| expected type `()`
+LL | | //~| found type `{integer}`
+LL | | //~| expected (), found integral variable
+LL | |         1
+LL | |     };
+   | |_____^ expected (), found integral variable
+   |
+   = note: expected type `()`
+              found type `{integer}`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0317`.
diff --git a/src/test/compile-fail/issue-42312.rs b/src/test/ui/issue-42312.rs
index f7705297dfd..f7705297dfd 100644
--- a/src/test/compile-fail/issue-42312.rs
+++ b/src/test/ui/issue-42312.rs
diff --git a/src/test/ui/issue-42312.stderr b/src/test/ui/issue-42312.stderr
new file mode 100644
index 00000000000..ae6496c037a
--- /dev/null
+++ b/src/test/ui/issue-42312.stderr
@@ -0,0 +1,22 @@
+error[E0277]: the size for values of type `<Self as std::ops::Deref>::Target` cannot be known at compilation time
+  --> $DIR/issue-42312.rs:14:29
+   |
+LL |     fn baz(_: Self::Target) where Self: Deref {}
+   |                             ^ doesn't have a size known at compile-time
+   |
+   = help: the trait `std::marker::Sized` is not implemented for `<Self as std::ops::Deref>::Target`
+   = note: to learn more, visit <https://doc.rust-lang.org/book/second-edition/ch19-04-advanced-types.html#dynamically-sized-types--sized>
+   = help: consider adding a `where <Self as std::ops::Deref>::Target: std::marker::Sized` bound
+
+error[E0277]: the size for values of type `(dyn std::string::ToString + 'static)` cannot be known at compilation time
+  --> $DIR/issue-42312.rs:18:23
+   |
+LL | pub fn f(_: ToString) {}
+   |                       ^ doesn't have a size known at compile-time
+   |
+   = help: the trait `std::marker::Sized` is not implemented for `(dyn std::string::ToString + 'static)`
+   = note: to learn more, visit <https://doc.rust-lang.org/book/second-edition/ch19-04-advanced-types.html#dynamically-sized-types--sized>
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/ui/issue-42344.nll.stderr b/src/test/ui/issue-42344.nll.stderr
new file mode 100644
index 00000000000..02f6ffe1734
--- /dev/null
+++ b/src/test/ui/issue-42344.nll.stderr
@@ -0,0 +1,9 @@
+error[E0596]: cannot borrow immutable item `*TAB[..]` as mutable
+  --> $DIR/issue-42344.rs:14:5
+   |
+LL |     TAB[0].iter_mut(); //~ ERROR cannot borrow data mutably in a `&` reference [E0389]
+   |     ^^^^^^ cannot borrow as mutable
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0596`.
diff --git a/src/test/compile-fail/issue-42344.rs b/src/test/ui/issue-42344.rs
index 2f11ff402be..2f11ff402be 100644
--- a/src/test/compile-fail/issue-42344.rs
+++ b/src/test/ui/issue-42344.rs
diff --git a/src/test/ui/issue-42344.stderr b/src/test/ui/issue-42344.stderr
new file mode 100644
index 00000000000..92bbe70d9ce
--- /dev/null
+++ b/src/test/ui/issue-42344.stderr
@@ -0,0 +1,9 @@
+error[E0389]: cannot borrow data mutably in a `&` reference
+  --> $DIR/issue-42344.rs:14:5
+   |
+LL |     TAB[0].iter_mut(); //~ ERROR cannot borrow data mutably in a `&` reference [E0389]
+   |     ^^^^^^ assignment into an immutable reference
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0389`.
diff --git a/src/test/compile-fail/issue-4265.rs b/src/test/ui/issue-4265.rs
index 62db68dcbb2..62db68dcbb2 100644
--- a/src/test/compile-fail/issue-4265.rs
+++ b/src/test/ui/issue-4265.rs
diff --git a/src/test/ui/issue-4265.stderr b/src/test/ui/issue-4265.stderr
new file mode 100644
index 00000000000..8f22c6757c2
--- /dev/null
+++ b/src/test/ui/issue-4265.stderr
@@ -0,0 +1,15 @@
+error[E0201]: duplicate definitions with name `bar`:
+  --> $DIR/issue-4265.rs:20:5
+   |
+LL | /     fn bar() {
+LL | |         Foo { baz: 0 }.bar();
+LL | |     }
+   | |_____- previous definition of `bar` here
+LL | 
+LL | /     fn bar() { //~ ERROR duplicate definitions
+LL | |     }
+   | |_____^ duplicate definition
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0201`.
diff --git a/src/test/compile-fail/issue-42755.rs b/src/test/ui/issue-42755.rs
index 7547c4a17be..7547c4a17be 100644
--- a/src/test/compile-fail/issue-42755.rs
+++ b/src/test/ui/issue-42755.rs
diff --git a/src/test/ui/issue-42755.stderr b/src/test/ui/issue-42755.stderr
new file mode 100644
index 00000000000..91439061996
--- /dev/null
+++ b/src/test/ui/issue-42755.stderr
@@ -0,0 +1,13 @@
+error: repetition matches empty token tree
+  --> $DIR/issue-42755.rs:14:7
+   |
+LL |     ($($p:vis)*) => {} //~ ERROR repetition matches empty token tree
+   |       ^^^^^^^^
+
+error[E0601]: `main` function not found in crate `issue_42755`
+   |
+   = note: consider adding a `main` function to `$DIR/issue-42755.rs`
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0601`.
diff --git a/src/test/ui/issue-42796.nll.stderr b/src/test/ui/issue-42796.nll.stderr
new file mode 100644
index 00000000000..fda7cf9ae8e
--- /dev/null
+++ b/src/test/ui/issue-42796.nll.stderr
@@ -0,0 +1,14 @@
+error[E0382]: borrow of moved value: `s`
+  --> $DIR/issue-42796.rs:28:20
+   |
+LL |     let mut s_copy = s;
+   |                      - value moved here
+...
+LL |     println!("{}", s); //~ ERROR use of moved value
+   |                    ^ value borrowed here after move
+   |
+   = note: move occurs because `s` has type `std::string::String`, which does not implement the `Copy` trait
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0382`.
diff --git a/src/test/compile-fail/issue-42796.rs b/src/test/ui/issue-42796.rs
index b07c23c3fc7..b07c23c3fc7 100644
--- a/src/test/compile-fail/issue-42796.rs
+++ b/src/test/ui/issue-42796.rs
diff --git a/src/test/ui/issue-42796.stderr b/src/test/ui/issue-42796.stderr
new file mode 100644
index 00000000000..9c2481b2f90
--- /dev/null
+++ b/src/test/ui/issue-42796.stderr
@@ -0,0 +1,14 @@
+error[E0382]: use of moved value: `s`
+  --> $DIR/issue-42796.rs:28:20
+   |
+LL |     let mut s_copy = s;
+   |         ---------- value moved here
+...
+LL |     println!("{}", s); //~ ERROR use of moved value
+   |                    ^ value used here after move
+   |
+   = note: move occurs because `s` has type `std::string::String`, which does not implement the `Copy` trait
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0382`.
diff --git a/src/test/compile-fail/issue-42880.rs b/src/test/ui/issue-42880.rs
index ebb1ec425d1..ebb1ec425d1 100644
--- a/src/test/compile-fail/issue-42880.rs
+++ b/src/test/ui/issue-42880.rs
diff --git a/src/test/ui/issue-42880.stderr b/src/test/ui/issue-42880.stderr
new file mode 100644
index 00000000000..cf1c3022a22
--- /dev/null
+++ b/src/test/ui/issue-42880.stderr
@@ -0,0 +1,9 @@
+error[E0599]: no associated item named `String` found for type `std::string::String` in the current scope
+  --> $DIR/issue-42880.rs:14:15
+   |
+LL |     let f = |&Value::String(_)| (); //~ ERROR no associated item named
+   |               ^^^^^^^^^^^^^^^^ associated item not found in `std::string::String`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0599`.
diff --git a/src/test/compile-fail/issue-43023.rs b/src/test/ui/issue-43023.rs
index 6a5f7a1136a..6a5f7a1136a 100644
--- a/src/test/compile-fail/issue-43023.rs
+++ b/src/test/ui/issue-43023.rs
diff --git a/src/test/ui/issue-43023.stderr b/src/test/ui/issue-43023.stderr
new file mode 100644
index 00000000000..2aa1efa9ca8
--- /dev/null
+++ b/src/test/ui/issue-43023.stderr
@@ -0,0 +1,20 @@
+error: `derive` may only be applied to structs, enums and unions
+  --> $DIR/issue-43023.rs:14:5
+   |
+LL |     #[derive(Debug)] //~ ERROR `derive` may only be applied to structs, enums and unions
+   |     ^^^^^^^^^^^^^^^^
+
+error: `derive` may only be applied to structs, enums and unions
+  --> $DIR/issue-43023.rs:21:5
+   |
+LL |     #[derive(Debug)] //~ ERROR `derive` may only be applied to structs, enums and unions
+   |     ^^^^^^^^^^^^^^^^
+
+error: `derive` may only be applied to structs, enums and unions
+  --> $DIR/issue-43023.rs:26:5
+   |
+LL |     #[derive(Debug)] //~ ERROR `derive` may only be applied to structs, enums and unions
+   |     ^^^^^^^^^^^^^^^^
+
+error: aborting due to 3 previous errors
+
diff --git a/src/test/compile-fail/issue-43105.rs b/src/test/ui/issue-43105.rs
index 8a0471135af..8a0471135af 100644
--- a/src/test/compile-fail/issue-43105.rs
+++ b/src/test/ui/issue-43105.rs
diff --git a/src/test/ui/issue-43105.stderr b/src/test/ui/issue-43105.stderr
new file mode 100644
index 00000000000..18da9310503
--- /dev/null
+++ b/src/test/ui/issue-43105.stderr
@@ -0,0 +1,19 @@
+error[E0015]: calls in constants are limited to constant functions, tuple structs and tuple variants
+  --> $DIR/issue-43105.rs:13:17
+   |
+LL | const NUM: u8 = xyz();
+   |                 ^^^^^
+
+error[E0080]: could not evaluate constant pattern
+  --> $DIR/issue-43105.rs:18:9
+   |
+LL | const NUM: u8 = xyz();
+   |                 ----- calling non-const fn `xyz`
+...
+LL |         NUM => unimplemented!(),
+   |         ^^^
+
+error: aborting due to 2 previous errors
+
+Some errors occurred: E0015, E0080.
+For more information about an error, try `rustc --explain E0015`.
diff --git a/src/test/compile-fail/issue-43162.rs b/src/test/ui/issue-43162.rs
index b236283f757..b236283f757 100644
--- a/src/test/compile-fail/issue-43162.rs
+++ b/src/test/ui/issue-43162.rs
diff --git a/src/test/ui/issue-43162.stderr b/src/test/ui/issue-43162.stderr
new file mode 100644
index 00000000000..4b3b4638f26
--- /dev/null
+++ b/src/test/ui/issue-43162.stderr
@@ -0,0 +1,30 @@
+error[E0268]: `break` outside of loop
+  --> $DIR/issue-43162.rs:13:5
+   |
+LL |     break true; //~ ERROR E0268
+   |     ^^^^^^^^^^ cannot break outside of a loop
+
+error[E0268]: `break` outside of loop
+  --> $DIR/issue-43162.rs:17:5
+   |
+LL |     break {}; //~ ERROR E0268
+   |     ^^^^^^^^ cannot break outside of a loop
+
+error[E0308]: mismatched types
+  --> $DIR/issue-43162.rs:11:18
+   |
+LL |   fn foo() -> bool {
+   |  __________________^
+LL | |     //~^ ERROR E0308
+LL | |     break true; //~ ERROR E0268
+   | |               - help: consider removing this semicolon
+LL | | }
+   | |_^ expected bool, found ()
+   |
+   = note: expected type `bool`
+              found type `()`
+
+error: aborting due to 3 previous errors
+
+Some errors occurred: E0268, E0308.
+For more information about an error, try `rustc --explain E0268`.
diff --git a/src/test/compile-fail/issue-4321.rs b/src/test/ui/issue-4321.rs
index d589680b0ec..d589680b0ec 100644
--- a/src/test/compile-fail/issue-4321.rs
+++ b/src/test/ui/issue-4321.rs
diff --git a/src/test/ui/issue-4321.stderr b/src/test/ui/issue-4321.stderr
new file mode 100644
index 00000000000..db52cd557f1
--- /dev/null
+++ b/src/test/ui/issue-4321.stderr
@@ -0,0 +1,9 @@
+error[E0004]: non-exhaustive patterns: `(true, false)` not covered
+  --> $DIR/issue-4321.rs:13:31
+   |
+LL |     println!("foo {:}", match tup { //~ ERROR non-exhaustive patterns: `(true, false)` not covered
+   |                               ^^^ pattern `(true, false)` not covered
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0004`.
diff --git a/src/test/compile-fail/issue-43250.rs b/src/test/ui/issue-43250.rs
index e1d34f339dc..e1d34f339dc 100644
--- a/src/test/compile-fail/issue-43250.rs
+++ b/src/test/ui/issue-43250.rs
diff --git a/src/test/ui/issue-43250.stderr b/src/test/ui/issue-43250.stderr
new file mode 100644
index 00000000000..a05d4d41cc7
--- /dev/null
+++ b/src/test/ui/issue-43250.stderr
@@ -0,0 +1,14 @@
+error: arbitrary expressions aren't allowed in patterns
+  --> $DIR/issue-43250.rs:19:8
+   |
+LL |     m!(y);
+   |        ^
+
+error: arbitrary expressions aren't allowed in patterns
+  --> $DIR/issue-43250.rs:21:8
+   |
+LL |     m!(C);
+   |        ^
+
+error: aborting due to 2 previous errors
+
diff --git a/src/test/compile-fail/issue-43355.rs b/src/test/ui/issue-43355.rs
index d793a78799a..d793a78799a 100644
--- a/src/test/compile-fail/issue-43355.rs
+++ b/src/test/ui/issue-43355.rs
diff --git a/src/test/ui/issue-43355.stderr b/src/test/ui/issue-43355.stderr
new file mode 100644
index 00000000000..dbcf1b52b89
--- /dev/null
+++ b/src/test/ui/issue-43355.stderr
@@ -0,0 +1,16 @@
+error: conflicting implementations of trait `Trait1<std::boxed::Box<_>>` for type `A`: (E0119)
+  --> $DIR/issue-43355.rs:23:1
+   |
+LL | impl<X, T> Trait1<X> for T where T: Trait2<X> {
+   | --------------------------------------------- first implementation here
+...
+LL | impl<X> Trait1<Box<X>> for A {
+   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `A`
+   |
+   = note: #[deny(incoherent_fundamental_impls)] on by default
+   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
+   = note: for more information, see issue #46205 <https://github.com/rust-lang/rust/issues/46205>
+   = note: downstream crates may implement trait `Trait2<std::boxed::Box<_>>` for type `A`
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-43424.rs b/src/test/ui/issue-43424.rs
index 431fc8a5aa2..431fc8a5aa2 100644
--- a/src/test/compile-fail/issue-43424.rs
+++ b/src/test/ui/issue-43424.rs
diff --git a/src/test/ui/issue-43424.stderr b/src/test/ui/issue-43424.stderr
new file mode 100644
index 00000000000..3a9a3164703
--- /dev/null
+++ b/src/test/ui/issue-43424.stderr
@@ -0,0 +1,8 @@
+error: unexpected generic arguments in path
+  --> $DIR/issue-43424.rs:20:4
+   |
+LL | m!(inline<u8>); //~ ERROR: unexpected generic arguments in path
+   |    ^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-43431.rs b/src/test/ui/issue-43431.rs
index 1e6366e068a..1e6366e068a 100644
--- a/src/test/compile-fail/issue-43431.rs
+++ b/src/test/ui/issue-43431.rs
diff --git a/src/test/ui/issue-43431.stderr b/src/test/ui/issue-43431.stderr
new file mode 100644
index 00000000000..3eb8fac6c0f
--- /dev/null
+++ b/src/test/ui/issue-43431.stderr
@@ -0,0 +1,9 @@
+error[E0229]: associated type bindings are not allowed here
+  --> $DIR/issue-43431.rs:19:27
+   |
+LL |         <Self as Fn(A) -> B>::call(self, (a,))
+   |                           ^ associated type not allowed here
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0229`.
diff --git a/src/test/compile-fail/issue-4366-2.rs b/src/test/ui/issue-4366-2.rs
index 33abc196a6b..33abc196a6b 100644
--- a/src/test/compile-fail/issue-4366-2.rs
+++ b/src/test/ui/issue-4366-2.rs
diff --git a/src/test/ui/issue-4366-2.stderr b/src/test/ui/issue-4366-2.stderr
new file mode 100644
index 00000000000..1c9a9eb25c3
--- /dev/null
+++ b/src/test/ui/issue-4366-2.stderr
@@ -0,0 +1,26 @@
+error[E0412]: cannot find type `bar` in this scope
+  --> $DIR/issue-4366-2.rs:25:21
+   |
+LL |         fn sub() -> bar { 1 }
+   |                     ^^^ not found in this scope
+help: possible candidate is found in another module, you can import it into scope
+   |
+LL |         use a::b::bar;
+   |
+
+error[E0423]: expected function, found module `foo`
+  --> $DIR/issue-4366-2.rs:35:5
+   |
+LL |     foo(); //~ ERROR expected function, found module `foo`
+   |     ^^^ not a function
+help: possible better candidates are found in other modules, you can import them into scope
+   |
+LL | use foo::foo;
+   |
+LL | use m1::foo;
+   |
+
+error: aborting due to 2 previous errors
+
+Some errors occurred: E0412, E0423.
+For more information about an error, try `rustc --explain E0412`.
diff --git a/src/test/compile-fail/issue-4366.rs b/src/test/ui/issue-4366.rs
index 47fd426592c..47fd426592c 100644
--- a/src/test/compile-fail/issue-4366.rs
+++ b/src/test/ui/issue-4366.rs
diff --git a/src/test/ui/issue-4366.stderr b/src/test/ui/issue-4366.stderr
new file mode 100644
index 00000000000..e78aec9d0e8
--- /dev/null
+++ b/src/test/ui/issue-4366.stderr
@@ -0,0 +1,15 @@
+error[E0425]: cannot find function `foo` in this scope
+  --> $DIR/issue-4366.rs:28:29
+   |
+LL |         fn sub() -> isize { foo(); 1 } //~ ERROR cannot find function `foo` in this scope
+   |                             ^^^ not found in this scope
+help: possible candidates are found in other modules, you can import them into scope
+   |
+LL |         use foo::foo;
+   |
+LL |         use m1::foo;
+   |
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0425`.
diff --git a/src/test/compile-fail/issue-43733-2.rs b/src/test/ui/issue-43733-2.rs
index a5ba9ef9bd3..a5ba9ef9bd3 100644
--- a/src/test/compile-fail/issue-43733-2.rs
+++ b/src/test/ui/issue-43733-2.rs
diff --git a/src/test/ui/issue-43733-2.stderr b/src/test/ui/issue-43733-2.stderr
new file mode 100644
index 00000000000..8eb150ff833
--- /dev/null
+++ b/src/test/ui/issue-43733-2.stderr
@@ -0,0 +1,23 @@
+error[E0277]: `std::cell::UnsafeCell<std::option::Option<()>>` cannot be shared between threads safely
+  --> $DIR/issue-43733-2.rs:35:1
+   |
+LL | static __KEY: Key<()> = Key::new();
+   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `std::cell::UnsafeCell<std::option::Option<()>>` cannot be shared between threads safely
+   |
+   = help: within `std::thread::Key<()>`, the trait `std::marker::Sync` is not implemented for `std::cell::UnsafeCell<std::option::Option<()>>`
+   = note: required because it appears within the type `std::thread::Key<()>`
+   = note: shared static variables must have a type that implements `Sync`
+
+error[E0277]: `std::cell::Cell<bool>` cannot be shared between threads safely
+  --> $DIR/issue-43733-2.rs:35:1
+   |
+LL | static __KEY: Key<()> = Key::new();
+   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `std::cell::Cell<bool>` cannot be shared between threads safely
+   |
+   = help: within `std::thread::Key<()>`, the trait `std::marker::Sync` is not implemented for `std::cell::Cell<bool>`
+   = note: required because it appears within the type `std::thread::Key<()>`
+   = note: shared static variables must have a type that implements `Sync`
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/compile-fail/issue-43733.rs b/src/test/ui/issue-43733.rs
index 7b1364ff41c..7b1364ff41c 100644
--- a/src/test/compile-fail/issue-43733.rs
+++ b/src/test/ui/issue-43733.rs
diff --git a/src/test/ui/issue-43733.stderr b/src/test/ui/issue-43733.stderr
new file mode 100644
index 00000000000..5f91d3d2266
--- /dev/null
+++ b/src/test/ui/issue-43733.stderr
@@ -0,0 +1,19 @@
+error[E0133]: call to unsafe function is unsafe and requires unsafe function or block
+  --> $DIR/issue-43733.rs:30:5
+   |
+LL |     __KEY.get() //~ ERROR call to unsafe function is unsafe
+   |     ^^^^^^^^^^^ call to unsafe function
+   |
+   = note: consult the function's documentation for information on how to avoid undefined behavior
+
+error[E0133]: call to unsafe function is unsafe and requires unsafe function or block
+  --> $DIR/issue-43733.rs:34:5
+   |
+LL |     std::thread::LocalKey::new(__getit, Default::default);
+   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
+   |
+   = note: consult the function's documentation for information on how to avoid undefined behavior
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0133`.
diff --git a/src/test/compile-fail/issue-43784-associated-type.rs b/src/test/ui/issue-43784-associated-type.rs
index 94b5c0034a7..94b5c0034a7 100644
--- a/src/test/compile-fail/issue-43784-associated-type.rs
+++ b/src/test/ui/issue-43784-associated-type.rs
diff --git a/src/test/ui/issue-43784-associated-type.stderr b/src/test/ui/issue-43784-associated-type.stderr
new file mode 100644
index 00000000000..798d8c66016
--- /dev/null
+++ b/src/test/ui/issue-43784-associated-type.stderr
@@ -0,0 +1,16 @@
+error[E0601]: `main` function not found in crate `issue_43784_associated_type`
+   |
+   = note: consider adding a `main` function to `$DIR/issue-43784-associated-type.rs`
+
+error[E0277]: the trait bound `T: std::marker::Copy` is not satisfied
+  --> $DIR/issue-43784-associated-type.rs:23:9
+   |
+LL | impl<T> Complete for T { //~ ERROR the trait bound `T: std::marker::Copy` is not satisfied
+   |         ^^^^^^^^ the trait `std::marker::Copy` is not implemented for `T`
+   |
+   = help: consider adding a `where T: std::marker::Copy` bound
+
+error: aborting due to 2 previous errors
+
+Some errors occurred: E0277, E0601.
+For more information about an error, try `rustc --explain E0277`.
diff --git a/src/test/compile-fail/issue-43784-supertrait.rs b/src/test/ui/issue-43784-supertrait.rs
index e70df113da3..e70df113da3 100644
--- a/src/test/compile-fail/issue-43784-supertrait.rs
+++ b/src/test/ui/issue-43784-supertrait.rs
diff --git a/src/test/ui/issue-43784-supertrait.stderr b/src/test/ui/issue-43784-supertrait.stderr
new file mode 100644
index 00000000000..8646b315abd
--- /dev/null
+++ b/src/test/ui/issue-43784-supertrait.stderr
@@ -0,0 +1,16 @@
+error[E0601]: `main` function not found in crate `issue_43784_supertrait`
+   |
+   = note: consider adding a `main` function to `$DIR/issue-43784-supertrait.rs`
+
+error[E0277]: the trait bound `T: std::marker::Copy` is not satisfied
+  --> $DIR/issue-43784-supertrait.rs:18:9
+   |
+LL | impl<T> Complete for T {} //~ ERROR the trait bound `T: std::marker::Copy` is not satisfied
+   |         ^^^^^^^^ the trait `std::marker::Copy` is not implemented for `T`
+   |
+   = help: consider adding a `where T: std::marker::Copy` bound
+
+error: aborting due to 2 previous errors
+
+Some errors occurred: E0277, E0601.
+For more information about an error, try `rustc --explain E0277`.
diff --git a/src/test/compile-fail/issue-43925.rs b/src/test/ui/issue-43925.rs
index 8ad57647290..8ad57647290 100644
--- a/src/test/compile-fail/issue-43925.rs
+++ b/src/test/ui/issue-43925.rs
diff --git a/src/test/ui/issue-43925.stderr b/src/test/ui/issue-43925.stderr
new file mode 100644
index 00000000000..995289aec01
--- /dev/null
+++ b/src/test/ui/issue-43925.stderr
@@ -0,0 +1,8 @@
+error: invalid argument for `cfg(..)`
+  --> $DIR/issue-43925.rs:13:24
+   |
+LL | #[link(name="foo", cfg("rlib"))] //~ ERROR invalid argument for `cfg(..)`
+   |                        ^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-43926.rs b/src/test/ui/issue-43926.rs
index 5d510b643a3..5d510b643a3 100644
--- a/src/test/compile-fail/issue-43926.rs
+++ b/src/test/ui/issue-43926.rs
diff --git a/src/test/ui/issue-43926.stderr b/src/test/ui/issue-43926.stderr
new file mode 100644
index 00000000000..9719a87b31b
--- /dev/null
+++ b/src/test/ui/issue-43926.stderr
@@ -0,0 +1,8 @@
+error: `cfg()` must have an argument
+  --> $DIR/issue-43926.rs:11:1
+   |
+LL | #[link(name="foo", cfg())] //~ ERROR `cfg()` must have an argument
+   | ^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-43988.rs b/src/test/ui/issue-43988.rs
index 6361af76482..6361af76482 100644
--- a/src/test/compile-fail/issue-43988.rs
+++ b/src/test/ui/issue-43988.rs
diff --git a/src/test/ui/issue-43988.stderr b/src/test/ui/issue-43988.stderr
new file mode 100644
index 00000000000..7237851f778
--- /dev/null
+++ b/src/test/ui/issue-43988.stderr
@@ -0,0 +1,79 @@
+warning: `repr` attribute must have a hint
+  --> $DIR/issue-43988.rs:34:5
+   |
+LL |     #[repr]
+   |     ^^^^^^^ needs a hint
+   |
+   = note: #[warn(bad_repr)] on by default
+   = help: valid hints include `#[repr(C)]`, `#[repr(packed)]`, `#[repr(rust)]` and `#[repr(transparent)]`
+   = note: for more information, visit <https://doc.rust-lang.org/reference/type-layout.html>
+
+warning: `repr` attribute must have a hint
+  --> $DIR/issue-43988.rs:46:14
+   |
+LL |     let _z = #[repr] 1;
+   |              ^^^^^^^ needs a hint
+   |
+   = help: valid hints include `#[repr(C)]`, `#[repr(packed)]`, `#[repr(rust)]` and `#[repr(transparent)]`
+   = note: for more information, visit <https://doc.rust-lang.org/reference/type-layout.html>
+
+error[E0518]: attribute should be applied to function or closure
+  --> $DIR/issue-43988.rs:15:5
+   |
+LL |     #[inline]
+   |     ^^^^^^^^^
+LL |     let _a = 4;
+   |     ----------- not a function or closure
+
+error[E0518]: attribute should be applied to function or closure
+  --> $DIR/issue-43988.rs:20:5
+   |
+LL |     #[inline(XYZ)]
+   |     ^^^^^^^^^^^^^^
+LL |     let _b = 4;
+   |     ----------- not a function or closure
+
+error[E0517]: attribute should not be applied to a statement
+  --> $DIR/issue-43988.rs:24:5
+   |
+LL |     #[repr(nothing)]
+   |     ^^^^^^^^^^^^^^^^
+LL |     let _x = 0;
+   |     ----------- not a struct, enum or union
+
+error[E0517]: attribute should not be applied to an expression
+  --> $DIR/issue-43988.rs:28:5
+   |
+LL |       #[repr(something_not_real)]
+   |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
+LL | /     loop {
+LL | |         ()
+LL | |     };
+   | |_____- not defining a struct, enum or union
+
+error[E0517]: attribute should not be applied to a statement
+  --> $DIR/issue-43988.rs:34:5
+   |
+LL |     #[repr]
+   |     ^^^^^^^
+LL |     let _y = "123";
+   |     --------------- not a struct, enum or union
+
+error[E0518]: attribute should be applied to function or closure
+  --> $DIR/issue-43988.rs:42:5
+   |
+LL |     #[inline(ABC)]
+   |     ^^^^^^^^^^^^^^
+LL |     foo();
+   |     ----- not a function or closure
+
+error[E0517]: attribute should not be applied to an expression
+  --> $DIR/issue-43988.rs:46:14
+   |
+LL |     let _z = #[repr] 1;
+   |              ^^^^^^^ - not defining a struct, enum or union
+
+error: aborting due to 7 previous errors
+
+Some errors occurred: E0517, E0518.
+For more information about an error, try `rustc --explain E0517`.
diff --git a/src/test/compile-fail/issue-44021.rs b/src/test/ui/issue-44021.rs
index b6ec21b94c7..b6ec21b94c7 100644
--- a/src/test/compile-fail/issue-44021.rs
+++ b/src/test/ui/issue-44021.rs
diff --git a/src/test/ui/issue-44021.stderr b/src/test/ui/issue-44021.stderr
new file mode 100644
index 00000000000..2c74531cf24
--- /dev/null
+++ b/src/test/ui/issue-44021.stderr
@@ -0,0 +1,8 @@
+error: expected one of `:`, `@`, or `|`, found `}`
+  --> $DIR/issue-44021.rs:13:18
+   |
+LL |     fn f() {|x, y} //~ ERROR expected one of `:`, `@`, or `|`, found `}`
+   |                  ^ expected one of `:`, `@`, or `|` here
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-44239.rs b/src/test/ui/issue-44239.rs
index 131c6526642..131c6526642 100644
--- a/src/test/compile-fail/issue-44239.rs
+++ b/src/test/ui/issue-44239.rs
diff --git a/src/test/ui/issue-44239.stderr b/src/test/ui/issue-44239.stderr
new file mode 100644
index 00000000000..43d4968a89f
--- /dev/null
+++ b/src/test/ui/issue-44239.stderr
@@ -0,0 +1,9 @@
+error[E0435]: attempt to use a non-constant value in a constant
+  --> $DIR/issue-44239.rs:16:26
+   |
+LL |         const N: usize = n;
+   |                          ^ non-constant value
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0435`.
diff --git a/src/test/compile-fail/issue-44373.rs b/src/test/ui/issue-44373.rs
index d744ad11c5c..d744ad11c5c 100644
--- a/src/test/compile-fail/issue-44373.rs
+++ b/src/test/ui/issue-44373.rs
diff --git a/src/test/ui/issue-44373.stderr b/src/test/ui/issue-44373.stderr
new file mode 100644
index 00000000000..17a634ba747
--- /dev/null
+++ b/src/test/ui/issue-44373.stderr
@@ -0,0 +1,13 @@
+error[E0597]: borrowed value does not live long enough
+  --> $DIR/issue-44373.rs:15:42
+   |
+LL |     let _val: &'static [&'static u32] = &[&FOO]; //~ ERROR borrowed value does not live long enough
+   |                                          ^^^^^^ temporary value does not live long enough
+LL | }
+   | - temporary value only lives until here
+   |
+   = note: borrowed value must be valid for the static lifetime...
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0597`.
diff --git a/src/test/compile-fail/issue-44415.rs b/src/test/ui/issue-44415.rs
index ecaf326b050..5d295510844 100644
--- a/src/test/compile-fail/issue-44415.rs
+++ b/src/test/ui/issue-44415.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-// error-pattern: cycle detected when computing layout of
+//~^^^^^^^^^^ ERROR cycle detected when computing layout of
 
 #![feature(const_fn)]
 #![feature(core_intrinsics)]
diff --git a/src/test/ui/issue-44415.stderr b/src/test/ui/issue-44415.stderr
new file mode 100644
index 00000000000..ac2072c513e
--- /dev/null
+++ b/src/test/ui/issue-44415.stderr
@@ -0,0 +1,18 @@
+error[E0391]: cycle detected when computing layout of `Foo`
+   |
+note: ...which requires normalizing `ParamEnvAnd { param_env: ParamEnv { caller_bounds: [], reveal: All }, value: [u8; _] }`...
+note: ...which requires const-evaluating `Foo::bytes::{{constant}}`...
+  --> $DIR/issue-44415.rs:19:26
+   |
+LL |     bytes: [u8; unsafe { intrinsics::size_of::<Foo>() }],
+   |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   = note: ...which again requires computing layout of `Foo`, completing the cycle
+note: cycle used when const-evaluating `Foo::bytes::{{constant}}`
+  --> $DIR/issue-44415.rs:19:26
+   |
+LL |     bytes: [u8; unsafe { intrinsics::size_of::<Foo>() }],
+   |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0391`.
diff --git a/src/test/compile-fail/issue-45087-unreachable-unsafe.rs b/src/test/ui/issue-45087-unreachable-unsafe.rs
index 5af0bf6be56..5af0bf6be56 100644
--- a/src/test/compile-fail/issue-45087-unreachable-unsafe.rs
+++ b/src/test/ui/issue-45087-unreachable-unsafe.rs
diff --git a/src/test/ui/issue-45087-unreachable-unsafe.stderr b/src/test/ui/issue-45087-unreachable-unsafe.stderr
new file mode 100644
index 00000000000..8a967838bc3
--- /dev/null
+++ b/src/test/ui/issue-45087-unreachable-unsafe.stderr
@@ -0,0 +1,11 @@
+error[E0133]: dereference of raw pointer is unsafe and requires unsafe function or block
+  --> $DIR/issue-45087-unreachable-unsafe.rs:13:5
+   |
+LL |     *(1 as *mut u32) = 42;
+   |     ^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
+   |
+   = note: raw pointers may be NULL, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0133`.
diff --git a/src/test/compile-fail/issue-4517.rs b/src/test/ui/issue-4517.rs
index fbd8972cbfa..fbd8972cbfa 100644
--- a/src/test/compile-fail/issue-4517.rs
+++ b/src/test/ui/issue-4517.rs
diff --git a/src/test/ui/issue-4517.stderr b/src/test/ui/issue-4517.stderr
new file mode 100644
index 00000000000..ca96c396fd0
--- /dev/null
+++ b/src/test/ui/issue-4517.stderr
@@ -0,0 +1,12 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-4517.rs:15:9
+   |
+LL |     bar(foo);
+   |         ^^^ expected usize, found array of 4 elements
+   |
+   = note: expected type `usize`
+              found type `[u8; 4]`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/ui/issue-45199.ast.nll.stderr b/src/test/ui/issue-45199.ast.nll.stderr
new file mode 100644
index 00000000000..ce39776252b
--- /dev/null
+++ b/src/test/ui/issue-45199.ast.nll.stderr
@@ -0,0 +1,36 @@
+error[E0384]: cannot assign twice to immutable variable `b`
+  --> $DIR/issue-45199.rs:19:5
+   |
+LL |     let b: Box<isize>;
+   |         - consider changing this to `mut b`
+LL |     //[mir]~^ NOTE consider changing this to `mut b`
+LL |     b = Box::new(1);    //[ast]~ NOTE first assignment
+   |     - first assignment to `b`
+LL |                         //[mir]~^ NOTE first assignment
+LL |     b = Box::new(2);    //[ast]~ ERROR cannot assign twice to immutable variable
+   |     ^ cannot assign twice to immutable variable
+
+error[E0384]: cannot assign twice to immutable variable `b`
+  --> $DIR/issue-45199.rs:29:5
+   |
+LL |     let b = Box::new(1);    //[ast]~ NOTE first assignment
+   |         -
+   |         |
+   |         first assignment to `b`
+   |         consider changing this to `mut b`
+...
+LL |     b = Box::new(2);        //[ast]~ ERROR cannot assign twice to immutable variable
+   |     ^ cannot assign twice to immutable variable
+
+error[E0384]: cannot assign to immutable argument `b`
+  --> $DIR/issue-45199.rs:37:5
+   |
+LL | fn test_args(b: Box<i32>) {  //[ast]~ NOTE first assignment
+   |              - consider changing this to `mut b`
+LL |                                 //[mir]~^ NOTE consider changing this to `mut b`
+LL |     b = Box::new(2);            //[ast]~ ERROR cannot assign twice to immutable variable
+   |     ^ cannot assign to immutable argument
+
+error: aborting due to 3 previous errors
+
+For more information about this error, try `rustc --explain E0384`.
diff --git a/src/test/ui/issue-45199.ast.stderr b/src/test/ui/issue-45199.ast.stderr
new file mode 100644
index 00000000000..ff8f78b5116
--- /dev/null
+++ b/src/test/ui/issue-45199.ast.stderr
@@ -0,0 +1,30 @@
+error[E0384]: cannot assign twice to immutable variable `b`
+  --> $DIR/issue-45199.rs:19:5
+   |
+LL |     b = Box::new(1);    //[ast]~ NOTE first assignment
+   |     --------------- first assignment to `b`
+LL |                         //[mir]~^ NOTE first assignment
+LL |     b = Box::new(2);    //[ast]~ ERROR cannot assign twice to immutable variable
+   |     ^^^^^^^^^^^^^^^ cannot assign twice to immutable variable
+
+error[E0384]: cannot assign twice to immutable variable `b`
+  --> $DIR/issue-45199.rs:29:5
+   |
+LL |     let b = Box::new(1);    //[ast]~ NOTE first assignment
+   |         - first assignment to `b`
+...
+LL |     b = Box::new(2);        //[ast]~ ERROR cannot assign twice to immutable variable
+   |     ^^^^^^^^^^^^^^^ cannot assign twice to immutable variable
+
+error[E0384]: cannot assign twice to immutable variable `b`
+  --> $DIR/issue-45199.rs:37:5
+   |
+LL | fn test_args(b: Box<i32>) {  //[ast]~ NOTE first assignment
+   |              - first assignment to `b`
+LL |                                 //[mir]~^ NOTE consider changing this to `mut b`
+LL |     b = Box::new(2);            //[ast]~ ERROR cannot assign twice to immutable variable
+   |     ^^^^^^^^^^^^^^^ cannot assign twice to immutable variable
+
+error: aborting due to 3 previous errors
+
+For more information about this error, try `rustc --explain E0384`.
diff --git a/src/test/ui/issue-45199.mir.stderr b/src/test/ui/issue-45199.mir.stderr
new file mode 100644
index 00000000000..ce39776252b
--- /dev/null
+++ b/src/test/ui/issue-45199.mir.stderr
@@ -0,0 +1,36 @@
+error[E0384]: cannot assign twice to immutable variable `b`
+  --> $DIR/issue-45199.rs:19:5
+   |
+LL |     let b: Box<isize>;
+   |         - consider changing this to `mut b`
+LL |     //[mir]~^ NOTE consider changing this to `mut b`
+LL |     b = Box::new(1);    //[ast]~ NOTE first assignment
+   |     - first assignment to `b`
+LL |                         //[mir]~^ NOTE first assignment
+LL |     b = Box::new(2);    //[ast]~ ERROR cannot assign twice to immutable variable
+   |     ^ cannot assign twice to immutable variable
+
+error[E0384]: cannot assign twice to immutable variable `b`
+  --> $DIR/issue-45199.rs:29:5
+   |
+LL |     let b = Box::new(1);    //[ast]~ NOTE first assignment
+   |         -
+   |         |
+   |         first assignment to `b`
+   |         consider changing this to `mut b`
+...
+LL |     b = Box::new(2);        //[ast]~ ERROR cannot assign twice to immutable variable
+   |     ^ cannot assign twice to immutable variable
+
+error[E0384]: cannot assign to immutable argument `b`
+  --> $DIR/issue-45199.rs:37:5
+   |
+LL | fn test_args(b: Box<i32>) {  //[ast]~ NOTE first assignment
+   |              - consider changing this to `mut b`
+LL |                                 //[mir]~^ NOTE consider changing this to `mut b`
+LL |     b = Box::new(2);            //[ast]~ ERROR cannot assign twice to immutable variable
+   |     ^ cannot assign to immutable argument
+
+error: aborting due to 3 previous errors
+
+For more information about this error, try `rustc --explain E0384`.
diff --git a/src/test/compile-fail/issue-45199.rs b/src/test/ui/issue-45199.rs
index 61e19ffc0d2..61e19ffc0d2 100644
--- a/src/test/compile-fail/issue-45199.rs
+++ b/src/test/ui/issue-45199.rs
diff --git a/src/test/compile-fail/issue-45729-unsafe-in-generator.rs b/src/test/ui/issue-45729-unsafe-in-generator.rs
index b42ced07583..b42ced07583 100644
--- a/src/test/compile-fail/issue-45729-unsafe-in-generator.rs
+++ b/src/test/ui/issue-45729-unsafe-in-generator.rs
diff --git a/src/test/ui/issue-45729-unsafe-in-generator.stderr b/src/test/ui/issue-45729-unsafe-in-generator.stderr
new file mode 100644
index 00000000000..3fad5209fd5
--- /dev/null
+++ b/src/test/ui/issue-45729-unsafe-in-generator.stderr
@@ -0,0 +1,11 @@
+error[E0133]: dereference of raw pointer is unsafe and requires unsafe function or block
+  --> $DIR/issue-45729-unsafe-in-generator.rs:15:9
+   |
+LL |         *(1 as *mut u32) = 42;
+   |         ^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
+   |
+   = note: raw pointers may be NULL, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0133`.
diff --git a/src/test/compile-fail/issue-45801.rs b/src/test/ui/issue-45801.rs
index 7823a7d6ba8..7823a7d6ba8 100644
--- a/src/test/compile-fail/issue-45801.rs
+++ b/src/test/ui/issue-45801.rs
diff --git a/src/test/ui/issue-45801.stderr b/src/test/ui/issue-45801.stderr
new file mode 100644
index 00000000000..91c14be8833
--- /dev/null
+++ b/src/test/ui/issue-45801.stderr
@@ -0,0 +1,12 @@
+error[E0277]: the trait bound `Params: Plugin<i32>` is not satisfied
+  --> $DIR/issue-45801.rs:31:9
+   |
+LL |     req.get_ref::<Params>();
+   |         ^^^^^^^ the trait `Plugin<i32>` is not implemented for `Params`
+   |
+   = help: the following implementations were found:
+             <Params as Plugin<Foo>>
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/compile-fail/issue-45965.rs b/src/test/ui/issue-45965.rs
index 0b82f2b32ff..0b82f2b32ff 100644
--- a/src/test/compile-fail/issue-45965.rs
+++ b/src/test/ui/issue-45965.rs
diff --git a/src/test/ui/issue-45965.stderr b/src/test/ui/issue-45965.stderr
new file mode 100644
index 00000000000..2b3870feef3
--- /dev/null
+++ b/src/test/ui/issue-45965.stderr
@@ -0,0 +1,9 @@
+error[E0618]: expected function, found `{float}`
+  --> $DIR/issue-45965.rs:12:30
+   |
+LL |     let a = |r: f64| if r != 0.0(r != 0.0) { 1.0 } else { 0.0 };
+   |                              ^^^^^^^^^^^^^ not a function
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0618`.
diff --git a/src/test/ui/issue-46023.ast.nll.stderr b/src/test/ui/issue-46023.ast.nll.stderr
new file mode 100644
index 00000000000..2fc2924c2ec
--- /dev/null
+++ b/src/test/ui/issue-46023.ast.nll.stderr
@@ -0,0 +1,9 @@
+error[E0594]: cannot assign to immutable item `x`
+  --> $DIR/issue-46023.rs:18:9
+   |
+LL |         x = 1;
+   |         ^^^^^ cannot assign
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/issue-46023.ast.stderr b/src/test/ui/issue-46023.ast.stderr
new file mode 100644
index 00000000000..42fe73d88e6
--- /dev/null
+++ b/src/test/ui/issue-46023.ast.stderr
@@ -0,0 +1,12 @@
+error[E0594]: cannot assign to captured outer variable in an `FnMut` closure
+  --> $DIR/issue-46023.rs:18:9
+   |
+LL |     let x = 0;
+   |         - help: consider making `x` mutable: `mut x`
+...
+LL |         x = 1;
+   |         ^^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/issue-46023.mir.stderr b/src/test/ui/issue-46023.mir.stderr
new file mode 100644
index 00000000000..2fc2924c2ec
--- /dev/null
+++ b/src/test/ui/issue-46023.mir.stderr
@@ -0,0 +1,9 @@
+error[E0594]: cannot assign to immutable item `x`
+  --> $DIR/issue-46023.rs:18:9
+   |
+LL |         x = 1;
+   |         ^^^^^ cannot assign
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/compile-fail/issue-46023.rs b/src/test/ui/issue-46023.rs
index d51d92570fd..d51d92570fd 100644
--- a/src/test/compile-fail/issue-46023.rs
+++ b/src/test/ui/issue-46023.rs
diff --git a/src/test/compile-fail/issue-46036.rs b/src/test/ui/issue-46036.rs
index b5cdded4d30..b5cdded4d30 100644
--- a/src/test/compile-fail/issue-46036.rs
+++ b/src/test/ui/issue-46036.rs
diff --git a/src/test/ui/issue-46036.stderr b/src/test/ui/issue-46036.stderr
new file mode 100644
index 00000000000..e0df49f5823
--- /dev/null
+++ b/src/test/ui/issue-46036.stderr
@@ -0,0 +1,14 @@
+error[E0597]: `a` does not live long enough
+  --> $DIR/issue-46036.rs:19:24
+   |
+LL |     let foo = Foo { x: &a }; //~ ERROR E0597
+   |                        ^^ borrowed value does not live long enough
+LL |     loop { }
+LL | }
+   | - borrowed value only lives until here
+   |
+   = note: borrowed value must be valid for the static lifetime...
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0597`.
diff --git a/src/test/compile-fail/issue-46311.rs b/src/test/ui/issue-46311.rs
index 82f55f2c142..82f55f2c142 100644
--- a/src/test/compile-fail/issue-46311.rs
+++ b/src/test/ui/issue-46311.rs
diff --git a/src/test/ui/issue-46311.stderr b/src/test/ui/issue-46311.stderr
new file mode 100644
index 00000000000..790399c75ee
--- /dev/null
+++ b/src/test/ui/issue-46311.stderr
@@ -0,0 +1,8 @@
+error: invalid label name `'break`
+  --> $DIR/issue-46311.rs:12:5
+   |
+LL |     'break: loop { //~ ERROR invalid label name `'break`
+   |     ^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-46438.rs b/src/test/ui/issue-46438.rs
index d84b5813385..d84b5813385 100644
--- a/src/test/compile-fail/issue-46438.rs
+++ b/src/test/ui/issue-46438.rs
diff --git a/src/test/ui/issue-46438.stderr b/src/test/ui/issue-46438.stderr
new file mode 100644
index 00000000000..b0d6229d24b
--- /dev/null
+++ b/src/test/ui/issue-46438.stderr
@@ -0,0 +1,8 @@
+error: expected a trait, found type
+  --> $DIR/issue-46438.rs:21:4
+   |
+LL | m!(&'static u8); //~ ERROR expected a trait, found type
+   |    ^^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/ui/issue-46604.ast.nll.stderr b/src/test/ui/issue-46604.ast.nll.stderr
new file mode 100644
index 00000000000..b947bec6397
--- /dev/null
+++ b/src/test/ui/issue-46604.ast.nll.stderr
@@ -0,0 +1,16 @@
+error[E0017]: references in statics may only refer to immutable values
+  --> $DIR/issue-46604.rs:14:25
+   |
+LL | static buf: &mut [u8] = &mut [1u8,2,3,4,5,7];   //[ast]~ ERROR E0017
+   |                         ^^^^^^^^^^^^^^^^^^^^ statics require immutable values
+
+error[E0594]: cannot assign to immutable item `buf[..]`
+  --> $DIR/issue-46604.rs:20:5
+   |
+LL |     buf[0]=2;                                   //[ast]~ ERROR E0389
+   |     ^^^^^^^^ cannot assign
+
+error: aborting due to 2 previous errors
+
+Some errors occurred: E0017, E0594.
+For more information about an error, try `rustc --explain E0017`.
diff --git a/src/test/ui/issue-46604.ast.stderr b/src/test/ui/issue-46604.ast.stderr
new file mode 100644
index 00000000000..713ba476a1c
--- /dev/null
+++ b/src/test/ui/issue-46604.ast.stderr
@@ -0,0 +1,16 @@
+error[E0017]: references in statics may only refer to immutable values
+  --> $DIR/issue-46604.rs:14:25
+   |
+LL | static buf: &mut [u8] = &mut [1u8,2,3,4,5,7];   //[ast]~ ERROR E0017
+   |                         ^^^^^^^^^^^^^^^^^^^^ statics require immutable values
+
+error[E0389]: cannot assign to data in a `&` reference
+  --> $DIR/issue-46604.rs:20:5
+   |
+LL |     buf[0]=2;                                   //[ast]~ ERROR E0389
+   |     ^^^^^^^^ assignment into an immutable reference
+
+error: aborting due to 2 previous errors
+
+Some errors occurred: E0017, E0389.
+For more information about an error, try `rustc --explain E0017`.
diff --git a/src/test/ui/issue-46604.mir.stderr b/src/test/ui/issue-46604.mir.stderr
new file mode 100644
index 00000000000..b947bec6397
--- /dev/null
+++ b/src/test/ui/issue-46604.mir.stderr
@@ -0,0 +1,16 @@
+error[E0017]: references in statics may only refer to immutable values
+  --> $DIR/issue-46604.rs:14:25
+   |
+LL | static buf: &mut [u8] = &mut [1u8,2,3,4,5,7];   //[ast]~ ERROR E0017
+   |                         ^^^^^^^^^^^^^^^^^^^^ statics require immutable values
+
+error[E0594]: cannot assign to immutable item `buf[..]`
+  --> $DIR/issue-46604.rs:20:5
+   |
+LL |     buf[0]=2;                                   //[ast]~ ERROR E0389
+   |     ^^^^^^^^ cannot assign
+
+error: aborting due to 2 previous errors
+
+Some errors occurred: E0017, E0594.
+For more information about an error, try `rustc --explain E0017`.
diff --git a/src/test/compile-fail/issue-46604.rs b/src/test/ui/issue-46604.rs
index dc14eca1e67..dc14eca1e67 100644
--- a/src/test/compile-fail/issue-46604.rs
+++ b/src/test/ui/issue-46604.rs
diff --git a/src/test/compile-fail/issue-46771.rs b/src/test/ui/issue-46771.rs
index f8bcd8861f3..f8bcd8861f3 100644
--- a/src/test/compile-fail/issue-46771.rs
+++ b/src/test/ui/issue-46771.rs
diff --git a/src/test/ui/issue-46771.stderr b/src/test/ui/issue-46771.stderr
new file mode 100644
index 00000000000..0d57d61e9ff
--- /dev/null
+++ b/src/test/ui/issue-46771.stderr
@@ -0,0 +1,11 @@
+error[E0618]: expected function, found `main::Foo`
+  --> $DIR/issue-46771.rs:13:23
+   |
+LL |     struct Foo;
+   |     ----------- `main::Foo` defined here
+LL |     (1 .. 2).find(|_| Foo(0) == 0); //~ ERROR expected function, found `main::Foo`
+   |                       ^^^^^^ not a function
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0618`.
diff --git a/src/test/compile-fail/issue-46843.rs b/src/test/ui/issue-46843.rs
index d88b4e568b0..d88b4e568b0 100644
--- a/src/test/compile-fail/issue-46843.rs
+++ b/src/test/ui/issue-46843.rs
diff --git a/src/test/ui/issue-46843.stderr b/src/test/ui/issue-46843.stderr
new file mode 100644
index 00000000000..9b752f41f59
--- /dev/null
+++ b/src/test/ui/issue-46843.stderr
@@ -0,0 +1,16 @@
+error[E0015]: calls in constants are limited to constant functions, tuple structs and tuple variants
+  --> $DIR/issue-46843.rs:17:26
+   |
+LL | pub const Q: i32 = match non_const() { //~ ERROR E0015
+   |                          ^^^^^^^^^^^
+
+error[E0019]: constant contains unimplemented expression type
+  --> $DIR/issue-46843.rs:18:5
+   |
+LL |     Thing::This => 1, //~ ERROR unimplemented expression type
+   |     ^^^^^^^^^^^
+
+error: aborting due to 2 previous errors
+
+Some errors occurred: E0015, E0019.
+For more information about an error, try `rustc --explain E0015`.
diff --git a/src/test/compile-fail/issue-47309.rs b/src/test/ui/issue-47309.rs
index 1b9ff36f714..1b9ff36f714 100644
--- a/src/test/compile-fail/issue-47309.rs
+++ b/src/test/ui/issue-47309.rs
diff --git a/src/test/compile-fail/issue-4736.rs b/src/test/ui/issue-4736.rs
index 19803079d02..19803079d02 100644
--- a/src/test/compile-fail/issue-4736.rs
+++ b/src/test/ui/issue-4736.rs
diff --git a/src/test/ui/issue-4736.stderr b/src/test/ui/issue-4736.stderr
new file mode 100644
index 00000000000..6c0acc0b63f
--- /dev/null
+++ b/src/test/ui/issue-4736.stderr
@@ -0,0 +1,9 @@
+error[E0560]: struct `NonCopyable` has no field named `p`
+  --> $DIR/issue-4736.rs:14:26
+   |
+LL |     let z = NonCopyable{ p: () }; //~ ERROR struct `NonCopyable` has no field named `p`
+   |                          ^ field does not exist - did you mean `0`?
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0560`.
diff --git a/src/test/compile-fail/issue-47412.rs b/src/test/ui/issue-47412.rs
index 683ef876f4e..683ef876f4e 100644
--- a/src/test/compile-fail/issue-47412.rs
+++ b/src/test/ui/issue-47412.rs
diff --git a/src/test/ui/issue-47412.stderr b/src/test/ui/issue-47412.stderr
new file mode 100644
index 00000000000..6ca404003a5
--- /dev/null
+++ b/src/test/ui/issue-47412.stderr
@@ -0,0 +1,19 @@
+error[E0133]: access to union field is unsafe and requires unsafe function or block
+  --> $DIR/issue-47412.rs:21:5
+   |
+LL |     match u.void {}
+   |     ^^^^^^^^^^^^^^^ access to union field
+   |
+   = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior
+
+error[E0133]: dereference of raw pointer is unsafe and requires unsafe function or block
+  --> $DIR/issue-47412.rs:27:5
+   |
+LL |     match *ptr {}
+   |     ^^^^^^^^^^^^^ dereference of raw pointer
+   |
+   = note: raw pointers may be NULL, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0133`.
diff --git a/src/test/compile-fail/issue-47715.rs b/src/test/ui/issue-47715.rs
index b6b720f088a..b6b720f088a 100644
--- a/src/test/compile-fail/issue-47715.rs
+++ b/src/test/ui/issue-47715.rs
diff --git a/src/test/ui/issue-47715.stderr b/src/test/ui/issue-47715.stderr
new file mode 100644
index 00000000000..29b6afe7d07
--- /dev/null
+++ b/src/test/ui/issue-47715.stderr
@@ -0,0 +1,27 @@
+error[E0562]: `impl Trait` not allowed outside of function and inherent method return types
+  --> $DIR/issue-47715.rs:19:37
+   |
+LL | struct Container<T: Iterable<Item = impl Foo>> {
+   |                                     ^^^^^^^^
+
+error[E0562]: `impl Trait` not allowed outside of function and inherent method return types
+  --> $DIR/issue-47715.rs:24:30
+   |
+LL | enum Enum<T: Iterable<Item = impl Foo>> {
+   |                              ^^^^^^^^
+
+error[E0562]: `impl Trait` not allowed outside of function and inherent method return types
+  --> $DIR/issue-47715.rs:29:32
+   |
+LL | union Union<T: Iterable<Item = impl Foo> + Copy> {
+   |                                ^^^^^^^^
+
+error[E0562]: `impl Trait` not allowed outside of function and inherent method return types
+  --> $DIR/issue-47715.rs:34:30
+   |
+LL | type Type<T: Iterable<Item = impl Foo>> = T;
+   |                              ^^^^^^^^
+
+error: aborting due to 4 previous errors
+
+For more information about this error, try `rustc --explain E0562`.
diff --git a/src/test/compile-fail/issue-48131.rs b/src/test/ui/issue-48131.rs
index 9eb567a5d3e..9eb567a5d3e 100644
--- a/src/test/compile-fail/issue-48131.rs
+++ b/src/test/ui/issue-48131.rs
diff --git a/src/test/ui/issue-48131.stderr b/src/test/ui/issue-48131.stderr
new file mode 100644
index 00000000000..d0ba1a1c37d
--- /dev/null
+++ b/src/test/ui/issue-48131.stderr
@@ -0,0 +1,20 @@
+error: unnecessary `unsafe` block
+  --> $DIR/issue-48131.rs:18:9
+   |
+LL |         unsafe { /* unnecessary */ } //~ ERROR unnecessary `unsafe`
+   |         ^^^^^^ unnecessary `unsafe` block
+   |
+note: lint level defined here
+  --> $DIR/issue-48131.rs:13:9
+   |
+LL | #![deny(unused_unsafe)] //~ NOTE
+   |         ^^^^^^^^^^^^^
+
+error: unnecessary `unsafe` block
+  --> $DIR/issue-48131.rs:29:13
+   |
+LL |             unsafe { /* unnecessary */ } //~ ERROR unnecessary `unsafe`
+   |             ^^^^^^ unnecessary `unsafe` block
+
+error: aborting due to 2 previous errors
+
diff --git a/src/test/compile-fail/issue-48838.rs b/src/test/ui/issue-48838.rs
index ab52a32869f..ab52a32869f 100644
--- a/src/test/compile-fail/issue-48838.rs
+++ b/src/test/ui/issue-48838.rs
diff --git a/src/test/ui/issue-48838.stderr b/src/test/ui/issue-48838.stderr
new file mode 100644
index 00000000000..2c7e682a982
--- /dev/null
+++ b/src/test/ui/issue-48838.stderr
@@ -0,0 +1,12 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-48838.rs:12:14
+   |
+LL |     Square = |x| x, //~ ERROR mismatched types
+   |              ^^^^^ expected isize, found closure
+   |
+   = note: expected type `isize`
+              found type `[closure@$DIR/issue-48838.rs:12:14: 12:19]`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-4968.rs b/src/test/ui/issue-4968.rs
index 77588e5c221..77588e5c221 100644
--- a/src/test/compile-fail/issue-4968.rs
+++ b/src/test/ui/issue-4968.rs
diff --git a/src/test/ui/issue-4968.stderr b/src/test/ui/issue-4968.stderr
new file mode 100644
index 00000000000..a9d58eda6e8
--- /dev/null
+++ b/src/test/ui/issue-4968.stderr
@@ -0,0 +1,12 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-4968.rs:15:16
+   |
+LL |     match 42 { A => () }
+   |                ^ expected integral variable, found tuple
+   |
+   = note: expected type `{integer}`
+              found type `(isize, isize)`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-4972.rs b/src/test/ui/issue-4972.rs
index f384dba7c9e..f384dba7c9e 100644
--- a/src/test/compile-fail/issue-4972.rs
+++ b/src/test/ui/issue-4972.rs
diff --git a/src/test/ui/issue-4972.stderr b/src/test/ui/issue-4972.stderr
new file mode 100644
index 00000000000..e9c1bdb6f86
--- /dev/null
+++ b/src/test/ui/issue-4972.stderr
@@ -0,0 +1,9 @@
+error[E0033]: type `std::boxed::Box<(dyn MyTrait + 'static)>` cannot be dereferenced
+  --> $DIR/issue-4972.rs:24:25
+   |
+LL |         TraitWrapper::A(box ref map) => map, //~ ERROR cannot be dereferenced
+   |                         ^^^^^^^^^^^ type `std::boxed::Box<(dyn MyTrait + 'static)>` cannot be dereferenced
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0033`.
diff --git a/src/test/compile-fail/issue-50471.rs b/src/test/ui/issue-50471.rs
index ce2947144af..ce2947144af 100644
--- a/src/test/compile-fail/issue-50471.rs
+++ b/src/test/ui/issue-50471.rs
diff --git a/src/test/compile-fail/issue-50600.rs b/src/test/ui/issue-50600.rs
index 6169a7770bf..6169a7770bf 100644
--- a/src/test/compile-fail/issue-50600.rs
+++ b/src/test/ui/issue-50600.rs
diff --git a/src/test/ui/issue-50600.stderr b/src/test/ui/issue-50600.stderr
new file mode 100644
index 00000000000..a72dbace248
--- /dev/null
+++ b/src/test/ui/issue-50600.stderr
@@ -0,0 +1,12 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-50600.rs:12:13
+   |
+LL |     fn([u8; |x: u8| {}]), //~ ERROR mismatched types
+   |             ^^^^^^^^^^ expected usize, found closure
+   |
+   = note: expected type `usize`
+              found type `[closure@$DIR/issue-50600.rs:12:13: 12:23]`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-5062.rs b/src/test/ui/issue-5062.rs
index ebfa4975d4d..ebfa4975d4d 100644
--- a/src/test/compile-fail/issue-5062.rs
+++ b/src/test/ui/issue-5062.rs
diff --git a/src/test/ui/issue-5062.stderr b/src/test/ui/issue-5062.stderr
new file mode 100644
index 00000000000..988c5c137b4
--- /dev/null
+++ b/src/test/ui/issue-5062.stderr
@@ -0,0 +1,9 @@
+error[E0282]: type annotations needed
+  --> $DIR/issue-5062.rs:11:29
+   |
+LL | fn main() { format!("{:?}", None); }
+   |                             ^^^^ cannot infer type for `T`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0282`.
diff --git a/src/test/compile-fail/issue-5067.rs b/src/test/ui/issue-5067.rs
index 267362f902d..267362f902d 100644
--- a/src/test/compile-fail/issue-5067.rs
+++ b/src/test/ui/issue-5067.rs
diff --git a/src/test/ui/issue-5067.stderr b/src/test/ui/issue-5067.stderr
new file mode 100644
index 00000000000..2ea3ea5204c
--- /dev/null
+++ b/src/test/ui/issue-5067.stderr
@@ -0,0 +1,62 @@
+error: repetition matches empty token tree
+  --> $DIR/issue-5067.rs:14:8
+   |
+LL |     ( $()* ) => {};
+   |        ^^
+
+error: repetition matches empty token tree
+  --> $DIR/issue-5067.rs:16:8
+   |
+LL |     ( $()+ ) => {};
+   |        ^^
+
+error: repetition matches empty token tree
+  --> $DIR/issue-5067.rs:22:9
+   |
+LL |     ( [$()*] ) => {};
+   |         ^^
+
+error: repetition matches empty token tree
+  --> $DIR/issue-5067.rs:24:9
+   |
+LL |     ( [$()+] ) => {};
+   |         ^^
+
+error: repetition matches empty token tree
+  --> $DIR/issue-5067.rs:30:8
+   |
+LL |     ( $($()* $(),* $(a)* $(a),* )* ) => {};
+   |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+error: repetition matches empty token tree
+  --> $DIR/issue-5067.rs:32:8
+   |
+LL |     ( $($()* $(),* $(a)* $(a),* )+ ) => {};
+   |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+error: repetition matches empty token tree
+  --> $DIR/issue-5067.rs:38:12
+   |
+LL |     ( $(a $()+)* ) => {};
+   |            ^^
+
+error: repetition matches empty token tree
+  --> $DIR/issue-5067.rs:40:12
+   |
+LL |     ( $(a $()*)+ ) => {};
+   |            ^^
+
+error: repetition matches empty token tree
+  --> $DIR/issue-5067.rs:48:18
+   |
+LL |     (a $e1:expr $($(, a $e2:expr)*)*) => ([$e1 $($(, $e2)*)*]);
+   |                  ^^^^^^^^^^^^^^^^^^
+
+error: repetition matches empty token tree
+  --> $DIR/issue-5067.rs:60:8
+   |
+LL |     ( $()* ) => {}
+   |        ^^
+
+error: aborting due to 10 previous errors
+
diff --git a/src/test/compile-fail/issue-50688.rs b/src/test/ui/issue-50688.rs
index ff45cf639de..ff45cf639de 100644
--- a/src/test/compile-fail/issue-50688.rs
+++ b/src/test/ui/issue-50688.rs
diff --git a/src/test/ui/issue-50688.stderr b/src/test/ui/issue-50688.stderr
new file mode 100644
index 00000000000..094b0e1ec89
--- /dev/null
+++ b/src/test/ui/issue-50688.stderr
@@ -0,0 +1,12 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-50688.rs:12:9
+   |
+LL |     [1; || {}]; //~ ERROR mismatched types
+   |         ^^^^^ expected usize, found closure
+   |
+   = note: expected type `usize`
+              found type `[closure@$DIR/issue-50688.rs:12:9: 12:14]`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-5099.rs b/src/test/ui/issue-5099.rs
index 1bb6f34b8e9..1bb6f34b8e9 100644
--- a/src/test/compile-fail/issue-5099.rs
+++ b/src/test/ui/issue-5099.rs
diff --git a/src/test/ui/issue-5099.stderr b/src/test/ui/issue-5099.stderr
new file mode 100644
index 00000000000..26a26f731cf
--- /dev/null
+++ b/src/test/ui/issue-5099.stderr
@@ -0,0 +1,9 @@
+error[E0425]: cannot find value `this` in this scope
+  --> $DIR/issue-5099.rs:12:31
+   |
+LL | trait B < A > { fn a() -> A { this.a } } //~ ERROR cannot find value `this` in this scope
+   |                               ^^^^ not found in this scope
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0425`.
diff --git a/src/test/compile-fail/issue-5100.rs b/src/test/ui/issue-5100.rs
index 9ef780aac8e..9ef780aac8e 100644
--- a/src/test/compile-fail/issue-5100.rs
+++ b/src/test/ui/issue-5100.rs
diff --git a/src/test/ui/issue-5100.stderr b/src/test/ui/issue-5100.stderr
new file mode 100644
index 00000000000..6f5a84966bf
--- /dev/null
+++ b/src/test/ui/issue-5100.stderr
@@ -0,0 +1,63 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-5100.rs:18:9
+   |
+LL |         A::B => (),
+   |         ^^^^ expected tuple, found enum `A`
+   |
+   = note: expected type `(bool, bool)`
+              found type `A`
+
+error[E0308]: mismatched types
+  --> $DIR/issue-5100.rs:27:9
+   |
+LL |         (true, false, false) => ()
+   |         ^^^^^^^^^^^^^^^^^^^^ expected a tuple with 2 elements, found one with 3 elements
+   |
+   = note: expected type `(bool, bool)`
+              found type `(_, _, _)`
+
+error[E0308]: mismatched types
+  --> $DIR/issue-5100.rs:35:9
+   |
+LL |         (true, false, false) => ()
+   |         ^^^^^^^^^^^^^^^^^^^^ expected a tuple with 2 elements, found one with 3 elements
+   |
+   = note: expected type `(bool, bool)`
+              found type `(_, _, _)`
+
+error[E0308]: mismatched types
+  --> $DIR/issue-5100.rs:43:9
+   |
+LL |         box (true, false) => ()
+   |         ^^^^^^^^^^^^^^^^^ expected tuple, found struct `std::boxed::Box`
+   |
+   = note: expected type `(bool, bool)`
+              found type `std::boxed::Box<_>`
+
+error[E0308]: mismatched types
+  --> $DIR/issue-5100.rs:50:9
+   |
+LL |         &(true, false) => ()
+   |         ^^^^^^^^^^^^^^ expected tuple, found reference
+   |
+   = note: expected type `(bool, bool)`
+              found type `&_`
+
+error[E0618]: expected function, found `(char, char)`
+  --> $DIR/issue-5100.rs:58:14
+   |
+LL |       let v = [('a', 'b')   //~ ERROR expected function, found `(char, char)`
+   |  ______________^
+LL | |              ('c', 'd'),
+   | |_______________________^ not a function
+
+error[E0308]: mismatched types
+  --> $DIR/issue-5100.rs:65:19
+   |
+LL |     let x: char = true; //~  ERROR mismatched types
+   |                   ^^^^ expected char, found bool
+
+error: aborting due to 7 previous errors
+
+Some errors occurred: E0308, E0618.
+For more information about an error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-5153.rs b/src/test/ui/issue-5153.rs
index 9b49886961d..9b49886961d 100644
--- a/src/test/compile-fail/issue-5153.rs
+++ b/src/test/ui/issue-5153.rs
diff --git a/src/test/ui/issue-5153.stderr b/src/test/ui/issue-5153.stderr
new file mode 100644
index 00000000000..6f8dce109e1
--- /dev/null
+++ b/src/test/ui/issue-5153.stderr
@@ -0,0 +1,13 @@
+error[E0599]: no method named `foo` found for type `&dyn Foo` in the current scope
+  --> $DIR/issue-5153.rs:20:23
+   |
+LL |     (&5isize as &Foo).foo();
+   |                       ^^^
+   |
+   = help: items from traits can only be used if the trait is implemented and in scope
+   = note: the following trait defines an item `foo`, perhaps you need to implement it:
+           candidate #1: `Foo`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0599`.
diff --git a/src/test/compile-fail/issue-5216.rs b/src/test/ui/issue-5216.rs
index 81424577d49..81424577d49 100644
--- a/src/test/compile-fail/issue-5216.rs
+++ b/src/test/ui/issue-5216.rs
diff --git a/src/test/ui/issue-5216.stderr b/src/test/ui/issue-5216.stderr
new file mode 100644
index 00000000000..7ea329749a0
--- /dev/null
+++ b/src/test/ui/issue-5216.stderr
@@ -0,0 +1,21 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-5216.rs:13:21
+   |
+LL | pub static C: S = S(f); //~ ERROR mismatched types
+   |                     ^ expected struct `std::boxed::Box`, found fn item
+   |
+   = note: expected type `std::boxed::Box<(dyn std::ops::FnMut() + 'static)>`
+              found type `fn() {f}`
+
+error[E0308]: mismatched types
+  --> $DIR/issue-5216.rs:18:19
+   |
+LL | pub static D: T = g; //~ ERROR mismatched types
+   |                   ^ expected struct `std::boxed::Box`, found fn item
+   |
+   = note: expected type `std::boxed::Box<(dyn std::ops::FnMut() + 'static)>`
+              found type `fn() {g}`
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/ui/issue-52213.nll.stderr b/src/test/ui/issue-52213.nll.stderr
new file mode 100644
index 00000000000..c288cf9ed82
--- /dev/null
+++ b/src/test/ui/issue-52213.nll.stderr
@@ -0,0 +1,14 @@
+warning: not reporting region error due to nll
+  --> $DIR/issue-52213.rs:12:11
+   |
+LL |     match (&t,) { //~ ERROR cannot infer an appropriate lifetime
+   |           ^^^^^
+
+error: unsatisfied lifetime constraints
+  --> $DIR/issue-52213.rs:13:11
+   |
+LL |         ((u,),) => u,
+   |           ^ free region requires that `'a` must outlive `'b`
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-52213.rs b/src/test/ui/issue-52213.rs
index 810379c63d3..810379c63d3 100644
--- a/src/test/compile-fail/issue-52213.rs
+++ b/src/test/ui/issue-52213.rs
diff --git a/src/test/ui/issue-52213.stderr b/src/test/ui/issue-52213.stderr
new file mode 100644
index 00000000000..3c650881d7b
--- /dev/null
+++ b/src/test/ui/issue-52213.stderr
@@ -0,0 +1,28 @@
+error[E0495]: cannot infer an appropriate lifetime due to conflicting requirements
+  --> $DIR/issue-52213.rs:12:11
+   |
+LL |     match (&t,) { //~ ERROR cannot infer an appropriate lifetime
+   |           ^^^^^
+   |
+note: first, the lifetime cannot outlive the lifetime 'a as defined on the function body at 11:23...
+  --> $DIR/issue-52213.rs:11:23
+   |
+LL | fn transmute_lifetime<'a, 'b, T>(t: &'a (T,)) -> &'b T {
+   |                       ^^
+   = note: ...so that the types are compatible:
+           expected (&&(T,),)
+              found (&&'a (T,),)
+note: but, the lifetime must be valid for the lifetime 'b as defined on the function body at 11:27...
+  --> $DIR/issue-52213.rs:11:27
+   |
+LL | fn transmute_lifetime<'a, 'b, T>(t: &'a (T,)) -> &'b T {
+   |                           ^^
+note: ...so that reference does not outlive borrowed content
+  --> $DIR/issue-52213.rs:13:20
+   |
+LL |         ((u,),) => u,
+   |                    ^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0495`.
diff --git a/src/test/compile-fail/issue-5358-1.rs b/src/test/ui/issue-5358-1.rs
index d8aad54fd3e..d8aad54fd3e 100644
--- a/src/test/compile-fail/issue-5358-1.rs
+++ b/src/test/ui/issue-5358-1.rs
diff --git a/src/test/ui/issue-5358-1.stderr b/src/test/ui/issue-5358-1.stderr
new file mode 100644
index 00000000000..abaea462fcc
--- /dev/null
+++ b/src/test/ui/issue-5358-1.stderr
@@ -0,0 +1,12 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-5358-1.rs:16:9
+   |
+LL |         Either::Right(_) => {}
+   |         ^^^^^^^^^^^^^^^^ expected struct `S`, found enum `Either`
+   |
+   = note: expected type `S`
+              found type `Either<_, _>`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-5439.rs b/src/test/ui/issue-5439.rs
index 4e618f3d858..4e618f3d858 100644
--- a/src/test/compile-fail/issue-5439.rs
+++ b/src/test/ui/issue-5439.rs
diff --git a/src/test/ui/issue-5439.stderr b/src/test/ui/issue-5439.stderr
new file mode 100644
index 00000000000..87e20f3a03d
--- /dev/null
+++ b/src/test/ui/issue-5439.stderr
@@ -0,0 +1,11 @@
+error[E0560]: struct `Foo` has no field named `nonexistent`
+  --> $DIR/issue-5439.rs:23:26
+   |
+LL |         return box Foo { nonexistent: self, foo: i }; //~ ERROR: no field named
+   |                          ^^^^^^^^^^^ `Foo` does not have this field
+   |
+   = note: available fields are: `foo`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0560`.
diff --git a/src/test/compile-fail/issue-5883.rs b/src/test/ui/issue-5883.rs
index a91f5d281dd..a91f5d281dd 100644
--- a/src/test/compile-fail/issue-5883.rs
+++ b/src/test/ui/issue-5883.rs
diff --git a/src/test/ui/issue-5883.stderr b/src/test/ui/issue-5883.stderr
new file mode 100644
index 00000000000..43ce3697d83
--- /dev/null
+++ b/src/test/ui/issue-5883.stderr
@@ -0,0 +1,24 @@
+error[E0277]: the size for values of type `(dyn A + 'static)` cannot be known at compilation time
+  --> $DIR/issue-5883.rs:17:15
+   |
+LL | fn new_struct(r: A+'static)
+   |               ^ doesn't have a size known at compile-time
+   |
+   = help: the trait `std::marker::Sized` is not implemented for `(dyn A + 'static)`
+   = note: to learn more, visit <https://doc.rust-lang.org/book/second-edition/ch19-04-advanced-types.html#dynamically-sized-types--sized>
+   = note: all local variables must have a statically known size
+
+error[E0277]: the size for values of type `(dyn A + 'static)` cannot be known at compilation time
+  --> $DIR/issue-5883.rs:18:8
+   |
+LL |     -> Struct { //~^ ERROR the size for values of type
+   |        ^^^^^^ doesn't have a size known at compile-time
+   |
+   = help: within `Struct`, the trait `std::marker::Sized` is not implemented for `(dyn A + 'static)`
+   = note: to learn more, visit <https://doc.rust-lang.org/book/second-edition/ch19-04-advanced-types.html#dynamically-sized-types--sized>
+   = note: required because it appears within the type `Struct`
+   = note: the return type of a function must have a statically known size
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/compile-fail/issue-5927.rs b/src/test/ui/issue-5927.rs
index bb802f353af..bb802f353af 100644
--- a/src/test/compile-fail/issue-5927.rs
+++ b/src/test/ui/issue-5927.rs
diff --git a/src/test/ui/issue-5927.stderr b/src/test/ui/issue-5927.stderr
new file mode 100644
index 00000000000..f8b9b15678d
--- /dev/null
+++ b/src/test/ui/issue-5927.stderr
@@ -0,0 +1,16 @@
+error[E0531]: cannot find tuple struct/variant `x` in this scope
+  --> $DIR/issue-5927.rs:14:9
+   |
+LL |         x(1) => x(1) //~ ERROR cannot find tuple struct/variant `x` in this scope
+   |         ^ not found in this scope
+
+error[E0425]: cannot find function `x` in this scope
+  --> $DIR/issue-5927.rs:14:17
+   |
+LL |         x(1) => x(1) //~ ERROR cannot find tuple struct/variant `x` in this scope
+   |                 ^ not found in this scope
+
+error: aborting due to 2 previous errors
+
+Some errors occurred: E0425, E0531.
+For more information about an error, try `rustc --explain E0425`.
diff --git a/src/test/compile-fail/issue-5997-enum.rs b/src/test/ui/issue-5997-enum.rs
index 463fdaa1069..463fdaa1069 100644
--- a/src/test/compile-fail/issue-5997-enum.rs
+++ b/src/test/ui/issue-5997-enum.rs
diff --git a/src/test/ui/issue-5997-enum.stderr b/src/test/ui/issue-5997-enum.stderr
new file mode 100644
index 00000000000..9f26f653ebd
--- /dev/null
+++ b/src/test/ui/issue-5997-enum.stderr
@@ -0,0 +1,13 @@
+error[E0401]: can't use type parameters from outer function
+  --> $DIR/issue-5997-enum.rs:12:16
+   |
+LL | fn f<Z>() -> bool {
+   |    - - type variable from outer function
+   |    |
+   |    try adding a local type parameter in this method instead
+LL |     enum E { V(Z) }
+   |                ^ use of type variable from outer function
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0401`.
diff --git a/src/test/compile-fail/issue-5997-struct.rs b/src/test/ui/issue-5997-struct.rs
index af9e66b770b..af9e66b770b 100644
--- a/src/test/compile-fail/issue-5997-struct.rs
+++ b/src/test/ui/issue-5997-struct.rs
diff --git a/src/test/ui/issue-5997-struct.stderr b/src/test/ui/issue-5997-struct.stderr
new file mode 100644
index 00000000000..fd6d67bd128
--- /dev/null
+++ b/src/test/ui/issue-5997-struct.stderr
@@ -0,0 +1,13 @@
+error[E0401]: can't use type parameters from outer function
+  --> $DIR/issue-5997-struct.rs:12:14
+   |
+LL | fn f<T>() -> bool {
+   |    - - type variable from outer function
+   |    |
+   |    try adding a local type parameter in this method instead
+LL |     struct S(T); //~ ERROR can't use type parameters from outer function
+   |              ^ use of type variable from outer function
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0401`.
diff --git a/src/test/compile-fail/issue-6458-2.rs b/src/test/ui/issue-6458-2.rs
index 87cf2b3f740..87cf2b3f740 100644
--- a/src/test/compile-fail/issue-6458-2.rs
+++ b/src/test/ui/issue-6458-2.rs
diff --git a/src/test/ui/issue-6458-2.stderr b/src/test/ui/issue-6458-2.stderr
new file mode 100644
index 00000000000..e192c2c3be3
--- /dev/null
+++ b/src/test/ui/issue-6458-2.stderr
@@ -0,0 +1,9 @@
+error[E0282]: type annotations needed
+  --> $DIR/issue-6458-2.rs:13:21
+   |
+LL |     format!("{:?}", None);
+   |                     ^^^^ cannot infer type for `T`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0282`.
diff --git a/src/test/compile-fail/issue-6596-1.rs b/src/test/ui/issue-6596-1.rs
index e988f404c3c..ce8a3a80e1f 100644
--- a/src/test/compile-fail/issue-6596-1.rs
+++ b/src/test/ui/issue-6596-1.rs
@@ -8,11 +8,11 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-// error-pattern: unknown macro variable `nonexistent`
 
 macro_rules! e {
     ($inp:ident) => (
         $nonexistent
+        //~^ ERROR unknown macro variable `nonexistent`
     );
 }
 
diff --git a/src/test/ui/issue-6596-1.stderr b/src/test/ui/issue-6596-1.stderr
new file mode 100644
index 00000000000..b7055ab19d0
--- /dev/null
+++ b/src/test/ui/issue-6596-1.stderr
@@ -0,0 +1,11 @@
+error: unknown macro variable `nonexistent`
+  --> $DIR/issue-6596-1.rs:14:9
+   |
+LL |         $nonexistent
+   |         ^^^^^^^^^^^^ unknown macro variable
+...
+LL |     e!(foo);
+   |     -------- in this macro invocation
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-6596-2.rs b/src/test/ui/issue-6596-2.rs
index 0158ad4ba4e..3e18de6178a 100644
--- a/src/test/compile-fail/issue-6596-2.rs
+++ b/src/test/ui/issue-6596-2.rs
@@ -10,11 +10,11 @@
 
 #![feature(macro_rules)]
 
-// error-pattern: unknown macro variable `nonexistent`
-
 macro_rules! g {
     ($inp:ident) => (
         { $inp $nonexistent }
+        //~^ ERROR unknown macro variable `nonexistent`
+        //~| ERROR expected one of
     );
 }
 
diff --git a/src/test/ui/issue-6596-2.stderr b/src/test/ui/issue-6596-2.stderr
new file mode 100644
index 00000000000..f2ed17f35e6
--- /dev/null
+++ b/src/test/ui/issue-6596-2.stderr
@@ -0,0 +1,20 @@
+error: unknown macro variable `nonexistent`
+  --> $DIR/issue-6596-2.rs:15:16
+   |
+LL |         { $inp $nonexistent }
+   |                ^^^^^^^^^^^^ unknown macro variable
+...
+LL |     g!(foo);
+   |     -------- in this macro invocation
+
+error: expected one of `!`, `.`, `::`, `;`, `?`, `{`, `}`, or an operator, found `nonexistent`
+  --> $DIR/issue-6596-2.rs:15:16
+   |
+LL |         { $inp $nonexistent }
+   |                ^^^^^^^^^^^^ expected one of 8 possible tokens here
+...
+LL |     g!(foo);
+   |     -------- in this macro invocation
+
+error: aborting due to 2 previous errors
+
diff --git a/src/test/compile-fail/issue-6642.rs b/src/test/ui/issue-6642.rs
index 1fe10ba7a27..1fe10ba7a27 100644
--- a/src/test/compile-fail/issue-6642.rs
+++ b/src/test/ui/issue-6642.rs
diff --git a/src/test/ui/issue-6642.stderr b/src/test/ui/issue-6642.stderr
new file mode 100644
index 00000000000..1762af52eb0
--- /dev/null
+++ b/src/test/ui/issue-6642.stderr
@@ -0,0 +1,11 @@
+error[E0434]: can't capture dynamic environment in a fn item
+  --> $DIR/issue-6642.rs:15:13
+   |
+LL |             self.m() //~ ERROR can't capture dynamic environment in a fn item
+   |             ^^^^
+   |
+   = help: use the `|| { ... }` closure form instead
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0434`.
diff --git a/src/test/compile-fail/issue-6738.rs b/src/test/ui/issue-6738.rs
index 447d0e061ee..447d0e061ee 100644
--- a/src/test/compile-fail/issue-6738.rs
+++ b/src/test/ui/issue-6738.rs
diff --git a/src/test/ui/issue-6738.stderr b/src/test/ui/issue-6738.stderr
new file mode 100644
index 00000000000..8c0aff9d9ab
--- /dev/null
+++ b/src/test/ui/issue-6738.stderr
@@ -0,0 +1,13 @@
+error[E0368]: binary assignment operation `+=` cannot be applied to type `T`
+  --> $DIR/issue-6738.rs:16:9
+   |
+LL |         self.x += v.x;
+   |         ------^^^^^^^
+   |         |
+   |         cannot use `+=` on type `T`
+   |
+   = note: `T` might need a bound for `std::ops::AddAssign`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0368`.
diff --git a/src/test/ui/issue-6801.nll.stderr b/src/test/ui/issue-6801.nll.stderr
new file mode 100644
index 00000000000..5436397c68e
--- /dev/null
+++ b/src/test/ui/issue-6801.nll.stderr
@@ -0,0 +1,14 @@
+error[E0505]: cannot move out of `x` because it is borrowed
+  --> $DIR/issue-6801.rs:29:13
+   |
+LL |       let sq =  || { *x * *x };
+   |                 -------------- borrow of `x` occurs here
+LL | 
+LL |       twice(x); //~ ERROR: cannot move out of
+   |             ^ move out of `x` occurs here
+LL |       invoke(sq);
+   |              -- borrow later used here
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0505`.
diff --git a/src/test/compile-fail/issue-6801.rs b/src/test/ui/issue-6801.rs
index 792d27c179b..792d27c179b 100644
--- a/src/test/compile-fail/issue-6801.rs
+++ b/src/test/ui/issue-6801.rs
diff --git a/src/test/ui/issue-6801.stderr b/src/test/ui/issue-6801.stderr
new file mode 100644
index 00000000000..8a1c669f0b2
--- /dev/null
+++ b/src/test/ui/issue-6801.stderr
@@ -0,0 +1,12 @@
+error[E0505]: cannot move out of `x` because it is borrowed
+  --> $DIR/issue-6801.rs:29:13
+   |
+LL |       let sq =  || { *x * *x };
+   |                 -- borrow of `x` occurs here
+LL | 
+LL |       twice(x); //~ ERROR: cannot move out of
+   |             ^ move out of `x` occurs here
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0505`.
diff --git a/src/test/compile-fail/issue-6804.rs b/src/test/ui/issue-6804.rs
index fffa27ab842..fffa27ab842 100644
--- a/src/test/compile-fail/issue-6804.rs
+++ b/src/test/ui/issue-6804.rs
diff --git a/src/test/ui/issue-6804.stderr b/src/test/ui/issue-6804.stderr
new file mode 100644
index 00000000000..45eefbfaf8e
--- /dev/null
+++ b/src/test/ui/issue-6804.stderr
@@ -0,0 +1,25 @@
+error: floating-point types cannot be used in patterns
+  --> $DIR/issue-6804.rs:21:9
+   |
+LL |         NAN => {}, //~ ERROR floating-point types cannot be used
+   |         ^^^
+   |
+note: lint level defined here
+  --> $DIR/issue-6804.rs:14:9
+   |
+LL | #![deny(illegal_floating_point_literal_pattern)]
+   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
+   = note: for more information, see issue #41620 <https://github.com/rust-lang/rust/issues/41620>
+
+error: floating-point types cannot be used in patterns
+  --> $DIR/issue-6804.rs:27:10
+   |
+LL |         [NAN, _] => {}, //~ ERROR floating-point types cannot be used
+   |          ^^^
+   |
+   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
+   = note: for more information, see issue #41620 <https://github.com/rust-lang/rust/issues/41620>
+
+error: aborting due to 2 previous errors
+
diff --git a/src/test/compile-fail/issue-6936.rs b/src/test/ui/issue-6936.rs
index 8eb16edcbd3..8eb16edcbd3 100644
--- a/src/test/compile-fail/issue-6936.rs
+++ b/src/test/ui/issue-6936.rs
diff --git a/src/test/ui/issue-6936.stderr b/src/test/ui/issue-6936.stderr
new file mode 100644
index 00000000000..48fcbf40622
--- /dev/null
+++ b/src/test/ui/issue-6936.stderr
@@ -0,0 +1,43 @@
+error[E0428]: the name `Foo` is defined multiple times
+  --> $DIR/issue-6936.rs:15:5
+   |
+LL |     type Foo = ::T;
+   |     --------------- previous definition of the type `Foo` here
+LL |     mod Foo {} //~ ERROR the name `Foo` is defined multiple times
+   |     ^^^^^^^ `Foo` redefined here
+   |
+   = note: `Foo` must be defined only once in the type namespace of this module
+
+error[E0428]: the name `Foo` is defined multiple times
+  --> $DIR/issue-6936.rs:20:5
+   |
+LL |     type Foo = ::T;
+   |     --------------- previous definition of the type `Foo` here
+LL |     struct Foo; //~ ERROR the name `Foo` is defined multiple times
+   |     ^^^^^^^^^^^ `Foo` redefined here
+   |
+   = note: `Foo` must be defined only once in the type namespace of this module
+
+error[E0428]: the name `Foo` is defined multiple times
+  --> $DIR/issue-6936.rs:25:5
+   |
+LL |     type Foo = ::T;
+   |     --------------- previous definition of the type `Foo` here
+LL |     enum Foo {} //~ ERROR the name `Foo` is defined multiple times
+   |     ^^^^^^^^ `Foo` redefined here
+   |
+   = note: `Foo` must be defined only once in the type namespace of this module
+
+error[E0428]: the name `Bar` is defined multiple times
+  --> $DIR/issue-6936.rs:35:5
+   |
+LL |     type Bar<T> = T;
+   |     ---------------- previous definition of the type `Bar` here
+LL |     mod Bar {} //~ ERROR the name `Bar` is defined multiple times
+   |     ^^^^^^^ `Bar` redefined here
+   |
+   = note: `Bar` must be defined only once in the type namespace of this module
+
+error: aborting due to 4 previous errors
+
+For more information about this error, try `rustc --explain E0428`.
diff --git a/src/test/compile-fail/issue-7013.rs b/src/test/ui/issue-7013.rs
index 0c19780bcb4..0c19780bcb4 100644
--- a/src/test/compile-fail/issue-7013.rs
+++ b/src/test/ui/issue-7013.rs
diff --git a/src/test/ui/issue-7013.stderr b/src/test/ui/issue-7013.stderr
new file mode 100644
index 00000000000..fec6e06a699
--- /dev/null
+++ b/src/test/ui/issue-7013.stderr
@@ -0,0 +1,14 @@
+error[E0277]: `std::rc::Rc<std::cell::RefCell<A>>` cannot be sent between threads safely
+  --> $DIR/issue-7013.rs:36:19
+   |
+LL |     let a = A {v: box B{v: None} as Box<Foo+Send>};
+   |                   ^^^^^^^^^^^^^^ `std::rc::Rc<std::cell::RefCell<A>>` cannot be sent between threads safely
+   |
+   = help: within `B`, the trait `std::marker::Send` is not implemented for `std::rc::Rc<std::cell::RefCell<A>>`
+   = note: required because it appears within the type `std::option::Option<std::rc::Rc<std::cell::RefCell<A>>>`
+   = note: required because it appears within the type `B`
+   = note: required for the cast to the object type `dyn Foo + std::marker::Send`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/compile-fail/issue-7044.rs b/src/test/ui/issue-7044.rs
index 9b72c249356..9b72c249356 100644
--- a/src/test/compile-fail/issue-7044.rs
+++ b/src/test/ui/issue-7044.rs
diff --git a/src/test/ui/issue-7044.stderr b/src/test/ui/issue-7044.stderr
new file mode 100644
index 00000000000..02707b2d21e
--- /dev/null
+++ b/src/test/ui/issue-7044.stderr
@@ -0,0 +1,13 @@
+error[E0428]: the name `X` is defined multiple times
+  --> $DIR/issue-7044.rs:12:1
+   |
+LL | static X: isize = 0;
+   | -------------------- previous definition of the value `X` here
+LL | struct X; //~ ERROR the name `X` is defined multiple times
+   | ^^^^^^^^^ `X` redefined here
+   |
+   = note: `X` must be defined only once in the value namespace of this module
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0428`.
diff --git a/src/test/compile-fail/issue-7061.rs b/src/test/ui/issue-7061.rs
index b99f5b707ee..b99f5b707ee 100644
--- a/src/test/compile-fail/issue-7061.rs
+++ b/src/test/ui/issue-7061.rs
diff --git a/src/test/ui/issue-7061.stderr b/src/test/ui/issue-7061.stderr
new file mode 100644
index 00000000000..4f142ba95bc
--- /dev/null
+++ b/src/test/ui/issue-7061.stderr
@@ -0,0 +1,14 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-7061.rs:14:46
+   |
+LL |     fn foo(&'a mut self) -> Box<BarStruct> { self }
+   |                             --------------   ^^^^ expected struct `std::boxed::Box`, found mutable reference
+   |                             |
+   |                             expected `std::boxed::Box<BarStruct>` because of return type
+   |
+   = note: expected type `std::boxed::Box<BarStruct>`
+              found type `&'a mut BarStruct`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-7092.rs b/src/test/ui/issue-7092.rs
index 26e1597b1db..26e1597b1db 100644
--- a/src/test/compile-fail/issue-7092.rs
+++ b/src/test/ui/issue-7092.rs
diff --git a/src/test/ui/issue-7092.stderr b/src/test/ui/issue-7092.stderr
new file mode 100644
index 00000000000..3c816098289
--- /dev/null
+++ b/src/test/ui/issue-7092.stderr
@@ -0,0 +1,12 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-7092.rs:16:9
+   |
+LL |         Some(field) =>
+   |         ^^^^^^^^^^^ expected enum `Whatever`, found enum `std::option::Option`
+   |
+   = note: expected type `Whatever`
+              found type `std::option::Option<_>`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-7246.rs b/src/test/ui/issue-7246.rs
index 7e8d431bf19..7e8d431bf19 100644
--- a/src/test/compile-fail/issue-7246.rs
+++ b/src/test/ui/issue-7246.rs
diff --git a/src/test/ui/issue-7246.stderr b/src/test/ui/issue-7246.stderr
new file mode 100644
index 00000000000..75c716e5a04
--- /dev/null
+++ b/src/test/ui/issue-7246.stderr
@@ -0,0 +1,14 @@
+error: unreachable statement
+  --> $DIR/issue-7246.rs:17:5
+   |
+LL |     if *ptr::null() {}; //~ ERROR unreachable
+   |     ^^^^^^^^^^^^^^^^^^^
+   |
+note: lint level defined here
+  --> $DIR/issue-7246.rs:11:9
+   |
+LL | #![deny(unreachable_code)]
+   |         ^^^^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-7364.rs b/src/test/ui/issue-7364.rs
index 801a1301ad7..801a1301ad7 100644
--- a/src/test/compile-fail/issue-7364.rs
+++ b/src/test/ui/issue-7364.rs
diff --git a/src/test/ui/issue-7364.stderr b/src/test/ui/issue-7364.stderr
new file mode 100644
index 00000000000..b0d732bdb6f
--- /dev/null
+++ b/src/test/ui/issue-7364.stderr
@@ -0,0 +1,21 @@
+error[E0010]: allocations are not allowed in statics
+  --> $DIR/issue-7364.rs:16:37
+   |
+LL | static boxed: Box<RefCell<isize>> = box RefCell::new(0);
+   |                                     ^^^^^^^^^^^^^^^^^^^ allocation not allowed in statics
+
+error[E0277]: `std::cell::RefCell<isize>` cannot be shared between threads safely
+  --> $DIR/issue-7364.rs:16:1
+   |
+LL | static boxed: Box<RefCell<isize>> = box RefCell::new(0);
+   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `std::cell::RefCell<isize>` cannot be shared between threads safely
+   |
+   = help: the trait `std::marker::Sync` is not implemented for `std::cell::RefCell<isize>`
+   = note: required because of the requirements on the impl of `std::marker::Sync` for `std::ptr::Unique<std::cell::RefCell<isize>>`
+   = note: required because it appears within the type `std::boxed::Box<std::cell::RefCell<isize>>`
+   = note: shared static variables must have a type that implements `Sync`
+
+error: aborting due to 2 previous errors
+
+Some errors occurred: E0010, E0277.
+For more information about an error, try `rustc --explain E0010`.
diff --git a/src/test/compile-fail/issue-7607-1.rs b/src/test/ui/issue-7607-1.rs
index 9bcdd690187..9bcdd690187 100644
--- a/src/test/compile-fail/issue-7607-1.rs
+++ b/src/test/ui/issue-7607-1.rs
diff --git a/src/test/ui/issue-7607-1.stderr b/src/test/ui/issue-7607-1.stderr
new file mode 100644
index 00000000000..bebf1c1ae98
--- /dev/null
+++ b/src/test/ui/issue-7607-1.stderr
@@ -0,0 +1,9 @@
+error[E0412]: cannot find type `Fo` in this scope
+  --> $DIR/issue-7607-1.rs:15:6
+   |
+LL | impl Fo { //~ ERROR cannot find type `Fo` in this scope
+   |      ^^ did you mean `Fn`?
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0412`.
diff --git a/src/test/compile-fail/issue-7867.rs b/src/test/ui/issue-7867.rs
index 016df6cb6ef..016df6cb6ef 100644
--- a/src/test/compile-fail/issue-7867.rs
+++ b/src/test/ui/issue-7867.rs
diff --git a/src/test/ui/issue-7867.stderr b/src/test/ui/issue-7867.stderr
new file mode 100644
index 00000000000..03ab54d112f
--- /dev/null
+++ b/src/test/ui/issue-7867.stderr
@@ -0,0 +1,12 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-7867.rs:17:9
+   |
+LL |         A::B => (),
+   |         ^^^^ expected tuple, found enum `A`
+   |
+   = note: expected type `(bool, bool)`
+              found type `A`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-7950.rs b/src/test/ui/issue-7950.rs
index dd3a48cb155..dd3a48cb155 100644
--- a/src/test/compile-fail/issue-7950.rs
+++ b/src/test/ui/issue-7950.rs
diff --git a/src/test/ui/issue-7950.stderr b/src/test/ui/issue-7950.stderr
new file mode 100644
index 00000000000..750127981b1
--- /dev/null
+++ b/src/test/ui/issue-7950.stderr
@@ -0,0 +1,12 @@
+error[E0599]: no function or associated item named `bar` found for type `Foo` in the current scope
+  --> $DIR/issue-7950.rs:16:5
+   |
+LL | struct Foo;
+   | ----------- function or associated item `bar` not found for this
+...
+LL |     Foo::bar();
+   |     ^^^^^^^^ function or associated item not found in `Foo`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0599`.
diff --git a/src/test/compile-fail/issue-7970a.rs b/src/test/ui/issue-7970a.rs
index b97c3037770..b97c3037770 100644
--- a/src/test/compile-fail/issue-7970a.rs
+++ b/src/test/ui/issue-7970a.rs
diff --git a/src/test/ui/issue-7970a.stderr b/src/test/ui/issue-7970a.stderr
new file mode 100644
index 00000000000..7ad95717185
--- /dev/null
+++ b/src/test/ui/issue-7970a.stderr
@@ -0,0 +1,8 @@
+error: unexpected end of macro invocation
+  --> $DIR/issue-7970a.rs:16:5
+   |
+LL |     one_arg_macro!();
+   |     ^^^^^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-7970b.rs b/src/test/ui/issue-7970b.rs
index 0cff90f281b..0cff90f281b 100644
--- a/src/test/compile-fail/issue-7970b.rs
+++ b/src/test/ui/issue-7970b.rs
diff --git a/src/test/ui/issue-7970b.stderr b/src/test/ui/issue-7970b.stderr
new file mode 100644
index 00000000000..b2feb677863
--- /dev/null
+++ b/src/test/ui/issue-7970b.stderr
@@ -0,0 +1,8 @@
+error: unexpected end of macro invocation
+  --> $DIR/issue-7970b.rs:13:1
+   |
+LL | macro_rules! test {}
+   | ^^^^^^^^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-8153.rs b/src/test/ui/issue-8153.rs
index 457918b54d4..457918b54d4 100644
--- a/src/test/compile-fail/issue-8153.rs
+++ b/src/test/ui/issue-8153.rs
diff --git a/src/test/ui/issue-8153.stderr b/src/test/ui/issue-8153.stderr
new file mode 100644
index 00000000000..03fb89f8ccc
--- /dev/null
+++ b/src/test/ui/issue-8153.stderr
@@ -0,0 +1,11 @@
+error[E0201]: duplicate definitions with name `bar`:
+  --> $DIR/issue-8153.rs:21:5
+   |
+LL |     fn bar(&self) -> isize {1}
+   |     -------------------------- previous definition of `bar` here
+LL |     fn bar(&self) -> isize {2} //~ ERROR duplicate definitions
+   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^ duplicate definition
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0201`.
diff --git a/src/test/compile-fail/issue-8208.rs b/src/test/ui/issue-8208.rs
index 670b6bd46e7..670b6bd46e7 100644
--- a/src/test/compile-fail/issue-8208.rs
+++ b/src/test/ui/issue-8208.rs
diff --git a/src/test/ui/issue-8208.stderr b/src/test/ui/issue-8208.stderr
new file mode 100644
index 00000000000..73a9a6a51be
--- /dev/null
+++ b/src/test/ui/issue-8208.stderr
@@ -0,0 +1,21 @@
+error[E0432]: unresolved import `self::*`
+  --> $DIR/issue-8208.rs:11:5
+   |
+LL | use self::*; //~ ERROR: unresolved import `self::*` [E0432]
+   |     ^^^^^^^ Cannot glob-import a module into itself.
+
+error[E0432]: unresolved import `foo::*`
+  --> $DIR/issue-8208.rs:15:9
+   |
+LL |     use foo::*; //~ ERROR: unresolved import `foo::*` [E0432]
+   |         ^^^^^^ Cannot glob-import a module into itself.
+
+error[E0432]: unresolved import `super::bar::*`
+  --> $DIR/issue-8208.rs:19:13
+   |
+LL |         use super::bar::*;
+   |             ^^^^^^^^^^^^^ Cannot glob-import a module into itself.
+
+error: aborting due to 3 previous errors
+
+For more information about this error, try `rustc --explain E0432`.
diff --git a/src/test/compile-fail/issue-8460-const.rs b/src/test/ui/issue-8460-const.rs
index b0d6cb5df87..b0d6cb5df87 100644
--- a/src/test/compile-fail/issue-8460-const.rs
+++ b/src/test/ui/issue-8460-const.rs
diff --git a/src/test/ui/issue-8460-const.stderr b/src/test/ui/issue-8460-const.stderr
new file mode 100644
index 00000000000..db35cde7569
--- /dev/null
+++ b/src/test/ui/issue-8460-const.stderr
@@ -0,0 +1,248 @@
+error: attempt to divide with overflow
+  --> $DIR/issue-8460-const.rs:17:36
+   |
+LL |     assert!(thread::spawn(move|| { isize::MIN / -1; }).join().is_err());
+   |                                    ^^^^^^^^^^^^^^^
+   |
+note: lint level defined here
+  --> $DIR/issue-8460-const.rs:11:9
+   |
+LL | #![deny(const_err)]
+   |         ^^^^^^^^^
+
+error: this expression will panic at runtime
+  --> $DIR/issue-8460-const.rs:17:36
+   |
+LL |     assert!(thread::spawn(move|| { isize::MIN / -1; }).join().is_err());
+   |                                    ^^^^^^^^^^^^^^^ attempt to divide with overflow
+
+error: attempt to divide with overflow
+  --> $DIR/issue-8460-const.rs:20:36
+   |
+LL |     assert!(thread::spawn(move|| { i8::MIN / -1; }).join().is_err());
+   |                                    ^^^^^^^^^^^^
+
+error: this expression will panic at runtime
+  --> $DIR/issue-8460-const.rs:20:36
+   |
+LL |     assert!(thread::spawn(move|| { i8::MIN / -1; }).join().is_err());
+   |                                    ^^^^^^^^^^^^ attempt to divide with overflow
+
+error: attempt to divide with overflow
+  --> $DIR/issue-8460-const.rs:23:36
+   |
+LL |     assert!(thread::spawn(move|| { i16::MIN / -1; }).join().is_err());
+   |                                    ^^^^^^^^^^^^^
+
+error: this expression will panic at runtime
+  --> $DIR/issue-8460-const.rs:23:36
+   |
+LL |     assert!(thread::spawn(move|| { i16::MIN / -1; }).join().is_err());
+   |                                    ^^^^^^^^^^^^^ attempt to divide with overflow
+
+error: attempt to divide with overflow
+  --> $DIR/issue-8460-const.rs:26:36
+   |
+LL |     assert!(thread::spawn(move|| { i32::MIN / -1; }).join().is_err());
+   |                                    ^^^^^^^^^^^^^
+
+error: this expression will panic at runtime
+  --> $DIR/issue-8460-const.rs:26:36
+   |
+LL |     assert!(thread::spawn(move|| { i32::MIN / -1; }).join().is_err());
+   |                                    ^^^^^^^^^^^^^ attempt to divide with overflow
+
+error: attempt to divide with overflow
+  --> $DIR/issue-8460-const.rs:29:36
+   |
+LL |     assert!(thread::spawn(move|| { i64::MIN / -1; }).join().is_err());
+   |                                    ^^^^^^^^^^^^^
+
+error: this expression will panic at runtime
+  --> $DIR/issue-8460-const.rs:29:36
+   |
+LL |     assert!(thread::spawn(move|| { i64::MIN / -1; }).join().is_err());
+   |                                    ^^^^^^^^^^^^^ attempt to divide with overflow
+
+error: attempt to divide by zero
+  --> $DIR/issue-8460-const.rs:32:36
+   |
+LL |     assert!(thread::spawn(move|| { 1isize / 0; }).join().is_err());
+   |                                    ^^^^^^^^^^
+
+error: this expression will panic at runtime
+  --> $DIR/issue-8460-const.rs:32:36
+   |
+LL |     assert!(thread::spawn(move|| { 1isize / 0; }).join().is_err());
+   |                                    ^^^^^^^^^^ attempt to divide by zero
+
+error: attempt to divide by zero
+  --> $DIR/issue-8460-const.rs:35:36
+   |
+LL |     assert!(thread::spawn(move|| { 1i8 / 0; }).join().is_err());
+   |                                    ^^^^^^^
+
+error: this expression will panic at runtime
+  --> $DIR/issue-8460-const.rs:35:36
+   |
+LL |     assert!(thread::spawn(move|| { 1i8 / 0; }).join().is_err());
+   |                                    ^^^^^^^ attempt to divide by zero
+
+error: attempt to divide by zero
+  --> $DIR/issue-8460-const.rs:38:36
+   |
+LL |     assert!(thread::spawn(move|| { 1i16 / 0; }).join().is_err());
+   |                                    ^^^^^^^^
+
+error: this expression will panic at runtime
+  --> $DIR/issue-8460-const.rs:38:36
+   |
+LL |     assert!(thread::spawn(move|| { 1i16 / 0; }).join().is_err());
+   |                                    ^^^^^^^^ attempt to divide by zero
+
+error: attempt to divide by zero
+  --> $DIR/issue-8460-const.rs:41:36
+   |
+LL |     assert!(thread::spawn(move|| { 1i32 / 0; }).join().is_err());
+   |                                    ^^^^^^^^
+
+error: this expression will panic at runtime
+  --> $DIR/issue-8460-const.rs:41:36
+   |
+LL |     assert!(thread::spawn(move|| { 1i32 / 0; }).join().is_err());
+   |                                    ^^^^^^^^ attempt to divide by zero
+
+error: attempt to divide by zero
+  --> $DIR/issue-8460-const.rs:44:36
+   |
+LL |     assert!(thread::spawn(move|| { 1i64 / 0; }).join().is_err());
+   |                                    ^^^^^^^^
+
+error: this expression will panic at runtime
+  --> $DIR/issue-8460-const.rs:44:36
+   |
+LL |     assert!(thread::spawn(move|| { 1i64 / 0; }).join().is_err());
+   |                                    ^^^^^^^^ attempt to divide by zero
+
+error: attempt to calculate the remainder with overflow
+  --> $DIR/issue-8460-const.rs:47:36
+   |
+LL |     assert!(thread::spawn(move|| { isize::MIN % -1; }).join().is_err());
+   |                                    ^^^^^^^^^^^^^^^
+
+error: this expression will panic at runtime
+  --> $DIR/issue-8460-const.rs:47:36
+   |
+LL |     assert!(thread::spawn(move|| { isize::MIN % -1; }).join().is_err());
+   |                                    ^^^^^^^^^^^^^^^ attempt to calculate the remainder with overflow
+
+error: attempt to calculate the remainder with overflow
+  --> $DIR/issue-8460-const.rs:50:36
+   |
+LL |     assert!(thread::spawn(move|| { i8::MIN % -1; }).join().is_err());
+   |                                    ^^^^^^^^^^^^
+
+error: this expression will panic at runtime
+  --> $DIR/issue-8460-const.rs:50:36
+   |
+LL |     assert!(thread::spawn(move|| { i8::MIN % -1; }).join().is_err());
+   |                                    ^^^^^^^^^^^^ attempt to calculate the remainder with overflow
+
+error: attempt to calculate the remainder with overflow
+  --> $DIR/issue-8460-const.rs:53:36
+   |
+LL |     assert!(thread::spawn(move|| { i16::MIN % -1; }).join().is_err());
+   |                                    ^^^^^^^^^^^^^
+
+error: this expression will panic at runtime
+  --> $DIR/issue-8460-const.rs:53:36
+   |
+LL |     assert!(thread::spawn(move|| { i16::MIN % -1; }).join().is_err());
+   |                                    ^^^^^^^^^^^^^ attempt to calculate the remainder with overflow
+
+error: attempt to calculate the remainder with overflow
+  --> $DIR/issue-8460-const.rs:56:36
+   |
+LL |     assert!(thread::spawn(move|| { i32::MIN % -1; }).join().is_err());
+   |                                    ^^^^^^^^^^^^^
+
+error: this expression will panic at runtime
+  --> $DIR/issue-8460-const.rs:56:36
+   |
+LL |     assert!(thread::spawn(move|| { i32::MIN % -1; }).join().is_err());
+   |                                    ^^^^^^^^^^^^^ attempt to calculate the remainder with overflow
+
+error: attempt to calculate the remainder with overflow
+  --> $DIR/issue-8460-const.rs:59:36
+   |
+LL |     assert!(thread::spawn(move|| { i64::MIN % -1; }).join().is_err());
+   |                                    ^^^^^^^^^^^^^
+
+error: this expression will panic at runtime
+  --> $DIR/issue-8460-const.rs:59:36
+   |
+LL |     assert!(thread::spawn(move|| { i64::MIN % -1; }).join().is_err());
+   |                                    ^^^^^^^^^^^^^ attempt to calculate the remainder with overflow
+
+error: attempt to calculate the remainder with a divisor of zero
+  --> $DIR/issue-8460-const.rs:62:36
+   |
+LL |     assert!(thread::spawn(move|| { 1isize % 0; }).join().is_err());
+   |                                    ^^^^^^^^^^
+
+error: this expression will panic at runtime
+  --> $DIR/issue-8460-const.rs:62:36
+   |
+LL |     assert!(thread::spawn(move|| { 1isize % 0; }).join().is_err());
+   |                                    ^^^^^^^^^^ attempt to calculate the remainder with a divisor of zero
+
+error: attempt to calculate the remainder with a divisor of zero
+  --> $DIR/issue-8460-const.rs:65:36
+   |
+LL |     assert!(thread::spawn(move|| { 1i8 % 0; }).join().is_err());
+   |                                    ^^^^^^^
+
+error: this expression will panic at runtime
+  --> $DIR/issue-8460-const.rs:65:36
+   |
+LL |     assert!(thread::spawn(move|| { 1i8 % 0; }).join().is_err());
+   |                                    ^^^^^^^ attempt to calculate the remainder with a divisor of zero
+
+error: attempt to calculate the remainder with a divisor of zero
+  --> $DIR/issue-8460-const.rs:68:36
+   |
+LL |     assert!(thread::spawn(move|| { 1i16 % 0; }).join().is_err());
+   |                                    ^^^^^^^^
+
+error: this expression will panic at runtime
+  --> $DIR/issue-8460-const.rs:68:36
+   |
+LL |     assert!(thread::spawn(move|| { 1i16 % 0; }).join().is_err());
+   |                                    ^^^^^^^^ attempt to calculate the remainder with a divisor of zero
+
+error: attempt to calculate the remainder with a divisor of zero
+  --> $DIR/issue-8460-const.rs:71:36
+   |
+LL |     assert!(thread::spawn(move|| { 1i32 % 0; }).join().is_err());
+   |                                    ^^^^^^^^
+
+error: this expression will panic at runtime
+  --> $DIR/issue-8460-const.rs:71:36
+   |
+LL |     assert!(thread::spawn(move|| { 1i32 % 0; }).join().is_err());
+   |                                    ^^^^^^^^ attempt to calculate the remainder with a divisor of zero
+
+error: attempt to calculate the remainder with a divisor of zero
+  --> $DIR/issue-8460-const.rs:74:36
+   |
+LL |     assert!(thread::spawn(move|| { 1i64 % 0; }).join().is_err());
+   |                                    ^^^^^^^^
+
+error: this expression will panic at runtime
+  --> $DIR/issue-8460-const.rs:74:36
+   |
+LL |     assert!(thread::spawn(move|| { 1i64 % 0; }).join().is_err());
+   |                                    ^^^^^^^^ attempt to calculate the remainder with a divisor of zero
+
+error: aborting due to 40 previous errors
+
diff --git a/src/test/compile-fail/issue-8640.rs b/src/test/ui/issue-8640.rs
index c4ca3acf080..c4ca3acf080 100644
--- a/src/test/compile-fail/issue-8640.rs
+++ b/src/test/ui/issue-8640.rs
diff --git a/src/test/ui/issue-8640.stderr b/src/test/ui/issue-8640.stderr
new file mode 100644
index 00000000000..68fdea6e228
--- /dev/null
+++ b/src/test/ui/issue-8640.stderr
@@ -0,0 +1,17 @@
+error[E0255]: the name `bar` is defined multiple times
+  --> $DIR/issue-8640.rs:15:5
+   |
+LL |     use baz::bar;
+   |         -------- previous import of the module `bar` here
+LL |     mod bar {}
+   |     ^^^^^^^ `bar` redefined here
+   |
+   = note: `bar` must be defined only once in the type namespace of this module
+help: You can use `as` to change the binding name of the import
+   |
+LL |     use baz::bar as other_bar;
+   |         ^^^^^^^^^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0255`.
diff --git a/src/test/compile-fail/issue-8727.rs b/src/test/ui/issue-8727.rs
index 18b7948c46c..fc88a2c81b4 100644
--- a/src/test/compile-fail/issue-8727.rs
+++ b/src/test/ui/issue-8727.rs
@@ -8,14 +8,15 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-// error-pattern:reached the recursion limit while instantiating `generic::<std::option::Option<
-
 // Verify the compiler fails with an error on infinite function
 // recursions.
 
 fn generic<T>() {
     generic::<Option<T>>();
 }
+//~^^^ ERROR reached the recursion limit while instantiating `generic::<std::option::Option<
+//~| WARN function cannot return without recurring
+
 
 
 fn main () {
diff --git a/src/test/ui/issue-8727.stderr b/src/test/ui/issue-8727.stderr
new file mode 100644
index 00000000000..28fb71bcc17
--- /dev/null
+++ b/src/test/ui/issue-8727.stderr
@@ -0,0 +1,21 @@
+warning: function cannot return without recurring
+  --> $DIR/issue-8727.rs:14:1
+   |
+LL | fn generic<T>() {
+   | ^^^^^^^^^^^^^^^ cannot return without recurring
+LL |     generic::<Option<T>>();
+   |     ---------------------- recursive call site
+   |
+   = note: #[warn(unconditional_recursion)] on by default
+   = help: a `loop` may express intention better if this is on purpose
+
+error: reached the recursion limit while instantiating `generic::<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<std::option::Option<i32>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
+  --> $DIR/issue-8727.rs:14:1
+   |
+LL | / fn generic<T>() {
+LL | |     generic::<Option<T>>();
+LL | | }
+   | |_^
+
+error: aborting due to previous error
+
diff --git a/src/test/compile-fail/issue-8761.rs b/src/test/ui/issue-8761.rs
index f8424ea64ef..f8424ea64ef 100644
--- a/src/test/compile-fail/issue-8761.rs
+++ b/src/test/ui/issue-8761.rs
diff --git a/src/test/ui/issue-8761.stderr b/src/test/ui/issue-8761.stderr
new file mode 100644
index 00000000000..b8144df3835
--- /dev/null
+++ b/src/test/ui/issue-8761.stderr
@@ -0,0 +1,15 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-8761.rs:12:9
+   |
+LL |     A = 1i64,
+   |         ^^^^ expected isize, found i64
+
+error[E0308]: mismatched types
+  --> $DIR/issue-8761.rs:15:9
+   |
+LL |     B = 2u8
+   |         ^^^ expected isize, found u8
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-8767.rs b/src/test/ui/issue-8767.rs
index 926cae788aa..926cae788aa 100644
--- a/src/test/compile-fail/issue-8767.rs
+++ b/src/test/ui/issue-8767.rs
diff --git a/src/test/ui/issue-8767.stderr b/src/test/ui/issue-8767.stderr
new file mode 100644
index 00000000000..d03e20ba270
--- /dev/null
+++ b/src/test/ui/issue-8767.stderr
@@ -0,0 +1,9 @@
+error[E0412]: cannot find type `B` in this scope
+  --> $DIR/issue-8767.rs:11:6
+   |
+LL | impl B { //~ ERROR cannot find type `B` in this scope
+   |      ^ not found in this scope
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0412`.
diff --git a/src/test/compile-fail/issue-9575.rs b/src/test/ui/issue-9575.rs
index 9295eeb1779..9295eeb1779 100644
--- a/src/test/compile-fail/issue-9575.rs
+++ b/src/test/ui/issue-9575.rs
diff --git a/src/test/ui/issue-9575.stderr b/src/test/ui/issue-9575.stderr
new file mode 100644
index 00000000000..d52669777bd
--- /dev/null
+++ b/src/test/ui/issue-9575.stderr
@@ -0,0 +1,12 @@
+error[E0308]: start function has wrong type
+  --> $DIR/issue-9575.rs:14:1
+   |
+LL | fn start(argc: isize, argv: *const *const u8, crate_map: *const u8) -> isize {
+   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ incorrect number of function parameters
+   |
+   = note: expected type `fn(isize, *const *const u8) -> isize`
+              found type `fn(isize, *const *const u8, *const u8) -> isize`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/compile-fail/issue-9725.rs b/src/test/ui/issue-9725.rs
index f53122d19c1..f53122d19c1 100644
--- a/src/test/compile-fail/issue-9725.rs
+++ b/src/test/ui/issue-9725.rs
diff --git a/src/test/ui/issue-9725.stderr b/src/test/ui/issue-9725.stderr
new file mode 100644
index 00000000000..1d7fdad82a0
--- /dev/null
+++ b/src/test/ui/issue-9725.stderr
@@ -0,0 +1,18 @@
+error[E0416]: identifier `foo` is bound more than once in the same pattern
+  --> $DIR/issue-9725.rs:14:18
+   |
+LL |     let A { foo, foo } = A { foo: 3 };
+   |                  ^^^ used in a pattern more than once
+
+error[E0025]: field `foo` bound multiple times in the pattern
+  --> $DIR/issue-9725.rs:14:18
+   |
+LL |     let A { foo, foo } = A { foo: 3 };
+   |             ---  ^^^ multiple uses of `foo` in pattern
+   |             |
+   |             first use of `foo`
+
+error: aborting due to 2 previous errors
+
+Some errors occurred: E0025, E0416.
+For more information about an error, try `rustc --explain E0025`.
diff --git a/src/test/compile-fail/issue-9814.rs b/src/test/ui/issue-9814.rs
index 226734b84d6..226734b84d6 100644
--- a/src/test/compile-fail/issue-9814.rs
+++ b/src/test/ui/issue-9814.rs
diff --git a/src/test/ui/issue-9814.stderr b/src/test/ui/issue-9814.stderr
new file mode 100644
index 00000000000..2e85bd46fe6
--- /dev/null
+++ b/src/test/ui/issue-9814.stderr
@@ -0,0 +1,9 @@
+error[E0614]: type `Foo` cannot be dereferenced
+  --> $DIR/issue-9814.rs:17:13
+   |
+LL |     let _ = *Foo::Bar(2); //~ ERROR type `Foo` cannot be dereferenced
+   |             ^^^^^^^^^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0614`.
diff --git a/src/test/compile-fail/issue-pr29383.rs b/src/test/ui/issue-pr29383.rs
index b60c537e1e6..b60c537e1e6 100644
--- a/src/test/compile-fail/issue-pr29383.rs
+++ b/src/test/ui/issue-pr29383.rs
diff --git a/src/test/ui/issue-pr29383.stderr b/src/test/ui/issue-pr29383.stderr
new file mode 100644
index 00000000000..9b8956da7a2
--- /dev/null
+++ b/src/test/ui/issue-pr29383.stderr
@@ -0,0 +1,15 @@
+error[E0532]: expected tuple struct/variant, found unit variant `E::A`
+  --> $DIR/issue-pr29383.rs:19:14
+   |
+LL |         Some(E::A(..)) => {} //~ ERROR expected tuple struct/variant, found unit variant `E::A`
+   |              ^^^^ not a tuple struct/variant
+
+error[E0532]: expected tuple struct/variant, found unit variant `E::B`
+  --> $DIR/issue-pr29383.rs:20:14
+   |
+LL |         Some(E::B(..)) => {} //~ ERROR expected tuple struct/variant, found unit variant `E::B`
+   |              ^^^^ not a tuple struct/variant
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0532`.