From 3b1896a696497c194db99671eafbcfef5df2ebb4 Mon Sep 17 00:00:00 2001 From: bigguy345 Date: Wed, 11 Mar 2026 04:54:27 +0200 Subject: [PATCH] Fixed SAM type inference for lambda arguments in constructor not applied properly --- .../client/gui/util/script/interpreter/ScriptDocument.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/noppes/npcs/client/gui/util/script/interpreter/ScriptDocument.java b/src/main/java/noppes/npcs/client/gui/util/script/interpreter/ScriptDocument.java index 6f95538c6..f3214441a 100644 --- a/src/main/java/noppes/npcs/client/gui/util/script/interpreter/ScriptDocument.java +++ b/src/main/java/noppes/npcs/client/gui/util/script/interpreter/ScriptDocument.java @@ -9175,6 +9175,12 @@ for (ScriptTypeInfo type:scriptTypes.values()) { constructor = info.findConstructor(argCount); } } + + // Second pass: re-parse arguments with expected parameter types from resolved constructor + // This enables SAM type inference for lambda arguments (e.g., Consumer parameters) + if (constructor != null && constructor.getParameters().size() == arguments.size()) { + arguments = parseMethodArguments(openParen + 1, closeParen, constructor, info); + } // Create MethodCallInfo for constructor // Use the actual variable name (className) for variables, not the class's simple name