 20277006ce
			
		
	
	
		20277006ce
		
			
		
	
	
	
	
		
			
			# Objective - Our benchmarks and `compile_fail` tests lag behind the rest of the engine because they are not in the Cargo workspace, so not checked by CI. - Fixes #16801, please see it for further context! ## Solution - Add benchmarks and `compile_fail` tests to the Cargo workspace. - Fix any leftover formatting issues and documentation. ## Testing - I think CI should catch most things! ## Questions <details> <summary>Outdated issue I was having with function reflection being optional</summary> The `reflection_types` example is failing in Rust-Analyzer for me, but not a normal check. ```rust error[E0004]: non-exhaustive patterns: `ReflectRef::Function(_)` not covered --> examples/reflection/reflection_types.rs:81:11 | 81 | match value.reflect_ref() { | ^^^^^^^^^^^^^^^^^^^ pattern `ReflectRef::Function(_)` not covered | note: `ReflectRef<'_>` defined here --> /Users/bdeep/dev/bevy/bevy/crates/bevy_reflect/src/kind.rs:178:1 | 178 | pub enum ReflectRef<'a> { | ^^^^^^^^^^^^^^^^^^^^^^^ ... 188 | Function(&'a dyn Function), | -------- not covered = note: the matched value is of type `ReflectRef<'_>` help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown | 126 ~ ReflectRef::Opaque(_) => {}, 127 + ReflectRef::Function(_) => todo!() | ``` I think it is because the following line is feature-gated:cc0f6a8db4/examples/reflection/reflection_types.rs (L117-L122)My theory for why this is happening is because the benchmarks enabled `bevy_reflect`'s `function` feature, which gets merged with the rest of the features when RA checks the workspace, but the `#[cfg(...)]` gate in the example isn't detecting it:cc0f6a8db4/benches/Cargo.toml (L19)Any thoughts on how to fix this? It's not blocking, since the example still compiles as normal, but it's just RA and the command `cargo check --workspace --all-targets` appears to fail. </summary>
		
			
				
	
	
		
			7 lines
		
	
	
		
			184 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			7 lines
		
	
	
		
			184 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
| fn main() -> compile_fail_utils::ui_test::Result<()> {
 | |
|     compile_fail_utils::test_multiple(
 | |
|         "derive_deref",
 | |
|         ["tests/deref_derive", "tests/deref_mut_derive"],
 | |
|     )
 | |
| }
 |