Scala禁止分配值类



根据关于值类的文档,它们可能在多种情况下进行分配:

分配汇总

值类被视为另一种类型。

一个值类被分配给一个数组。

进行运行时类型测试,例如模式匹配。

如果出现这些情况,是否可以说抛出编译错误?

没有任何内置(AFAIK)。

您可以编写一个SBT插件,在compile任务完成后(使用BCEL、ASM等库)检查.class文件,如果发现任何值类构造函数调用,则会失败。

或者,你应该能够用编译器插件做同样的事情(不幸的是,我能找到的文档很旧),但有点困难。

相关内容

  • 没有找到相关文章

最新更新