{"record":{"id":"05a818431f92f3fa","repo":"bevyengine/bevy","slug":"reflection-not-supported-for-unions","errorCode":null,"errorMessage":"reflection not supported for unions","messagePattern":"reflection not supported for unions","errorType":"validation","errorClass":"syn::Error","httpStatus":null,"severity":"error","filePath":"crates/bevy_reflect/derive/src/derive_data.rs","lineNumber":317,"sourceCode":"                let reflect_struct = ReflectStruct {\n                    meta,\n                    serialization_data,\n                    fields,\n                };\n\n                match data.fields {\n                    Fields::Named(..) => Ok(Self::Struct(reflect_struct)),\n                    Fields::Unnamed(..) => Ok(Self::TupleStruct(reflect_struct)),\n                    Fields::Unit => Ok(Self::UnitStruct(reflect_struct)),\n                }\n            }\n            Data::Enum(data) => {\n                let variants = Self::collect_enum_variants(&data.variants)?;\n\n                let reflect_enum = ReflectEnum { meta, variants };\n                Ok(Self::Enum(reflect_enum))\n            }\n            Data::Union(..) => Err(syn::Error::new(\n                input.span(),\n                \"reflection not supported for unions\",\n            )),\n        }\n    }\n\n    /// Set the remote type for this derived type.\n    ///\n    /// # Panics\n    ///\n    /// Panics when called on [`ReflectDerive::Opaque`].\n    pub fn set_remote(&mut self, remote_ty: Option<RemoteType<'a>>) {\n        match self {\n            Self::Struct(data) | Self::TupleStruct(data) | Self::UnitStruct(data) => {\n                data.meta.remote_ty = remote_ty;\n            }\n            Self::Enum(data) => {\n                data.meta.remote_ty = remote_ty;","sourceCodeStart":299,"sourceCodeEnd":335,"githubUrl":"https://github.com/bevyengine/bevy/blob/396ca727080776bd313bb892423b7d94e03b81b4/crates/bevy_reflect/derive/src/derive_data.rs#L299-L335","documentation":"Compile-time error raised in ReflectDeriveInput::from_input: #[derive(Reflect)] was applied to a union, which reflection does not support — only structs, enums, tuple structs, and unit structs can be reflected.","triggerScenarios":"Thrown at crates/bevy_reflect/derive/src/derive_data.rs:317 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Replace the union with a struct or enum","Implement reflection manually for the union's wrapper type"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"396ca727080776bd313bb892423b7d94e03b81b4","analyzedAt":"2026-08-20T16:12:39.808Z","contentChangedAt":"2026-08-20T16:12:39.808Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}