Skip to content

Commit

Permalink
Removing IntHolder JavaClass argument when using static syntax
Browse files Browse the repository at this point in the history
  • Loading branch information
JaroslavTulach committed Feb 22, 2024
1 parent f9b4d84 commit 488ca26
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -848,7 +848,21 @@ Object doExtensionMethod(
} else {
if (symbol.getScope().getMethodForPolyglot(self, symbol.getName(), true)
instanceof Function function) {
return invokeFunctionNode.execute(function, frame, state, arguments);
if (function.getSchema().getArgumentsCount() == arguments.length - 1
&& "self".equals(function.getSchema().getArgumentInfos()[0].getName())) {
var lessArgs = Arrays.copyOfRange(arguments, 1, arguments.length);
var lessSchema =
Arrays.copyOfRange(
invokeFunctionNode.getSchema(), 1, invokeFunctionNode.getSchema().length);
var node =
InvokeFunctionNode.build(
lessSchema,
invokeFunctionNode.getDefaultsExecutionMode(),
invokeFunctionNode.getArgumentsExecutionMode());
return node.execute(function, frame, state, lessArgs);
} else {
return invokeFunctionNode.execute(function, frame, state, arguments);
}
} else {
throw ctx.raiseAssertionPanic(this, "Error", null);
}
Expand Down
5 changes: 4 additions & 1 deletion test/Base_Tests/src/Data/Polyglot_Spec.enso
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,10 @@ add_specs suite_builder = suite_builder.group "Polyglot" group_builder->
foreign js js_meaning = """
return { meaning : 6 * 7 };

IntHolder.value_plus self add:Integer = self.value+add
IntHolder.value_plus self add =
v1=self.value
v1+add

IntHolder.create n:Integer = IntHolder.new n

main =
Expand Down

0 comments on commit 488ca26

Please sign in to comment.