ユニット間参照

from および import を使用することで,他ユニットの定義を参照することが出来ます.

構文

from <UNITNAME> import <NAME>;
from <UNITNAME> import <NAME>, ...;

UNITNAME

UNITNAME は . で区切られた文字列です.
ただし,同じ UNITNAME をもつ ユニット(Unit) が定義されていない場合,エラーになります.

NAME

NAME は . を含まない文字列です.
ただし,from で指定した ユニット(Unit) 内に NAME が定義されていない場合,エラーになります.

ユニット間参照できるのは データ(Data) または モジュール(Module) です.

サンプル

unit test.A;

data DataA {
    x: i32,
    y: i32
}

module ModuleA {
    func new() -> DataA {
        @return a
        @spawn a: DataA
    }
}
unit test.B;

from test.A import DataA, ModuleA;

module ModuleB {
    func new_data_a() -> DataA {
        @return data_a

        @spawn data_a: DataA {
            let a = ModuleA.new();
            return a;
        }
    }
}