ModuleNameMismatch 之谜

ModuleNameMismatch mystery

在命令行中使用 rascal,当我键入:

import demo::hello

我收到一个 ModuleNameMismatch 错误,尽管当前目录(我在其中键入 java -jar rascal-shell-stable.jar 的目录)包含一个名为 demo 的子目录,其中包含一个文件 hello.rsc

module hello
import IO;
void hello(){
    println("Hello word");
}

但是当我输入时它会起作用

import hello

并且 hello.rsc 在当前目录中。

供您参考:我在 Windows 10。

模块名称必须是完整 module.rsc 文件的相对路径。

在这种情况下,hello.rsc 文件应该是:

module demo::hello
import IO;
void hello(){
    println("Hello word");
}

这就是它在当前目录中 hello.rsc 时起作用的原因。