{"record":{"id":"72568fd9bce788b6","repo":"quarkusio/quarkus","slug":"unsupported-nesting-type-clazz","errorCode":null,"errorMessage":"Unsupported nesting type: \" + clazz","messagePattern":"Unsupported nesting type: \" \\+ clazz","errorType":"exception","errorClass":"IllegalStateException","httpStatus":null,"severity":"error","filePath":"independent-projects/qute/generator/src/main/java/io/quarkus/qute/generator/ValueResolverGenerator.java","lineNumber":1089,"sourceCode":"        chars[0] = Character.toUpperCase(chars[0]);\n        return new String(chars);\n    }\n\n    /**\n     *\n     * @param clazz\n     * @return the simple name for the given top-level or nested class\n     */\n    public static String simpleName(ClassInfo clazz) {\n        switch (clazz.nestingType()) {\n            case TOP_LEVEL:\n                return simpleName(clazz.name());\n            case INNER:\n                // Nested class\n                // com.foo.Foo$Bar -> Bar\n                return clazz.simpleName();\n            default:\n                throw new IllegalStateException(\"Unsupported nesting type: \" + clazz);\n        }\n    }\n\n    /**\n     * @param dotName\n     * @see #simpleName(String)\n     */\n    static String simpleName(DotName dotName) {\n        return simpleName(dotName.toString());\n    }\n\n    /**\n     * Note that \"$\" is a valid character for class names so we cannot detect a nested class here. Therefore, this method would\n     * return \"Foo$Bar\" for the\n     * parameter \"com.foo.Foo$Bar\". Use {@link #simpleName(ClassInfo)} when you need to distinguish the nested classes.\n     *\n     * @param name\n     * @return the simple name","sourceCodeStart":1071,"sourceCodeEnd":1107,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/independent-projects/qute/generator/src/main/java/io/quarkus/qute/generator/ValueResolverGenerator.java#L1071-L1107","documentation":"IllegalStateException from ValueResolverGenerator.simpleName: the given class has a Jandex nesting type other than TOP_LEVEL or INNER (e.g. LOCAL or ANONYMOUS). The generator cannot derive a simple name for such classes when generating resolver class names, so it fails naming the class.","triggerScenarios":"Thrown at independent-projects/qute/generator/src/main/java/io/quarkus/qute/generator/ValueResolverGenerator.java:1089 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Move the class to top-level or member (inner) nesting — local/anonymous classes are not supported as value resolver sources","Restructure the annotated bean so the resolver target is a named nested or top-level class"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"e1c734241f34c7919086ceb4c9262b4a58f6de44","analyzedAt":"2026-09-05T17:01:29.979Z","contentChangedAt":"2026-09-05T17:01:29.979Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}