From a5f753c36a9dfe4feb8a7659c14e59c056560f91 Mon Sep 17 00:00:00 2001 From: Fawaz Farid Date: Tue, 24 Mar 2026 17:55:02 +0300 Subject: [PATCH] Return error for unsupported languages in Parse() Signed-off-by: Fawaz Farid --- kai-core/parse/parse.go | 4 +--- kai-core/parse/parse_test.go | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/kai-core/parse/parse.go b/kai-core/parse/parse.go index 36b9e0d6..42f9c37c 100644 --- a/kai-core/parse/parse.go +++ b/kai-core/parse/parse.go @@ -92,9 +92,7 @@ func (p *Parser) Parse(content []byte, lang string) (*ParsedFile, error) { parser = p.rsParser extractFn = extractRustSymbols default: - // Default to JavaScript parser for unknown languages - parser = p.jsParser - extractFn = extractSymbols + return nil, fmt.Errorf("unsupported language: %s", lang) } tree, err := parser.ParseCtx(context.Background(), nil, content) diff --git a/kai-core/parse/parse_test.go b/kai-core/parse/parse_test.go index d7e79e12..a0692e72 100644 --- a/kai-core/parse/parse_test.go +++ b/kai-core/parse/parse_test.go @@ -51,6 +51,27 @@ function hello(name) { } } +func TestParser_ParseUnsupportedLanguage(t *testing.T) { + parser := NewParser() + + code := []byte(` +public class Main { + public static void main(String[] args) { + System.out.println("Hello, World!"); + } +} +`) + + _, err := parser.Parse(code, "java") + if err == nil { + t.Fatal("Expected error for unsupported language 'java', got nil") + } + + if err.Error() != "unsupported language: java" { + t.Errorf("Expected error message to contain 'unsupported', got: %v", err) + } +} + func TestParser_ParseClass(t *testing.T) { parser := NewParser()