有谁知道会导致什么?我无法将任何内容保存到我的班级,因为我收到了调试异常:集合为空
链接到来源:https://dl.dropboxusercontent.com/u/1817765/Pharo%20Crash%20Files.rar
重新创建的步骤:
.image
文件,不带 .changes
文件NumberWithUnits>>=
NumberWithUnits
答案 0 :(得分:6)
问题是我没有与我的项目关联的正确.changes
文件。自从我和我的队友合作以来,这些都在翻译中丢失了。将正确的.changes
文件放入.image
文件的目录后,一切正常。
答案 1 :(得分:5)
如果缺少源代码,Squeak / Pharo会有特殊处理:他们尝试从适当的MethodDictionary反编译CompiledMethod。
您在此处看到的是Decompiler无法正确反编译某些方法。
如果没有代码,IDE将无法运行,您将陷入困境(您无法保存代码,浏览代码,调试代码......)
这个Pharo 1.1版本很老了,你不会得到任何支持。
但有趣的是,您遇到的Decompiler的错误仍然存在于当前的Squeak主干开发中(4.5)
并且使Decompiler松散的方法是:
< aNumberWithUnits
(self compareUnits: aNumberWithUnits)
ifTrue: [self value: ((aNumberWithUnits value) < (self value) ifTrue: [^true] ifFalse: [^false]).]
ifFalse: [^Error new signal: 'Incompatible unit types.'].
这是一个非常规的代码,因为永远不会发送消息[self value: ...]
原因是首先评估参数,条件的两个分支都将返回ifTrue: [^true] ifFalse: [^false]
。
既然你探索了一些只有新手才能探索的黑暗角落,并且我们未能测试,我只是说谢谢。
如果您愿意,可以在http://bugs.squeak.org
上打开报告