gpt4 book ai didi

raku - 在 NativeCall perl6 模块中声明指针 [void] 的奇怪消息

转载 作者:行者123 更新时间:2023-12-04 12:50:52 24 4
gpt4 key购买 nike

这些代码片段可能看起来很奇怪,这是因为我从我的原始代码开始并切断了部分,直到我到达重现错误的最小指令集。所以忍受表面上的无用。
perl6模块有两个,一个use s另一个,和一个程序。
这是第一个模块:

unit class test1;

use NativeCall;
use test2;

method test
{
my Pointer[void] $dummy .= new;
}

第二个模块包含在第一个模块中,但实际上没有使用它的任何部分:
unit module test2;

use NativeCall;

class A is repr('CStruct') is export {
has Pointer[void] $.wrongdoer;
has int32 $.a;
}

程序创建一个 test1 对象并调用测试方法:
use lib '.';
use test1;

my test1 $t .= new;
$t.test;

该程序输出一个错误,显然是由类 test1 的方法 test 中的赋值引起的:
Type check failed in assignment to $dummy; expected NativeCall::Types::Pointer[NativeCall::Types::void] but got NativeCall::Types::Pointer[NativeCall::Types::void].new(0)

如果我注释掉 $.wrongdoer在第二类中,程序执行没有错误。
我正在运行 rakudo 2018.06。
这是 NativeCall 模块中的错误还是我看不到的其他错误?

最佳答案

根据 Brad Gilbert 的建议,删除 [void]在远处停止幽灵般的 Action 。

关于raku - 在 NativeCall perl6 模块中声明指针 [void] 的奇怪消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51122481/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com