首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >即使定义了Sorbet,也无法解析常量

即使定义了Sorbet,也无法解析常量
EN

Stack Overflow用户
提问于 2020-12-07 18:44:15
回答 1查看 260关注 0票数 1

给定:

代码语言:javascript
复制
# typed: true

module X
  class Y
  end
end

module X
  class X
    def y
      X::Y
    end
  end
end

Sorbet给出错误:

代码语言:javascript
复制
editor.rb:6: Unable to resolve constant Y https://srb.help/5002
     6 |      X::Y

为什么在定义了X::Y的情况下也会出现错误的冰沙?

Playground link

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-07 18:47:53

因为这就是常量查找在ruby中的工作方式。粗略地说,它尝试从最里面的嵌套开始解析名称。因此,在你的X::Y中,它将X解析为没有Yclass X

改用::X::Y,从顶层强制查找。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65180215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档