{"record":{"id":"4c92cf696fee3c33","repo":"apple/pkl","slug":"invalidproperty","errorCode":"invalidProperty","errorMessage":"Invalid property definition. Expected a type annotation, `=` or `{`.","messagePattern":"Invalid property definition\\. Expected a type annotation, `=` or `\\{`\\.","errorType":"error_code","errorClass":"ParserError","httpStatus":null,"severity":"error","filePath":"pkl-parser/src/main/java/org/pkl/parser/ParserImpl.java","lineNumber":483,"sourceCode":"        bodies.add(parseObjectBody());\n      }\n    }\n    children.add(name);\n    children.add(typeAnnotation);\n    children.add(expr);\n    children.addAll(bodies);\n    if (expr != null) {\n      return new ClassProperty(children, modifiersOffset, nameOffset, start.endWith(expr.span()));\n    }\n    if (!bodies.isEmpty()) {\n      return new ClassProperty(\n          children,\n          modifiersOffset,\n          nameOffset,\n          start.endWith(bodies.get(bodies.size() - 1).span()));\n    }\n    if (typeAnnotation == null) {\n      throw new ParserError(ErrorMessages.create(\"invalidProperty\"), name.span());\n    }\n    return new ClassProperty(\n        children, modifiersOffset, nameOffset, start.endWith(typeAnnotation.span()));\n  }\n\n  private ClassMethod parseClassMethod(MemberHeader header) {\n    var func = expect(Token.FUNCTION, \"unexpectedToken\", \"function\").span;\n    var start = header.span(func);\n    var headerSpanStart = header.modifierSpan(func);\n    var children = new ArrayList<@Nullable Node>();\n    children.add(header.docComment);\n    children.addAll(header.annotations);\n    var modifiersOffset = header.annotations.size() + 1;\n    children.addAll(header.modifiers);\n    var nameOffset = modifiersOffset + header.modifiers.size();\n    var name = parseIdentifier();\n    children.add(name);\n    TypeParameterList typePars = null;","sourceCodeStart":465,"sourceCodeEnd":501,"githubUrl":"https://github.com/apple/pkl/blob/f3efcbfc9b60d30053b0536d664948d7aa1b8673/pkl-parser/src/main/java/org/pkl/parser/ParserImpl.java#L465-L501","documentation":"Parser error in ParserImpl.parseClassProperty: after the property name in a class body, the parser requires either a type annotation, `=` (expression) or `{` (member bodies); none was found. The input at fault is a malformed class property declaration, e.g. `class Foo { bar }` with no value or annotation.","triggerScenarios":"Thrown at pkl-parser/src/main/java/org/pkl/parser/ParserImpl.java:483 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Add a type annotation (`bar: Int`) or a value (`bar = 1`).","If a member body was intended, open it with `{ ... }`."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"f3efcbfc9b60d30053b0536d664948d7aa1b8673","analyzedAt":"2026-09-08T13:10:45.570Z","contentChangedAt":"2026-09-08T13:10:45.570Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}