{"record":{"id":"21442a833c445afc","repo":"astral-sh/ruff","slug":"expected-type-21442a","errorCode":null,"errorMessage":"Expected type.","messagePattern":"Expected type\\.","errorType":"exception","errorClass":"syn::Error","httpStatus":null,"severity":"error","filePath":"crates/ruff_macros/src/config.rs","lineNumber":136,"sourceCode":"        }) => match segments.first() {\n            Some(PathSegment {\n                ident: type_ident,\n                arguments:\n                    PathArguments::AngleBracketed(AngleBracketedGenericArguments { args, .. }),\n            }) if type_ident == \"Option\" => {\n                let path = &args[0];\n                let kebab_name = LitStr::new(&ident.to_string().replace('_', \"-\"), ident.span());\n\n                Ok(quote_spanned!(\n                    ident.span() => (visit.record_set(#kebab_name, ruff_options_metadata::OptionSet::of::<#path>()))\n                ))\n            }\n            _ => Err(syn::Error::new(\n                ident.span(),\n                \"Expected `Option<_>`  as type.\",\n            )),\n        },\n        _ => Err(syn::Error::new(ident.span(), \"Expected type.\")),\n    }\n}\n\n/// Parse a `doc` attribute into it a string literal.\nfn parse_doc(doc: &Attribute) -> syn::Result<String> {\n    match &doc.meta {\n        syn::Meta::NameValue(syn::MetaNameValue {\n            value:\n                syn::Expr::Lit(ExprLit {\n                    lit: Lit::Str(lit_str),\n                    ..\n                }),\n            ..\n        }) => Ok(lit_str.value()),\n        _ => Err(syn::Error::new(doc.span(), \"Expected doc attribute.\")),\n    }\n}\n","sourceCodeStart":118,"sourceCodeEnd":154,"githubUrl":"https://github.com/astral-sh/ruff/blob/26f38c119cac42e4d320ba08f09224fdec74af2c/crates/ruff_macros/src/config.rs#L118-L154","documentation":"A syn compile error from the ConfigurationOptions derive when handling an option-group field: the field's type is not a type path, so its generic argument cannot be extracted to register the nested option set.","triggerScenarios":"Thrown at crates/ruff_macros/src/config.rs:136 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use an Option<SomeOptionsGroup> type path for the field","Register the nested set manually via OptionsMetadata"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"26f38c119cac42e4d320ba08f09224fdec74af2c","analyzedAt":"2026-09-05T10:32:37.492Z","contentChangedAt":"2026-09-05T10:32:37.492Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}