diff --git a/CHANGELOG.md b/CHANGELOG.md index 79c9ee5a17..adbc211e1e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -33,6 +33,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - [PR#1127](https://github.com/EmbarkStudios/rust-gpu/pull/1127) updated `spirv-tools` to `0.10.0`, which follows `vulkan-sdk-1.3.275` - [PR#1101](https://github.com/EmbarkStudios/rust-gpu/pull/1101) added `ignore` and `no_run` to documentation to make `cargo test` pass - [PR#1112](https://github.com/EmbarkStudios/rust-gpu/pull/1112) updated wgpu and winit in example runners +- [PR#1102](https://github.com/EmbarkStudios/rust-gpu/pull/1102) updated toolchain to `nightly-2023-11-26` - [PR#1100](https://github.com/EmbarkStudios/rust-gpu/pull/1100) updated toolchain to `nightly-2023-09-30` - [PR#1091](https://github.com/EmbarkStudios/rust-gpu/pull/1091) updated toolchain to `nightly-2023-08-29` - [PR#1085](https://github.com/EmbarkStudios/rust-gpu/pull/1085) updated toolchain to `nightly-2023-07-08` diff --git a/crates/rustc_codegen_spirv/build.rs b/crates/rustc_codegen_spirv/build.rs index 6421463ba5..dcb3163d50 100644 --- a/crates/rustc_codegen_spirv/build.rs +++ b/crates/rustc_codegen_spirv/build.rs @@ -10,9 +10,9 @@ use std::process::{Command, ExitCode}; /// `cargo publish`. We need to figure out a way to do this properly, but let's hardcode it for now :/ //const REQUIRED_RUST_TOOLCHAIN: &str = include_str!("../../rust-toolchain.toml"); const REQUIRED_RUST_TOOLCHAIN: &str = r#"[toolchain] -channel = "nightly-2023-09-30" +channel = "nightly-2023-11-26" components = ["rust-src", "rustc-dev", "llvm-tools"] -# commit_hash = 8ce4540bd6fe7d58d4bc05f1b137d61937d3cf72"#; +# commit_hash = f5dc2653fdd8b5d177b2ccbd84057954340a89fc"#; fn get_rustc_commit_hash() -> Result> { let rustc = std::env::var("RUSTC").unwrap_or_else(|_| String::from("rustc")); diff --git a/crates/rustc_codegen_spirv/src/abi.rs b/crates/rustc_codegen_spirv/src/abi.rs index fbe20ed462..38586dc9aa 100644 --- a/crates/rustc_codegen_spirv/src/abi.rs +++ b/crates/rustc_codegen_spirv/src/abi.rs @@ -12,7 +12,7 @@ use rustc_middle::query::Providers; use rustc_middle::ty::layout::{FnAbiOf, LayoutOf, TyAndLayout}; use rustc_middle::ty::GenericArgsRef; use rustc_middle::ty::{ - self, Const, FloatTy, GeneratorArgs, IntTy, ParamEnv, PolyFnSig, Ty, TyCtxt, TyKind, + self, Const, CoroutineArgs, FloatTy, IntTy, ParamEnv, PolyFnSig, Ty, TyCtxt, TyKind, TypeAndMut, UintTy, }; use rustc_middle::{bug, span_bug}; @@ -64,6 +64,9 @@ pub(crate) fn provide(providers: &mut Providers) { ) -> &'tcx FnAbi<'tcx, Ty<'tcx>> { let readjust_arg_abi = |arg: &ArgAbi<'tcx, Ty<'tcx>>| { let mut arg = ArgAbi::new(&tcx, arg.layout, |_, _, _| ArgAttributes::new()); + // FIXME: this is bad! https://github.com/rust-lang/rust/issues/115666 + // + arg.make_direct_deprecated(); // Avoid pointlessly passing ZSTs, just like the official Rust ABI. if arg.layout.is_zst() { @@ -96,7 +99,9 @@ pub(crate) fn provide(providers: &mut Providers) { // FIXME(eddyb) remove this by deriving `Clone` for `LayoutS` upstream. // FIXME(eddyb) the `S` suffix is a naming antipattern, rename upstream. - fn clone_layout(layout: &LayoutS) -> LayoutS { + fn clone_layout( + layout: &LayoutS, + ) -> LayoutS { let LayoutS { ref fields, ref variants, @@ -744,7 +749,7 @@ fn trans_struct<'tcx>(cx: &CodegenCx<'tcx>, span: Span, ty: TyAndLayout<'tcx>) - fn def_id_for_spirv_type_adt(layout: TyAndLayout<'_>) -> Option { match *layout.ty.kind() { TyKind::Adt(def, _) => Some(def.did()), - TyKind::Foreign(def_id) | TyKind::Closure(def_id, _) | TyKind::Generator(def_id, ..) => { + TyKind::Foreign(def_id) | TyKind::Closure(def_id, _) | TyKind::Coroutine(def_id, ..) => { Some(def_id) } _ => None, @@ -779,8 +784,8 @@ impl fmt::Display for TyLayoutNameKey<'_> { write!(f, "::{}", def.variants()[index].name)?; } } - if let (TyKind::Generator(_, _, _), Some(index)) = (self.ty.kind(), self.variant) { - write!(f, "::{}", GeneratorArgs::variant_name(index))?; + if let (TyKind::Coroutine(_, _, _), Some(index)) = (self.ty.kind(), self.variant) { + write!(f, "::{}", CoroutineArgs::variant_name(index))?; } Ok(()) } diff --git a/crates/rustc_codegen_spirv/src/builder/builder_methods.rs b/crates/rustc_codegen_spirv/src/builder/builder_methods.rs index 86766ff75f..4e1cad8186 100644 --- a/crates/rustc_codegen_spirv/src/builder/builder_methods.rs +++ b/crates/rustc_codegen_spirv/src/builder/builder_methods.rs @@ -3037,7 +3037,7 @@ impl<'a, 'tcx> BuilderMethods<'a, 'tcx> for Builder<'a, 'tcx> { self.intcast(val, dest_ty, false) } - fn do_not_inline(&mut self, _llret: Self::Value) { + fn apply_attrs_to_cleanup_callsite(&mut self, _llret: Self::Value) { // Ignore } } diff --git a/crates/rustc_codegen_spirv/src/builder/intrinsics.rs b/crates/rustc_codegen_spirv/src/builder/intrinsics.rs index 9d8b886ea8..45e9b861c6 100644 --- a/crates/rustc_codegen_spirv/src/builder/intrinsics.rs +++ b/crates/rustc_codegen_spirv/src/builder/intrinsics.rs @@ -12,8 +12,8 @@ use rustc_codegen_ssa::traits::{BuilderMethods, IntrinsicCallMethods}; use rustc_middle::bug; use rustc_middle::ty::layout::LayoutOf; use rustc_middle::ty::{FnDef, Instance, ParamEnv, Ty, TyKind}; -use rustc_span::source_map::Span; use rustc_span::sym; +use rustc_span::Span; use rustc_target::abi::call::{FnAbi, PassMode}; use std::assert_matches::assert_matches; diff --git a/crates/rustc_codegen_spirv/src/builder/mod.rs b/crates/rustc_codegen_spirv/src/builder/mod.rs index 9fec40232e..fbc12d2ddd 100644 --- a/crates/rustc_codegen_spirv/src/builder/mod.rs +++ b/crates/rustc_codegen_spirv/src/builder/mod.rs @@ -29,7 +29,7 @@ use rustc_middle::ty::layout::{ }; use rustc_middle::ty::{Instance, ParamEnv, Ty, TyCtxt}; use rustc_span::def_id::DefId; -use rustc_span::source_map::Span; +use rustc_span::Span; use rustc_target::abi::call::{ArgAbi, FnAbi, PassMode}; use rustc_target::abi::{HasDataLayout, Size, TargetDataLayout}; use rustc_target::spec::{HasTargetSpec, Target}; diff --git a/crates/rustc_codegen_spirv/src/builder_spirv.rs b/crates/rustc_codegen_spirv/src/builder_spirv.rs index 6a7c8e72a2..7d6249cafc 100644 --- a/crates/rustc_codegen_spirv/src/builder_spirv.rs +++ b/crates/rustc_codegen_spirv/src/builder_spirv.rs @@ -767,7 +767,7 @@ impl<'tcx> BuilderSpirv<'tcx> { FileName::Real(name) => { name.to_string_lossy(FileNameDisplayPreference::Remapped) } - _ => sf.name.prefer_remapped().to_string().into(), + _ => sf.name.prefer_remapped_unconditionaly().to_string().into(), }; let file_name = { // FIXME(eddyb) it should be possible to arena-allocate a diff --git a/crates/rustc_codegen_spirv/src/codegen_cx/type_.rs b/crates/rustc_codegen_spirv/src/codegen_cx/type_.rs index 6effea59b9..c6a086c5a9 100644 --- a/crates/rustc_codegen_spirv/src/codegen_cx/type_.rs +++ b/crates/rustc_codegen_spirv/src/codegen_cx/type_.rs @@ -9,7 +9,8 @@ use rustc_middle::ty::layout::{ }; use rustc_middle::ty::Ty; use rustc_middle::{bug, span_bug}; -use rustc_span::source_map::{Span, Spanned, DUMMY_SP}; +use rustc_span::source_map::Spanned; +use rustc_span::{Span, DUMMY_SP}; use rustc_target::abi::call::{CastTarget, FnAbi, Reg}; use rustc_target::abi::{Abi, AddressSpace, FieldsShape}; diff --git a/crates/rustc_codegen_spirv/src/linker/dce.rs b/crates/rustc_codegen_spirv/src/linker/dce.rs index ac9bf3c7fd..3cc865a741 100644 --- a/crates/rustc_codegen_spirv/src/linker/dce.rs +++ b/crates/rustc_codegen_spirv/src/linker/dce.rs @@ -281,7 +281,7 @@ fn instruction_is_pure(inst: &Instruction) -> bool { | PtrEqual | PtrNotEqual | PtrDiff => true, - Variable => inst.operands.get(0) == Some(&Operand::StorageClass(StorageClass::Function)), + Variable => inst.operands.first() == Some(&Operand::StorageClass(StorageClass::Function)), _ => false, } } diff --git a/crates/rustc_codegen_spirv/src/linker/test.rs b/crates/rustc_codegen_spirv/src/linker/test.rs index 7e92b89f47..417408576c 100644 --- a/crates/rustc_codegen_spirv/src/linker/test.rs +++ b/crates/rustc_codegen_spirv/src/linker/test.rs @@ -155,6 +155,7 @@ fn link_with_linker_opts( rustc_interface::util::rustc_version_str().unwrap_or("unknown"), Default::default(), Default::default(), + Default::default(), ); // HACK(eddyb) inject `write_diags` into `sess`, to work around diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 884ca31985..98315c67df 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,7 +1,7 @@ [toolchain] -channel = "nightly-2023-09-30" +channel = "nightly-2023-11-26" components = ["rust-src", "rustc-dev", "llvm-tools"] -# commit_hash = 8ce4540bd6fe7d58d4bc05f1b137d61937d3cf72 +# commit_hash = f5dc2653fdd8b5d177b2ccbd84057954340a89fc # Whenever changing the nightly channel, update the commit hash above, and make # sure to change `REQUIRED_TOOLCHAIN` in `crates/rustc_codegen_spirv/build.rs` also. diff --git a/tests/ui/dis/ptr_copy.normal.stderr b/tests/ui/dis/ptr_copy.normal.stderr index 43c045e5b8..7182c5f4ba 100644 --- a/tests/ui/dis/ptr_copy.normal.stderr +++ b/tests/ui/dis/ptr_copy.normal.stderr @@ -1,13 +1,13 @@ error: cannot memcpy dynamically sized data - --> $CORE_SRC/intrinsics.rs:2778:9 + --> $CORE_SRC/intrinsics.rs:2776:9 | -2778 | copy(src, dst, count) +2776 | copy(src, dst, count) | ^^^^^^^^^^^^^^^^^^^^^ | note: used from within `core::intrinsics::copy::` - --> $CORE_SRC/intrinsics.rs:2764:21 + --> $CORE_SRC/intrinsics.rs:2762:21 | -2764 | pub const unsafe fn copy(src: *const T, dst: *mut T, count: usize) { +2762 | pub const unsafe fn copy(src: *const T, dst: *mut T, count: usize) { | ^^^^ note: called by `ptr_copy::copy_via_raw_ptr` --> $DIR/ptr_copy.rs:28:18 @@ -25,5 +25,5 @@ note: called by `main` 32 | pub fn main(i: f32, o: &mut f32) { | ^^^^ -error: aborting due to previous error +error: aborting due to 1 previous error diff --git a/tests/ui/dis/ptr_read.stderr b/tests/ui/dis/ptr_read.stderr index 722af616d8..c4f70a0853 100644 --- a/tests/ui/dis/ptr_read.stderr +++ b/tests/ui/dis/ptr_read.stderr @@ -2,7 +2,7 @@ %4 = OpFunctionParameter %5 %6 = OpFunctionParameter %5 %7 = OpLabel -OpLine %8 1183 8 +OpLine %8 1200 8 %9 = OpLoad %10 %4 OpLine %11 7 13 OpStore %6 %9 diff --git a/tests/ui/dis/ptr_read_method.stderr b/tests/ui/dis/ptr_read_method.stderr index 722af616d8..c4f70a0853 100644 --- a/tests/ui/dis/ptr_read_method.stderr +++ b/tests/ui/dis/ptr_read_method.stderr @@ -2,7 +2,7 @@ %4 = OpFunctionParameter %5 %6 = OpFunctionParameter %5 %7 = OpLabel -OpLine %8 1183 8 +OpLine %8 1200 8 %9 = OpLoad %10 %4 OpLine %11 7 13 OpStore %6 %9 diff --git a/tests/ui/dis/ptr_write.stderr b/tests/ui/dis/ptr_write.stderr index b86b31d184..f2f9af23c9 100644 --- a/tests/ui/dis/ptr_write.stderr +++ b/tests/ui/dis/ptr_write.stderr @@ -4,7 +4,7 @@ %7 = OpLabel OpLine %8 7 35 %9 = OpLoad %10 %4 -OpLine %11 1382 8 +OpLine %11 1400 8 OpStore %6 %9 OpNoLine OpReturn diff --git a/tests/ui/dis/ptr_write_method.stderr b/tests/ui/dis/ptr_write_method.stderr index 013ba2e906..2141c5964c 100644 --- a/tests/ui/dis/ptr_write_method.stderr +++ b/tests/ui/dis/ptr_write_method.stderr @@ -4,7 +4,7 @@ %7 = OpLabel OpLine %8 7 37 %9 = OpLoad %10 %4 -OpLine %11 1382 8 +OpLine %11 1400 8 OpStore %6 %9 OpNoLine OpReturn diff --git a/tests/ui/image/query/query_levels_err.stderr b/tests/ui/image/query/query_levels_err.stderr index ae524b7ef5..2f03a3f426 100644 --- a/tests/ui/image/query/query_levels_err.stderr +++ b/tests/ui/image/query/query_levels_err.stderr @@ -18,6 +18,6 @@ note: required by a bound in `Image::::query_levels` -error: aborting due to previous error +error: aborting due to 1 previous error For more information about this error, try `rustc --explain E0277`. diff --git a/tests/ui/image/query/query_lod_err.stderr b/tests/ui/image/query/query_lod_err.stderr index 5ad3b758fa..0b6a9a052c 100644 --- a/tests/ui/image/query/query_lod_err.stderr +++ b/tests/ui/image/query/query_lod_err.stderr @@ -18,6 +18,6 @@ note: required by a bound in `Image::::query_lod` -error: aborting due to previous error +error: aborting due to 1 previous error For more information about this error, try `rustc --explain E0277`. diff --git a/tests/ui/image/query/query_size_err.stderr b/tests/ui/image/query/query_size_err.stderr index 9311a1d78b..b35b9c1298 100644 --- a/tests/ui/image/query/query_size_err.stderr +++ b/tests/ui/image/query/query_size_err.stderr @@ -23,6 +23,6 @@ note: required by a bound in `Image::::query_size` -error: aborting due to previous error +error: aborting due to 1 previous error For more information about this error, try `rustc --explain E0277`. diff --git a/tests/ui/image/query/query_size_lod_err.stderr b/tests/ui/image/query/query_size_lod_err.stderr index ed06527761..20464eb29a 100644 --- a/tests/ui/image/query/query_size_lod_err.stderr +++ b/tests/ui/image/query/query_size_lod_err.stderr @@ -18,6 +18,6 @@ note: required by a bound in `Image::::query_size_lod` -error: aborting due to previous error +error: aborting due to 1 previous error For more information about this error, try `rustc --explain E0277`. diff --git a/tests/ui/lang/control_flow/issue_764.stderr b/tests/ui/lang/control_flow/issue_764.stderr index fc05159549..7e5182792d 100644 --- a/tests/ui/lang/control_flow/issue_764.stderr +++ b/tests/ui/lang/control_flow/issue_764.stderr @@ -1,4 +1,4 @@ error: module has recursion, which is not allowed: `<(i32, issue_764::Transform2D) as issue_764::GivesFinalTransform>::get_final_transform` calls `<(i32, issue_764::Transform2D) as issue_764::GivesFinalTransform>::get_final_transform` -error: aborting due to previous error +error: aborting due to 1 previous error diff --git a/tests/ui/lang/core/ptr/allocate_const_scalar.stderr b/tests/ui/lang/core/ptr/allocate_const_scalar.stderr index a85b884892..df6374b37b 100644 --- a/tests/ui/lang/core/ptr/allocate_const_scalar.stderr +++ b/tests/ui/lang/core/ptr/allocate_const_scalar.stderr @@ -11,5 +11,5 @@ note: called by `main` 15 | pub fn main(output: &mut Unique<[u8; 4]>) { | ^^^^ -error: aborting due to previous error +error: aborting due to 1 previous error diff --git a/tests/ui/lang/core/ref/member_ref_arg-broken.stderr b/tests/ui/lang/core/ref/member_ref_arg-broken.stderr index 0c0759c940..66dee4fc15 100644 --- a/tests/ui/lang/core/ref/member_ref_arg-broken.stderr +++ b/tests/ui/lang/core/ref/member_ref_arg-broken.stderr @@ -8,5 +8,5 @@ error: error:0:0 - OpLoad Pointer '$ID[%$ID]' is not a logical pointer. = note: spirv-val failed = note: module `$TEST_BUILD_DIR/lang/core/ref/member_ref_arg-broken.default` -error: aborting due to previous error; 2 warnings emitted +error: aborting due to 1 previous error; 2 warnings emitted diff --git a/tests/ui/lang/core/unwrap_or.stderr b/tests/ui/lang/core/unwrap_or.stderr index 3b3100c773..8448d926fe 100644 --- a/tests/ui/lang/core/unwrap_or.stderr +++ b/tests/ui/lang/core/unwrap_or.stderr @@ -3,9 +3,9 @@ OpLine %5 13 11 %6 = OpCompositeInsert %7 %8 %9 0 %10 = OpCompositeExtract %11 %6 1 -OpLine %12 956 14 +OpLine %12 952 14 %13 = OpBitcast %14 %8 -OpLine %12 956 8 +OpLine %12 952 8 %15 = OpIEqual %16 %13 %17 OpNoLine OpSelectionMerge %18 None diff --git a/tests/ui/spirv-attr/invalid-matrix-type-empty.stderr b/tests/ui/spirv-attr/invalid-matrix-type-empty.stderr index 6a02d04dd9..d34ef0ac5e 100644 --- a/tests/ui/spirv-attr/invalid-matrix-type-empty.stderr +++ b/tests/ui/spirv-attr/invalid-matrix-type-empty.stderr @@ -4,5 +4,5 @@ error: #[spirv(matrix)] type must have at least two fields 7 | pub struct EmptyStruct {} | ^^^^^^^^^^^^^^^^^^^^^^ -error: aborting due to previous error +error: aborting due to 1 previous error diff --git a/tests/ui/spirv-attr/invalid-target.rs b/tests/ui/spirv-attr/invalid-target.rs index 9bc0c525cf..2dbd5bb106 100644 --- a/tests/ui/spirv-attr/invalid-target.rs +++ b/tests/ui/spirv-attr/invalid-target.rs @@ -288,7 +288,8 @@ fn _fn( vertex, // fn-only uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only )] - (1, 2, 3) // expression + (1, 2, 3) + // expression ); match () { diff --git a/tests/ui/spirv-attr/invalid-target.stderr b/tests/ui/spirv-attr/invalid-target.stderr index d659b95039..c8733ab54f 100644 --- a/tests/ui/spirv-attr/invalid-target.stderr +++ b/tests/ui/spirv-attr/invalid-target.stderr @@ -1583,267 +1583,267 @@ error: attribute is only valid on a function parameter, not on a expression | ^^^^^^^^^ error: attribute is only valid on a struct, not on a match arm - --> $DIR/invalid-target.rs:296:13 + --> $DIR/invalid-target.rs:297:13 | -296 | sampler, block, sampled_image, generic_image_type, // struct-only +297 | sampler, block, sampled_image, generic_image_type, // struct-only | ^^^^^^^ error: attribute is only valid on a struct, not on a match arm - --> $DIR/invalid-target.rs:296:22 + --> $DIR/invalid-target.rs:297:22 | -296 | sampler, block, sampled_image, generic_image_type, // struct-only +297 | sampler, block, sampled_image, generic_image_type, // struct-only | ^^^^^ error: attribute is only valid on a struct, not on a match arm - --> $DIR/invalid-target.rs:296:29 + --> $DIR/invalid-target.rs:297:29 | -296 | sampler, block, sampled_image, generic_image_type, // struct-only +297 | sampler, block, sampled_image, generic_image_type, // struct-only | ^^^^^^^^^^^^^ error: attribute is only valid on a struct, not on a match arm - --> $DIR/invalid-target.rs:296:44 + --> $DIR/invalid-target.rs:297:44 | -296 | sampler, block, sampled_image, generic_image_type, // struct-only +297 | sampler, block, sampled_image, generic_image_type, // struct-only | ^^^^^^^^^^^^^^^^^^ error: attribute is only valid on a function, not on a match arm - --> $DIR/invalid-target.rs:297:13 + --> $DIR/invalid-target.rs:298:13 | -297 | vertex, // fn-only +298 | vertex, // fn-only | ^^^^^^ error: attribute is only valid on a function parameter, not on a match arm - --> $DIR/invalid-target.rs:298:13 + --> $DIR/invalid-target.rs:299:13 | -298 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only +299 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only | ^^^^^^^ error: attribute is only valid on a function parameter, not on a match arm - --> $DIR/invalid-target.rs:298:22 + --> $DIR/invalid-target.rs:299:22 | -298 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only +299 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only | ^^^^^^^^ error: attribute is only valid on a function parameter, not on a match arm - --> $DIR/invalid-target.rs:298:32 + --> $DIR/invalid-target.rs:299:32 | -298 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only +299 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only | ^^^^^^^^^^^^^^^^^^ error: attribute is only valid on a function parameter, not on a match arm - --> $DIR/invalid-target.rs:298:52 + --> $DIR/invalid-target.rs:299:52 | -298 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only +299 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only | ^^^^^^^^^^^ error: attribute is only valid on a function parameter, not on a match arm - --> $DIR/invalid-target.rs:298:65 + --> $DIR/invalid-target.rs:299:65 | -298 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only +299 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only | ^^^^ error: attribute is only valid on a function parameter, not on a match arm - --> $DIR/invalid-target.rs:298:71 + --> $DIR/invalid-target.rs:299:71 | -298 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only +299 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only | ^^^^^^^^^ error: attribute is only valid on a struct, not on a lifetime parameter - --> $DIR/invalid-target.rs:306:9 + --> $DIR/invalid-target.rs:307:9 | -306 | sampler, block, sampled_image, generic_image_type, // struct-only +307 | sampler, block, sampled_image, generic_image_type, // struct-only | ^^^^^^^ error: attribute is only valid on a struct, not on a lifetime parameter - --> $DIR/invalid-target.rs:306:18 + --> $DIR/invalid-target.rs:307:18 | -306 | sampler, block, sampled_image, generic_image_type, // struct-only +307 | sampler, block, sampled_image, generic_image_type, // struct-only | ^^^^^ error: attribute is only valid on a struct, not on a lifetime parameter - --> $DIR/invalid-target.rs:306:25 + --> $DIR/invalid-target.rs:307:25 | -306 | sampler, block, sampled_image, generic_image_type, // struct-only +307 | sampler, block, sampled_image, generic_image_type, // struct-only | ^^^^^^^^^^^^^ error: attribute is only valid on a struct, not on a lifetime parameter - --> $DIR/invalid-target.rs:306:40 + --> $DIR/invalid-target.rs:307:40 | -306 | sampler, block, sampled_image, generic_image_type, // struct-only +307 | sampler, block, sampled_image, generic_image_type, // struct-only | ^^^^^^^^^^^^^^^^^^ error: attribute is only valid on a function, not on a lifetime parameter - --> $DIR/invalid-target.rs:307:9 + --> $DIR/invalid-target.rs:308:9 | -307 | vertex, // fn-only +308 | vertex, // fn-only | ^^^^^^ error: attribute is only valid on a function parameter, not on a lifetime parameter - --> $DIR/invalid-target.rs:308:9 + --> $DIR/invalid-target.rs:309:9 | -308 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only +309 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only | ^^^^^^^ error: attribute is only valid on a function parameter, not on a lifetime parameter - --> $DIR/invalid-target.rs:308:18 + --> $DIR/invalid-target.rs:309:18 | -308 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only +309 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only | ^^^^^^^^ error: attribute is only valid on a function parameter, not on a lifetime parameter - --> $DIR/invalid-target.rs:308:28 + --> $DIR/invalid-target.rs:309:28 | -308 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only +309 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only | ^^^^^^^^^^^^^^^^^^ error: attribute is only valid on a function parameter, not on a lifetime parameter - --> $DIR/invalid-target.rs:308:48 + --> $DIR/invalid-target.rs:309:48 | -308 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only +309 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only | ^^^^^^^^^^^ error: attribute is only valid on a function parameter, not on a lifetime parameter - --> $DIR/invalid-target.rs:308:61 + --> $DIR/invalid-target.rs:309:61 | -308 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only +309 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only | ^^^^ error: attribute is only valid on a function parameter, not on a lifetime parameter - --> $DIR/invalid-target.rs:308:67 + --> $DIR/invalid-target.rs:309:67 | -308 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only +309 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only | ^^^^^^^^^ error: attribute is only valid on a struct, not on a type parameter - --> $DIR/invalid-target.rs:311:9 + --> $DIR/invalid-target.rs:312:9 | -311 | sampler, block, sampled_image, generic_image_type, // struct-only +312 | sampler, block, sampled_image, generic_image_type, // struct-only | ^^^^^^^ error: attribute is only valid on a struct, not on a type parameter - --> $DIR/invalid-target.rs:311:18 + --> $DIR/invalid-target.rs:312:18 | -311 | sampler, block, sampled_image, generic_image_type, // struct-only +312 | sampler, block, sampled_image, generic_image_type, // struct-only | ^^^^^ error: attribute is only valid on a struct, not on a type parameter - --> $DIR/invalid-target.rs:311:25 + --> $DIR/invalid-target.rs:312:25 | -311 | sampler, block, sampled_image, generic_image_type, // struct-only +312 | sampler, block, sampled_image, generic_image_type, // struct-only | ^^^^^^^^^^^^^ error: attribute is only valid on a struct, not on a type parameter - --> $DIR/invalid-target.rs:311:40 + --> $DIR/invalid-target.rs:312:40 | -311 | sampler, block, sampled_image, generic_image_type, // struct-only +312 | sampler, block, sampled_image, generic_image_type, // struct-only | ^^^^^^^^^^^^^^^^^^ error: attribute is only valid on a function, not on a type parameter - --> $DIR/invalid-target.rs:312:9 + --> $DIR/invalid-target.rs:313:9 | -312 | vertex, // fn-only +313 | vertex, // fn-only | ^^^^^^ error: attribute is only valid on a function parameter, not on a type parameter - --> $DIR/invalid-target.rs:313:9 + --> $DIR/invalid-target.rs:314:9 | -313 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only +314 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only | ^^^^^^^ error: attribute is only valid on a function parameter, not on a type parameter - --> $DIR/invalid-target.rs:313:18 + --> $DIR/invalid-target.rs:314:18 | -313 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only +314 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only | ^^^^^^^^ error: attribute is only valid on a function parameter, not on a type parameter - --> $DIR/invalid-target.rs:313:28 + --> $DIR/invalid-target.rs:314:28 | -313 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only +314 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only | ^^^^^^^^^^^^^^^^^^ error: attribute is only valid on a function parameter, not on a type parameter - --> $DIR/invalid-target.rs:313:48 + --> $DIR/invalid-target.rs:314:48 | -313 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only +314 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only | ^^^^^^^^^^^ error: attribute is only valid on a function parameter, not on a type parameter - --> $DIR/invalid-target.rs:313:61 + --> $DIR/invalid-target.rs:314:61 | -313 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only +314 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only | ^^^^ error: attribute is only valid on a function parameter, not on a type parameter - --> $DIR/invalid-target.rs:313:67 + --> $DIR/invalid-target.rs:314:67 | -313 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only +314 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only | ^^^^^^^^^ error: attribute is only valid on a struct, not on a const parameter - --> $DIR/invalid-target.rs:316:9 + --> $DIR/invalid-target.rs:317:9 | -316 | sampler, block, sampled_image, generic_image_type, // struct-only +317 | sampler, block, sampled_image, generic_image_type, // struct-only | ^^^^^^^ error: attribute is only valid on a struct, not on a const parameter - --> $DIR/invalid-target.rs:316:18 + --> $DIR/invalid-target.rs:317:18 | -316 | sampler, block, sampled_image, generic_image_type, // struct-only +317 | sampler, block, sampled_image, generic_image_type, // struct-only | ^^^^^ error: attribute is only valid on a struct, not on a const parameter - --> $DIR/invalid-target.rs:316:25 + --> $DIR/invalid-target.rs:317:25 | -316 | sampler, block, sampled_image, generic_image_type, // struct-only +317 | sampler, block, sampled_image, generic_image_type, // struct-only | ^^^^^^^^^^^^^ error: attribute is only valid on a struct, not on a const parameter - --> $DIR/invalid-target.rs:316:40 + --> $DIR/invalid-target.rs:317:40 | -316 | sampler, block, sampled_image, generic_image_type, // struct-only +317 | sampler, block, sampled_image, generic_image_type, // struct-only | ^^^^^^^^^^^^^^^^^^ error: attribute is only valid on a function, not on a const parameter - --> $DIR/invalid-target.rs:317:9 + --> $DIR/invalid-target.rs:318:9 | -317 | vertex, // fn-only +318 | vertex, // fn-only | ^^^^^^ error: attribute is only valid on a function parameter, not on a const parameter - --> $DIR/invalid-target.rs:318:9 + --> $DIR/invalid-target.rs:319:9 | -318 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only +319 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only | ^^^^^^^ error: attribute is only valid on a function parameter, not on a const parameter - --> $DIR/invalid-target.rs:318:18 + --> $DIR/invalid-target.rs:319:18 | -318 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only +319 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only | ^^^^^^^^ error: attribute is only valid on a function parameter, not on a const parameter - --> $DIR/invalid-target.rs:318:28 + --> $DIR/invalid-target.rs:319:28 | -318 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only +319 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only | ^^^^^^^^^^^^^^^^^^ error: attribute is only valid on a function parameter, not on a const parameter - --> $DIR/invalid-target.rs:318:48 + --> $DIR/invalid-target.rs:319:48 | -318 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only +319 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only | ^^^^^^^^^^^ error: attribute is only valid on a function parameter, not on a const parameter - --> $DIR/invalid-target.rs:318:61 + --> $DIR/invalid-target.rs:319:61 | -318 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only +319 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only | ^^^^ error: attribute is only valid on a function parameter, not on a const parameter - --> $DIR/invalid-target.rs:318:67 + --> $DIR/invalid-target.rs:319:67 | -318 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only +319 | uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only | ^^^^^^^^^ error: attribute is only valid on a struct, not on a associated type diff --git a/tests/ui/spirv-attr/invariant-invalid.stderr b/tests/ui/spirv-attr/invariant-invalid.stderr index 4ba05ebacc..8db5f32424 100644 --- a/tests/ui/spirv-attr/invariant-invalid.stderr +++ b/tests/ui/spirv-attr/invariant-invalid.stderr @@ -4,5 +4,5 @@ error: `#[spirv(invariant)]` is only valid on Output variables 7 | pub fn main(#[spirv(invariant)] input: f32) {} | ^^^^^^^^^ -error: aborting due to previous error +error: aborting due to 1 previous error diff --git a/tests/ui/storage_class/runtime_descriptor_array_error.stderr b/tests/ui/storage_class/runtime_descriptor_array_error.stderr index efe0352a43..a6025a5fd0 100644 --- a/tests/ui/storage_class/runtime_descriptor_array_error.stderr +++ b/tests/ui/storage_class/runtime_descriptor_array_error.stderr @@ -10,5 +10,5 @@ warning: use &[T] instead of &RuntimeArray 8 | #[spirv(uniform, descriptor_set = 0, binding = 0)] two: &RuntimeArray, | ^^^^^^^^^^^^^^^^^^ -error: aborting due to previous error; 1 warning emitted +error: aborting due to 1 previous error; 1 warning emitted diff --git a/tests/ui/target_features_err.stderr b/tests/ui/target_features_err.stderr index 8b5b679cb0..9195a361f2 100644 --- a/tests/ui/target_features_err.stderr +++ b/tests/ui/target_features_err.stderr @@ -1,4 +1,4 @@ error: Invalid Capability: `rayTracingKHR` -error: aborting due to previous error +error: aborting due to 1 previous error