class X::TypeCheck::Splice is X::TypeCheck does X::Comp { }

Macroquasi 引用中的取消引用/孔洞未返回 AST 时抛出编译时错误。

例如

use experimental :macros;
macro quasi-ast { quasi { {{{'not AST'}}} };};
say quasi-ast;

使用

===SORRY!===
Type check failed in macro application; expected AST but got Str("not AST")

这是因为你故意创建了一些不评估为抽象语法树的东西。要修复,请改写

use experimental :macros;
macro an-ast {
    quasi { 'yes AST' }
}
say an-ast;              # OUTPUT: «yes AST␤» 

方法§

方法操作§

method action(--> Str:D)

返回触发错误的操作的文字描述,"macro application""unquote evaluation"