Skip to main content

JavaMethodLink

rascal-0.41.2

Synopsis

Cannot link to a Java method.

Description

Rascal functions can be implemented in Java. This is the case for many functions in the standard library. This requires these elements:

  • An abstract Rascal function declaration (= a function header without a body).
  • The keyword java should be part of the function header.
  • The function declaration is annotated (uing javaClass) with the name of the Java class that implements this function.

This error is generated when the Java implementation cannot be found. Most likely, this is a missing or misspelled Java class name. It is also generated when the function declaration does have a body.

Remedy: Contact the Rascal developers:

If you are an expert developer and have implemented your own extension in Java, please check your own extension code first.

Examples

This is how the size function on lists is declared in the Rascal library:

rascal>@javaClass{org.rascalmpl.library.Prelude}
|1 >>>>public java int size(list[&T] lst);
int (list[&T]): function(|prompt:///|(0,77,<1,0>,<2,35>))

Misspelling the class name will generate the JavaMethodLink error:

rascal>@javaClass{org.rascalmpl.library.Preludexxx}
|1 >>>>public java int size(list[&T] lst);
org.rascalmpl.exceptions.JavaMethodLink: Cannot link method org.rascalmpl.library.Preludexxx because: class not found
(internal error)
at $(|main:///_dollar_|)

org.rascalmpl.exceptions.JavaMethodLink: Cannot link method org.rascalmpl.library.Preludexxx because: class not found
at org.rascalmpl.interpreter.utils.JavaBridge.getJavaClassInstance(JavaBridge.java:498)
at org.rascalmpl.interpreter.result.JavaMethod.<init>(JavaMethod.java:84)
at org.rascalmpl.interpreter.result.JavaMethod.<init>(JavaMethod.java:56)
at org.rascalmpl.semantics.dynamic.FunctionDeclaration$Abstract.interpret(FunctionDeclaration.java:61)
at org.rascalmpl.semantics.dynamic.Declaration$Function.interpret(Declaration.java:117)
at org.rascalmpl.semantics.dynamic.Command$Declaration.interpret(Command.java:38)
at org.rascalmpl.interpreter.Evaluator.eval(Evaluator.java:1066)
at org.rascalmpl.interpreter.Evaluator.eval(Evaluator.java:915)
at org.rascalmpl.interpreter.Evaluator.eval(Evaluator.java:866)
at org.rascalmpl.repl.rascal.RascalInterpreterREPL.handleInput(RascalInterpreterREPL.java:236)
at org.rascalmpl.tutor.lang.rascal.tutor.repl.TutorCommandExecutor.eval(TutorCommandExecutor.java:192)
at org.rascalmpl.tutor.lang.rascal.tutor.repl.TutorCommandExecutorCreator.lambda$eval$2(TutorCommandExecutorCreator.java:85)
at org.rascalmpl.values.RascalFunctionValueFactory$RascalFunctionValue.call(RascalFunctionValueFactory.java:194)
at org.rascalmpl.interpreter.result.FunctionResultFacade.call(FunctionResultFacade.java:54)
at org.rascalmpl.semantics.dynamic.Expression$CallOrTree.interpret(Expression.java:542)
at org.rascalmpl.semantics.dynamic.Statement$Expression.interpret(Statement.java:390)
at org.rascalmpl.semantics.dynamic.Statement$Assignment.interpret(Statement.java:223)
at org.rascalmpl.semantics.dynamic.Statement$NonEmptyBlock.interpret(Statement.java:820)
at org.rascalmpl.semantics.dynamic.Statement$For.interpret(Statement.java:500)
at org.rascalmpl.semantics.dynamic.Statement$Assignment.interpret(Statement.java:223)
at org.rascalmpl.interpreter.result.RascalFunction.runBody(RascalFunction.java:387)
at org.rascalmpl.interpreter.result.RascalFunction.call(RascalFunction.java:328)
at org.rascalmpl.semantics.dynamic.Expression$CallOrTree.interpret(Expression.java:542)
at org.rascalmpl.semantics.dynamic.Expression$List.interpret(Expression.java:1535)
at org.rascalmpl.semantics.dynamic.Statement$Expression.interpret(Statement.java:390)
at org.rascalmpl.semantics.dynamic.Statement$Return.interpret(Statement.java:851)
at org.rascalmpl.interpreter.result.RascalFunction.runBody(RascalFunction.java:387)
at org.rascalmpl.interpreter.result.RascalFunction.call(RascalFunction.java:328)
at org.rascalmpl.interpreter.result.OverloadedFunction.callWith(OverloadedFunction.java:409)
at org.rascalmpl.interpreter.result.OverloadedFunction.call(OverloadedFunction.java:369)
at org.rascalmpl.semantics.dynamic.Expression$CallOrTree.interpret(Expression.java:542)
at org.rascalmpl.semantics.dynamic.Expression$List.interpret(Expression.java:1535)
at org.rascalmpl.semantics.dynamic.Statement$Expression.interpret(Statement.java:390)
at org.rascalmpl.semantics.dynamic.Statement$Return.interpret(Statement.java:851)
at org.rascalmpl.interpreter.result.RascalFunction.runBody(RascalFunction.java:387)
at org.rascalmpl.interpreter.result.RascalFunction.call(RascalFunction.java:328)
at org.rascalmpl.interpreter.result.OverloadedFunction.callWith(OverloadedFunction.java:409)
at org.rascalmpl.interpreter.result.OverloadedFunction.call(OverloadedFunction.java:372)
at org.rascalmpl.semantics.dynamic.Expression$CallOrTree.interpret(Expression.java:542)
at org.rascalmpl.semantics.dynamic.Expression$List.interpret(Expression.java:1535)
at org.rascalmpl.semantics.dynamic.Statement$Expression.interpret(Statement.java:390)
at org.rascalmpl.semantics.dynamic.Statement$Return.interpret(Statement.java:851)
at org.rascalmpl.interpreter.result.RascalFunction.runBody(RascalFunction.java:387)
at org.rascalmpl.interpreter.result.RascalFunction.call(RascalFunction.java:328)
at org.rascalmpl.interpreter.result.OverloadedFunction.callWith(OverloadedFunction.java:409)
at org.rascalmpl.interpreter.result.OverloadedFunction.call(OverloadedFunction.java:372)
at org.rascalmpl.semantics.dynamic.Expression$CallOrTree.interpret(Expression.java:542)
at org.rascalmpl.semantics.dynamic.Expression$List.interpret(Expression.java:1535)
at org.rascalmpl.semantics.dynamic.Statement$Expression.interpret(Statement.java:390)
at org.rascalmpl.semantics.dynamic.Statement$Return.interpret(Statement.java:851)
at org.rascalmpl.interpreter.result.RascalFunction.runBody(RascalFunction.java:387)
at org.rascalmpl.interpreter.result.RascalFunction.call(RascalFunction.java:328)
at org.rascalmpl.interpreter.result.OverloadedFunction.callWith(OverloadedFunction.java:409)
at org.rascalmpl.interpreter.result.OverloadedFunction.call(OverloadedFunction.java:369)
at org.rascalmpl.semantics.dynamic.Expression$CallOrTree.interpret(Expression.java:542)
at org.rascalmpl.semantics.dynamic.Expression$List.interpret(Expression.java:1535)
at org.rascalmpl.semantics.dynamic.Statement$Expression.interpret(Statement.java:390)
at org.rascalmpl.semantics.dynamic.Statement$Return.interpret(Statement.java:851)
at org.rascalmpl.interpreter.result.RascalFunction.runBody(RascalFunction.java:387)
at org.rascalmpl.interpreter.result.RascalFunction.call(RascalFunction.java:328)
at org.rascalmpl.interpreter.result.OverloadedFunction.callWith(OverloadedFunction.java:409)
at org.rascalmpl.interpreter.result.OverloadedFunction.call(OverloadedFunction.java:372)
at org.rascalmpl.semantics.dynamic.Expression$CallOrTree.interpret(Expression.java:542)
at org.rascalmpl.semantics.dynamic.Expression$List.interpret(Expression.java:1535)
at org.rascalmpl.semantics.dynamic.Statement$Expression.interpret(Statement.java:390)
at org.rascalmpl.semantics.dynamic.Statement$Return.interpret(Statement.java:851)
at org.rascalmpl.interpreter.result.RascalFunction.runBody(RascalFunction.java:387)
at org.rascalmpl.interpreter.result.RascalFunction.call(RascalFunction.java:328)
at org.rascalmpl.interpreter.result.OverloadedFunction.callWith(OverloadedFunction.java:409)
at org.rascalmpl.interpreter.result.OverloadedFunction.call(OverloadedFunction.java:372)
at org.rascalmpl.semantics.dynamic.Expression$CallOrTree.interpret(Expression.java:542)
at org.rascalmpl.semantics.dynamic.Expression$List.interpret(Expression.java:1535)
at org.rascalmpl.semantics.dynamic.Statement$Expression.interpret(Statement.java:390)
at org.rascalmpl.semantics.dynamic.Statement$Return.interpret(Statement.java:851)
at org.rascalmpl.interpreter.result.RascalFunction.runBody(RascalFunction.java:387)
at org.rascalmpl.interpreter.result.RascalFunction.call(RascalFunction.java:328)
at org.rascalmpl.interpreter.result.OverloadedFunction.callWith(OverloadedFunction.java:409)
at org.rascalmpl.interpreter.result.OverloadedFunction.call(OverloadedFunction.java:372)
at org.rascalmpl.semantics.dynamic.Expression$CallOrTree.interpret(Expression.java:542)
at org.rascalmpl.semantics.dynamic.Expression$List.interpret(Expression.java:1535)
at org.rascalmpl.semantics.dynamic.Statement$Expression.interpret(Statement.java:390)
at org.rascalmpl.semantics.dynamic.Statement$Return.interpret(Statement.java:851)
at org.rascalmpl.semantics.dynamic.Statement$IfThenElse.interpret(Statement.java:725)
at org.rascalmpl.interpreter.result.RascalFunction.runBody(RascalFunction.java:387)
at org.rascalmpl.interpreter.result.RascalFunction.call(RascalFunction.java:328)
at org.rascalmpl.interpreter.result.OverloadedFunction.callWith(OverloadedFunction.java:409)
at org.rascalmpl.interpreter.result.OverloadedFunction.call(OverloadedFunction.java:369)
at org.rascalmpl.semantics.dynamic.Expression$CallOrTree.interpret(Expression.java:542)
at org.rascalmpl.semantics.dynamic.Expression$List.interpret(Expression.java:1535)
at org.rascalmpl.semantics.dynamic.Statement$Expression.interpret(Statement.java:390)
at org.rascalmpl.semantics.dynamic.Statement$Return.interpret(Statement.java:851)
at org.rascalmpl.semantics.dynamic.Statement$IfThenElse.interpret(Statement.java:725)
at org.rascalmpl.interpreter.result.RascalFunction.runBody(RascalFunction.java:387)
at org.rascalmpl.interpreter.result.RascalFunction.call(RascalFunction.java:328)
at org.rascalmpl.interpreter.result.OverloadedFunction.callWith(OverloadedFunction.java:409)
at org.rascalmpl.interpreter.result.OverloadedFunction.call(OverloadedFunction.java:369)
at org.rascalmpl.semantics.dynamic.Expression$CallOrTree.interpret(Expression.java:542)
at org.rascalmpl.semantics.dynamic.Statement$Expression.interpret(Statement.java:390)
at org.rascalmpl.semantics.dynamic.Statement$Return.interpret(Statement.java:851)
at org.rascalmpl.semantics.dynamic.Statement$IfThenElse.interpret(Statement.java:725)
at org.rascalmpl.interpreter.result.RascalFunction.runBody(RascalFunction.java:387)
at org.rascalmpl.interpreter.result.RascalFunction.call(RascalFunction.java:328)
at org.rascalmpl.interpreter.result.OverloadedFunction.callWith(OverloadedFunction.java:409)
at org.rascalmpl.interpreter.result.OverloadedFunction.call(OverloadedFunction.java:369)
at org.rascalmpl.semantics.dynamic.Expression$CallOrTree.interpret(Expression.java:542)
at org.rascalmpl.semantics.dynamic.Statement$Expression.interpret(Statement.java:390)
at org.rascalmpl.semantics.dynamic.Statement$Return.interpret(Statement.java:851)
at org.rascalmpl.semantics.dynamic.Statement$IfThenElse.interpret(Statement.java:725)
at org.rascalmpl.interpreter.result.RascalFunction.runBody(RascalFunction.java:387)
at org.rascalmpl.interpreter.result.RascalFunction.call(RascalFunction.java:328)
at org.rascalmpl.interpreter.result.OverloadedFunction.callWith(OverloadedFunction.java:409)
at org.rascalmpl.interpreter.result.OverloadedFunction.call(OverloadedFunction.java:369)
at org.rascalmpl.semantics.dynamic.Expression$CallOrTree.interpret(Expression.java:542)
at org.rascalmpl.semantics.dynamic.Statement$Expression.interpret(Statement.java:390)
at org.rascalmpl.semantics.dynamic.Statement$Return.interpret(Statement.java:851)
at org.rascalmpl.semantics.dynamic.Statement$IfThenElse.interpret(Statement.java:725)
at org.rascalmpl.interpreter.result.RascalFunction.runBody(RascalFunction.java:387)
at org.rascalmpl.interpreter.result.RascalFunction.call(RascalFunction.java:328)
at org.rascalmpl.interpreter.result.OverloadedFunction.callWith(OverloadedFunction.java:409)
at org.rascalmpl.interpreter.result.OverloadedFunction.call(OverloadedFunction.java:369)
at org.rascalmpl.semantics.dynamic.Expression$CallOrTree.interpret(Expression.java:542)
at org.rascalmpl.semantics.dynamic.Statement$Expression.interpret(Statement.java:390)
at org.rascalmpl.semantics.dynamic.Statement$Return.interpret(Statement.java:851)
at org.rascalmpl.semantics.dynamic.Statement$IfThenElse.interpret(Statement.java:725)
at org.rascalmpl.interpreter.result.RascalFunction.runBody(RascalFunction.java:387)
at org.rascalmpl.interpreter.result.RascalFunction.call(RascalFunction.java:328)
at org.rascalmpl.interpreter.result.OverloadedFunction.callWith(OverloadedFunction.java:409)
at org.rascalmpl.interpreter.result.OverloadedFunction.call(OverloadedFunction.java:369)
at org.rascalmpl.semantics.dynamic.Expression$CallOrTree.interpret(Expression.java:542)
at org.rascalmpl.semantics.dynamic.Expression$List.interpret(Expression.java:1535)
at org.rascalmpl.semantics.dynamic.Statement$Expression.interpret(Statement.java:390)
at org.rascalmpl.semantics.dynamic.Statement$Return.interpret(Statement.java:851)
at org.rascalmpl.semantics.dynamic.Statement$IfThenElse.interpret(Statement.java:725)
at org.rascalmpl.interpreter.result.RascalFunction.runBody(RascalFunction.java:387)
at org.rascalmpl.interpreter.result.RascalFunction.call(RascalFunction.java:328)
at org.rascalmpl.interpreter.result.OverloadedFunction.callWith(OverloadedFunction.java:409)
at org.rascalmpl.interpreter.result.OverloadedFunction.call(OverloadedFunction.java:369)
at org.rascalmpl.semantics.dynamic.Expression$CallOrTree.interpret(Expression.java:542)
at org.rascalmpl.semantics.dynamic.Expression$List.interpret(Expression.java:1535)
at org.rascalmpl.semantics.dynamic.Statement$Expression.interpret(Statement.java:390)
at org.rascalmpl.semantics.dynamic.Statement$Return.interpret(Statement.java:851)
at org.rascalmpl.interpreter.result.RascalFunction.runBody(RascalFunction.java:387)
at org.rascalmpl.interpreter.result.RascalFunction.call(RascalFunction.java:328)
at org.rascalmpl.interpreter.result.OverloadedFunction.callWith(OverloadedFunction.java:409)
at org.rascalmpl.interpreter.result.OverloadedFunction.call(OverloadedFunction.java:372)
at org.rascalmpl.semantics.dynamic.Expression$CallOrTree.interpret(Expression.java:542)
at org.rascalmpl.semantics.dynamic.Expression$List.interpret(Expression.java:1535)
at org.rascalmpl.semantics.dynamic.Statement$Expression.interpret(Statement.java:390)
at org.rascalmpl.semantics.dynamic.Statement$Return.interpret(Statement.java:851)
at org.rascalmpl.semantics.dynamic.Statement$NonEmptyBlock.interpret(Statement.java:820)
at org.rascalmpl.semantics.dynamic.Statement$Try.evalStatementTry(Statement.java:1037)
at org.rascalmpl.semantics.dynamic.Statement$Try.interpret(Statement.java:1030)
at org.rascalmpl.interpreter.result.RascalFunction.runBody(RascalFunction.java:387)
at org.rascalmpl.interpreter.result.RascalFunction.call(RascalFunction.java:328)
at org.rascalmpl.interpreter.result.OverloadedFunction.callWith(OverloadedFunction.java:409)
at org.rascalmpl.interpreter.result.OverloadedFunction.call(OverloadedFunction.java:369)
at org.rascalmpl.semantics.dynamic.Expression$CallOrTree.interpret(Expression.java:542)
at org.rascalmpl.semantics.dynamic.Expression$Addition.interpret(Expression.java:144)
at org.rascalmpl.semantics.dynamic.Statement$Expression.interpret(Statement.java:390)
at org.rascalmpl.semantics.dynamic.Statement$Return.interpret(Statement.java:851)
at org.rascalmpl.interpreter.result.RascalFunction.runBody(RascalFunction.java:387)
at org.rascalmpl.interpreter.result.RascalFunction.call(RascalFunction.java:328)
at org.rascalmpl.interpreter.result.OverloadedFunction.callWith(OverloadedFunction.java:409)
at org.rascalmpl.interpreter.result.OverloadedFunction.call(OverloadedFunction.java:369)
at org.rascalmpl.semantics.dynamic.Expression$CallOrTree.interpret(Expression.java:542)
at org.rascalmpl.semantics.dynamic.Statement$Expression.interpret(Statement.java:390)
at org.rascalmpl.semantics.dynamic.Statement$Assignment.interpret(Statement.java:223)
at org.rascalmpl.semantics.dynamic.Statement$NonEmptyBlock.interpret(Statement.java:820)
at org.rascalmpl.semantics.dynamic.Statement$IfThenElse.interpret(Statement.java:725)
at org.rascalmpl.semantics.dynamic.Statement$NonEmptyBlock.interpret(Statement.java:820)
at org.rascalmpl.semantics.dynamic.Statement$IfThenElse.interpret(Statement.java:725)
at org.rascalmpl.interpreter.result.RascalFunction.runBody(RascalFunction.java:387)
at org.rascalmpl.interpreter.result.RascalFunction.call(RascalFunction.java:328)
at org.rascalmpl.semantics.dynamic.Expression$CallOrTree.interpret(Expression.java:542)
at org.rascalmpl.semantics.dynamic.Statement$Expression.interpret(Statement.java:390)
at org.rascalmpl.semantics.dynamic.Statement$Return.interpret(Statement.java:851)
at org.rascalmpl.semantics.dynamic.Statement$NonEmptyBlock.interpret(Statement.java:820)
at org.rascalmpl.semantics.dynamic.Statement$IfThenElse.interpret(Statement.java:725)
at org.rascalmpl.interpreter.result.RascalFunction.runBody(RascalFunction.java:387)
at org.rascalmpl.interpreter.result.RascalFunction.call(RascalFunction.java:328)
at org.rascalmpl.interpreter.result.OverloadedFunction.callWith(OverloadedFunction.java:409)
at org.rascalmpl.interpreter.result.OverloadedFunction.call(OverloadedFunction.java:369)
at org.rascalmpl.semantics.dynamic.Expression$CallOrTree.interpret(Expression.java:542)
at org.rascalmpl.semantics.dynamic.ListComprehensionWriter.append(ListComprehensionWriter.java:26)
at org.rascalmpl.semantics.dynamic.Comprehension.evalComprehension(Comprehension.java:95)
at org.rascalmpl.semantics.dynamic.Comprehension$List.interpret(Comprehension.java:39)
at org.rascalmpl.semantics.dynamic.Expression$Comprehension.interpret(Expression.java:685)
at org.rascalmpl.semantics.dynamic.Expression$List.interpret(Expression.java:1535)
at org.rascalmpl.semantics.dynamic.Statement$Expression.interpret(Statement.java:390)
at org.rascalmpl.semantics.dynamic.Statement$Return.interpret(Statement.java:851)
at org.rascalmpl.interpreter.result.RascalFunction.runBody(RascalFunction.java:387)
at org.rascalmpl.interpreter.result.RascalFunction.call(RascalFunction.java:328)
at org.rascalmpl.semantics.dynamic.Expression$CallOrTree.interpret(Expression.java:542)
at org.rascalmpl.semantics.dynamic.Statement$Expression.interpret(Statement.java:390)
at org.rascalmpl.semantics.dynamic.Statement$Return.interpret(Statement.java:851)
at org.rascalmpl.semantics.dynamic.Statement$NonEmptyBlock.interpret(Statement.java:820)
at org.rascalmpl.semantics.dynamic.Statement$IfThenElse.interpret(Statement.java:725)
at org.rascalmpl.interpreter.result.RascalFunction.runBody(RascalFunction.java:387)
at org.rascalmpl.interpreter.result.RascalFunction.call(RascalFunction.java:328)
at org.rascalmpl.interpreter.result.OverloadedFunction.callWith(OverloadedFunction.java:409)
at org.rascalmpl.interpreter.result.OverloadedFunction.call(OverloadedFunction.java:369)
at org.rascalmpl.semantics.dynamic.Expression$CallOrTree.interpret(Expression.java:542)
at org.rascalmpl.semantics.dynamic.ListComprehensionWriter.append(ListComprehensionWriter.java:26)
at org.rascalmpl.semantics.dynamic.Comprehension.evalComprehension(Comprehension.java:95)
at org.rascalmpl.semantics.dynamic.Comprehension$List.interpret(Comprehension.java:39)
at org.rascalmpl.semantics.dynamic.Expression$Comprehension.interpret(Expression.java:685)
at org.rascalmpl.semantics.dynamic.Expression$List.interpret(Expression.java:1535)
at org.rascalmpl.semantics.dynamic.Statement$Expression.interpret(Statement.java:390)
at org.rascalmpl.semantics.dynamic.Statement$Return.interpret(Statement.java:851)
at org.rascalmpl.interpreter.result.RascalFunction.runBody(RascalFunction.java:387)
at org.rascalmpl.interpreter.result.RascalFunction.call(RascalFunction.java:328)
at org.rascalmpl.semantics.dynamic.Expression$CallOrTree.interpret(Expression.java:542)
at org.rascalmpl.semantics.dynamic.Statement$Expression.interpret(Statement.java:390)
at org.rascalmpl.semantics.dynamic.Statement$Return.interpret(Statement.java:851)
at org.rascalmpl.semantics.dynamic.Statement$NonEmptyBlock.interpret(Statement.java:820)
at org.rascalmpl.semantics.dynamic.Statement$IfThenElse.interpret(Statement.java:725)
at org.rascalmpl.interpreter.result.RascalFunction.runBody(RascalFunction.java:387)
at org.rascalmpl.interpreter.result.RascalFunction.call(RascalFunction.java:328)
at org.rascalmpl.interpreter.result.OverloadedFunction.callWith(OverloadedFunction.java:409)
at org.rascalmpl.interpreter.result.OverloadedFunction.call(OverloadedFunction.java:369)
at org.rascalmpl.semantics.dynamic.Expression$CallOrTree.interpret(Expression.java:542)
at org.rascalmpl.semantics.dynamic.ListComprehensionWriter.append(ListComprehensionWriter.java:26)
at org.rascalmpl.semantics.dynamic.Comprehension.evalComprehension(Comprehension.java:95)
at org.rascalmpl.semantics.dynamic.Comprehension$List.interpret(Comprehension.java:39)
at org.rascalmpl.semantics.dynamic.Expression$Comprehension.interpret(Expression.java:685)
at org.rascalmpl.semantics.dynamic.Expression$List.interpret(Expression.java:1535)
at org.rascalmpl.semantics.dynamic.Statement$Expression.interpret(Statement.java:390)
at org.rascalmpl.semantics.dynamic.Statement$Return.interpret(Statement.java:851)
at org.rascalmpl.interpreter.result.RascalFunction.runBody(RascalFunction.java:387)
at org.rascalmpl.interpreter.result.RascalFunction.call(RascalFunction.java:328)
at org.rascalmpl.semantics.dynamic.Expression$CallOrTree.interpret(Expression.java:542)
at org.rascalmpl.semantics.dynamic.Statement$Expression.interpret(Statement.java:390)
at org.rascalmpl.semantics.dynamic.Statement$Return.interpret(Statement.java:851)
at org.rascalmpl.interpreter.result.RascalFunction.runBody(RascalFunction.java:387)
at org.rascalmpl.interpreter.result.RascalFunction.call(RascalFunction.java:328)
at org.rascalmpl.semantics.dynamic.Expression$CallOrTree.interpret(Expression.java:542)
at org.rascalmpl.semantics.dynamic.ListComprehensionWriter.append(ListComprehensionWriter.java:26)
at org.rascalmpl.semantics.dynamic.Comprehension.evalComprehension(Comprehension.java:95)
at org.rascalmpl.semantics.dynamic.Comprehension$List.interpret(Comprehension.java:39)
at org.rascalmpl.semantics.dynamic.Expression$Comprehension.interpret(Expression.java:685)
at org.rascalmpl.semantics.dynamic.Statement$Expression.interpret(Statement.java:390)
at org.rascalmpl.semantics.dynamic.Statement$Assignment.interpret(Statement.java:223)
at org.rascalmpl.interpreter.result.RascalFunction.runBody(RascalFunction.java:387)
at org.rascalmpl.interpreter.result.RascalFunction.call(RascalFunction.java:328)
at org.rascalmpl.interpreter.result.OverloadedFunction.callWith(OverloadedFunction.java:409)
at org.rascalmpl.interpreter.result.OverloadedFunction.call(OverloadedFunction.java:369)
at org.rascalmpl.semantics.dynamic.Expression$CallOrTree.interpret(Expression.java:542)
at org.rascalmpl.semantics.dynamic.Statement$Expression.interpret(Statement.java:390)
at org.rascalmpl.semantics.dynamic.Statement$Assignment.interpret(Statement.java:223)
at org.rascalmpl.interpreter.result.RascalFunction.runBody(RascalFunction.java:387)
at org.rascalmpl.interpreter.result.RascalFunction.call(RascalFunction.java:296)
at org.rascalmpl.interpreter.result.AbstractFunction.call(AbstractFunction.java:198)
at org.rascalmpl.interpreter.Evaluator.main(Evaluator.java:604)
at org.rascalmpl.shell.AbstractCommandlineTool.main(AbstractCommandlineTool.java:50)
at org.rascalmpl.shell.RascalTutorCompile.main(RascalTutorCompile.java:19)

The same error message is generated if the function declaration contains a body:

rascal>@javaClass{org.rascalmpl.library.Preludexxx}
|1 >>>>public java int size(list[&T] lst){
|2 >>>> return 0;
|3 >>>>}
|prompt:///|(0,94,<1,0>,<4,1>): Java function has a body
Advice: |https://www.rascal-mpl.org/docs/Rascal/Errors/CompileTimeErrors/NonAbstractJavaFunction|