给定:
# typed: true
module X
class Y
end
end
module X
class X
def y
X::Y
end
end
endSorbet给出错误:
editor.rb:6: Unable to resolve constant Y https://srb.help/5002
6 | X::Y为什么在定义了X::Y的情况下也会出现错误的冰沙?
发布于 2020-12-07 18:47:53
因为这就是常量查找在ruby中的工作方式。粗略地说,它尝试从最里面的嵌套开始解析名称。因此,在你的X::Y中,它将X解析为没有Y的class X。
改用::X::Y,从顶层强制查找。
https://stackoverflow.com/questions/65180215
复制相似问题