热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

:error:useofundeclaredidentifier'RCReturnFunctor_BSQIdKeyCompound

DescribethebugIamtryingtocompilethefollowingcode:

Describe the bug

I am trying to compile the following code:

1
2
3
4
5
6
7
8
9
js

namespace NSMain;



identifier UserId = Int;



entrypoint function main(): UserId {

  let id = UserId@{1};

  return id;

}

However, it fails with this error:

1
2
3
4
5
6
shell

Error -- Error: Command failed: clang++ -g -DBDEBUG -std=c++17 -o ckey /Users/brakmic/projects/BosqueLanguage/impl/bin/scratch/cpp/*.cpp

/Users/brakmic/projects/BosqueLanguage/impl/bin/scratch/cpp/main.cpp:41:5: error: use of undeclared identifier 'RCReturnFunctor_BSQIdKeyCompound'

    RCReturnFunctor_BSQIdKeyCompound{}($$return, $callerscope$);

    ^

1 error generated.

I have then tried to fix this error by adding an implementation of RCReturnFunctor_BSQIdKeyCompound to bsqkeyvalues.h:

1
2
3
4
5
6
7
8
9
10
11
cpp

struct RCReturnFunctor_BSQIdKeyCompound

{

    inline void operator()(BSQIdKeyCompound* idk, BSQRefScope& scope) const

    {

        for(size_t i = 0; i keys.size(); ++i)

        {

            scope.processReturnChecked(idk->keys[i]);

        }

    }

};

However, the above program now crashes with Segfault 11 (missing some globals, I suppose).

1
2
shell

'./ckey' terminated by signal SIGSEGV (Address boundary error)

To Reproduce

Compile with

1
exegen.js --compiler clang++ -o ckey ckey.bsq

Expected behavior

Successful compilation + a meaningful return value.

Desktop:
- OS: macOS Catalina 10.15.4
- Bosque Version: 0.5.0-rc-1

该提问来源于开源项目:microsoft/BosqueLanguage

Partial support is incoming. Note that we use special




1
create

for the indentifiers and will need to add typechecker support:

1
2
3
4
5
6
7
8
9
10
11
12
identifier UserId = Int;



entrypoint function main(): UserId {

  let id = UserId::create(1);



  let x = Set@{id};

  check x.size() == 1;



  return id;

}






   



推荐阅读
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • ALTERTABLE通过更改、添加、除去列和约束,或者通过启用或禁用约束和触发器来更改表的定义。语法ALTERTABLEtable{[ALTERCOLUMNcolu ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • JDK源码学习之HashTable(附带面试题)的学习笔记
    本文介绍了JDK源码学习之HashTable(附带面试题)的学习笔记,包括HashTable的定义、数据类型、与HashMap的关系和区别。文章提供了干货,并附带了其他相关主题的学习笔记。 ... [详细]
  • imnewtotheswiftandxcodeworld,soimhavingaproblemtryingtointegrateapackagetomypro ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • 本文讨论了使用差分约束系统求解House Man跳跃问题的思路与方法。给定一组不同高度,要求从最低点跳跃到最高点,每次跳跃的距离不超过D,并且不能改变给定的顺序。通过建立差分约束系统,将问题转化为图的建立和查询距离的问题。文章详细介绍了建立约束条件的方法,并使用SPFA算法判环并输出结果。同时还讨论了建边方向和跳跃顺序的关系。 ... [详细]
  • 本文介绍了P1651题目的描述和要求,以及计算能搭建的塔的最大高度的方法。通过动态规划和状压技术,将问题转化为求解差值的问题,并定义了相应的状态。最终得出了计算最大高度的解法。 ... [详细]
  • 本文介绍了UVALive6575题目Odd and Even Zeroes的解法,使用了数位dp和找规律的方法。阶乘的定义和性质被介绍,并给出了一些例子。其中,部分阶乘的尾零个数为奇数,部分为偶数。 ... [详细]
  • 本文介绍了三种方法来实现在Win7系统中显示桌面的快捷方式,包括使用任务栏快速启动栏、运行命令和自己创建快捷方式的方法。具体操作步骤详细说明,并提供了保存图标的路径,方便以后使用。 ... [详细]
  • FeatureRequestIsyourfeaturerequestrelatedtoaproblem?Please ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • 预备知识可参考我整理的博客Windows编程之线程:https:www.cnblogs.comZhuSenlinp16662075.htmlWindows编程之线程同步:https ... [详细]
  • IjustinheritedsomewebpageswhichusesMooTools.IneverusedMooTools.NowIneedtoaddsomef ... [详细]
author-avatar
淋殁
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有