[PR #837] [MERGED] Fix exception handling of PklRootNode's #763

Closed
opened 2025-12-30 01:26:36 +01:00 by adam · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/apple/pkl/pull/837
Author: @odenix
Created: 12/2/2024
Status: Merged
Merged: 12/19/2024
Merged by: @bioball

Base: mainHead: rootnode-exception


📝 Commits (1)

  • f6a3ee6 Fix exception handling of PklRootNode's

📊 Changes

16 files changed (+71 additions, -143 deletions)

View changed files

📝 pkl-core/src/main/java/org/pkl/core/ast/MemberNode.java (+0 -5)
📝 pkl-core/src/main/java/org/pkl/core/ast/PklRootNode.java (+10 -2)
📝 pkl-core/src/main/java/org/pkl/core/ast/SimpleRootNode.java (+2 -2)
📝 pkl-core/src/main/java/org/pkl/core/ast/member/FunctionNode.java (+14 -29)
📝 pkl-core/src/main/java/org/pkl/core/ast/member/ListingOrMappingTypeCastNode.java (+2 -9)
📝 pkl-core/src/main/java/org/pkl/core/ast/member/LocalTypedPropertyNode.java (+6 -20)
📝 pkl-core/src/main/java/org/pkl/core/ast/member/ModuleNode.java (+2 -2)
📝 pkl-core/src/main/java/org/pkl/core/ast/member/ObjectMethodNode.java (+1 -1)
📝 pkl-core/src/main/java/org/pkl/core/ast/member/PropertyTypeNode.java (+12 -26)
📝 pkl-core/src/main/java/org/pkl/core/ast/member/SharedMemberNode.java (+2 -2)
📝 pkl-core/src/main/java/org/pkl/core/ast/member/TypeCheckedPropertyNode.java (+3 -3)
📝 pkl-core/src/main/java/org/pkl/core/ast/member/TypedPropertyNode.java (+2 -2)
📝 pkl-core/src/main/java/org/pkl/core/ast/member/UntypedObjectMemberNode.java (+2 -2)
📝 pkl-core/src/main/java/org/pkl/core/ast/repl/ResolveClassMemberNode.java (+1 -1)
📝 pkl-core/src/main/java/org/pkl/core/ast/type/IdentityMixinNode.java (+5 -19)
📝 pkl-core/src/main/java/org/pkl/core/stdlib/benchmark/MicrobenchmarkNodes.java (+7 -18)

📄 Description

Motivation:

  • Perform same exception handling for every implementation of PklRootNode.execute().
  • Avoid code duplication.

Changes:

  • Change PklRootNode.execute() to be a final method that performs exception handling and calls abstract method executeImpl(), which is implemented by subclasses.
  • Remove executeBody() methods, which served a similar purpose but were more limited.
  • Remove duplicate exception handling code.

Result:

  • More reliable exception handling. This should fix known problems such as misclassifying stack overflows as internal errors and displaying errors without a stack trace.
  • Less code duplication.

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/apple/pkl/pull/837 **Author:** [@odenix](https://github.com/odenix) **Created:** 12/2/2024 **Status:** ✅ Merged **Merged:** 12/19/2024 **Merged by:** [@bioball](https://github.com/bioball) **Base:** `main` ← **Head:** `rootnode-exception` --- ### 📝 Commits (1) - [`f6a3ee6`](https://github.com/apple/pkl/commit/f6a3ee64496b51588e7aa0de16eb2b8859838248) Fix exception handling of PklRootNode's ### 📊 Changes **16 files changed** (+71 additions, -143 deletions) <details> <summary>View changed files</summary> 📝 `pkl-core/src/main/java/org/pkl/core/ast/MemberNode.java` (+0 -5) 📝 `pkl-core/src/main/java/org/pkl/core/ast/PklRootNode.java` (+10 -2) 📝 `pkl-core/src/main/java/org/pkl/core/ast/SimpleRootNode.java` (+2 -2) 📝 `pkl-core/src/main/java/org/pkl/core/ast/member/FunctionNode.java` (+14 -29) 📝 `pkl-core/src/main/java/org/pkl/core/ast/member/ListingOrMappingTypeCastNode.java` (+2 -9) 📝 `pkl-core/src/main/java/org/pkl/core/ast/member/LocalTypedPropertyNode.java` (+6 -20) 📝 `pkl-core/src/main/java/org/pkl/core/ast/member/ModuleNode.java` (+2 -2) 📝 `pkl-core/src/main/java/org/pkl/core/ast/member/ObjectMethodNode.java` (+1 -1) 📝 `pkl-core/src/main/java/org/pkl/core/ast/member/PropertyTypeNode.java` (+12 -26) 📝 `pkl-core/src/main/java/org/pkl/core/ast/member/SharedMemberNode.java` (+2 -2) 📝 `pkl-core/src/main/java/org/pkl/core/ast/member/TypeCheckedPropertyNode.java` (+3 -3) 📝 `pkl-core/src/main/java/org/pkl/core/ast/member/TypedPropertyNode.java` (+2 -2) 📝 `pkl-core/src/main/java/org/pkl/core/ast/member/UntypedObjectMemberNode.java` (+2 -2) 📝 `pkl-core/src/main/java/org/pkl/core/ast/repl/ResolveClassMemberNode.java` (+1 -1) 📝 `pkl-core/src/main/java/org/pkl/core/ast/type/IdentityMixinNode.java` (+5 -19) 📝 `pkl-core/src/main/java/org/pkl/core/stdlib/benchmark/MicrobenchmarkNodes.java` (+7 -18) </details> ### 📄 Description Motivation: - Perform same exception handling for every implementation of PklRootNode.execute(). - Avoid code duplication. Changes: - Change PklRootNode.execute() to be a final method that performs exception handling and calls abstract method executeImpl(), which is implemented by subclasses. - Remove executeBody() methods, which served a similar purpose but were more limited. - Remove duplicate exception handling code. Result: - More reliable exception handling. This should fix known problems such as misclassifying stack overflows as internal errors and displaying errors without a stack trace. - Less code duplication. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
adam added the pull-request label 2025-12-30 01:26:36 +01:00
adam closed this issue 2025-12-30 01:26:36 +01:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/pkl#763