From 0ea0a1e0a01ead8e4369a30c0d66658ae585e2e7 Mon Sep 17 00:00:00 2001 From: Jonah Jeleniewski Date: Thu, 6 Nov 2025 11:04:36 +1100 Subject: [PATCH] Fix stack overflow on alias types that reference their containing type --- CHANGELOG.md | 4 ++++ .../au/com/integradev/delphi/symbol/SymbolTableBuilder.java | 1 + 2 files changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1cbcc7143..cdd0ad4ff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Fixed + +- Stack overflow on alias types that reference their containing type. + ## [1.18.2] - 2025-10-01 ### Fixed diff --git a/delphi-frontend/src/main/java/au/com/integradev/delphi/symbol/SymbolTableBuilder.java b/delphi-frontend/src/main/java/au/com/integradev/delphi/symbol/SymbolTableBuilder.java index 119c830e2..0e8db0e90 100644 --- a/delphi-frontend/src/main/java/au/com/integradev/delphi/symbol/SymbolTableBuilder.java +++ b/delphi-frontend/src/main/java/au/com/integradev/delphi/symbol/SymbolTableBuilder.java @@ -389,6 +389,7 @@ private static boolean hasInlineRoutines(DelphiScope scope) { return scope.getTypeDeclarations().stream() .map(TypeNameDeclaration::getType) .filter(Predicate.not(Type::isClassReference)) + .filter(Predicate.not(Type::isAlias)) .filter(ScopedType.class::isInstance) .map(ScopedType.class::cast) .map(ScopedType::typeScope)