2020-11-24 14:40

Extend Chalk with support for well-known, builtin traits

This is a meta issue for the work of extending chalk to support the various built-in traits like Sized, Copy, and so forth.

  • [x] Extend TraitDefn with concept of "well-known trait" identifier #356
  • [x] Add basic support for the Sized trait https://github.com/rust-lang/chalk/issues/261
  • [x] Add support for a built-in Copy trait
  • In particular, Copy has built-in well-formedness requirements required for soundness
  • [x] Add support for a built-in Clone trait
  • Impls for tuples, closures are provided by rustc, at least
  • [x] Add support for built-in Fn traits
  • [x] Add support for built-in Unsize traits
  • [x] Unpin
  • [x] CoerceUnsized
  • [ ] DispatchFromDyn
  • [ ] DiscriminantKind
  • [ ] Generator

This issue has been assigned to via this comment.


  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答


  • weixin_39528289 weixin_39528289 5月前


    点赞 评论 复制链接分享
  • weixin_39662432 weixin_39662432 5月前

    I would also say that this issue is fairly 'parallelizable', so if others want to pick up some aspects of it, that's not a problem. e.g. I think we could add code for Copy and the like. Maybe it's a good idea to break those out into separate issues and write-up some mentoring instructions?

    点赞 评论 复制链接分享
  • weixin_39662432 weixin_39662432 5月前

    Although they may be somewhat blocked on https://github.com/rust-lang/chalk/pull/371 -- having more details of Rust types would be useful.

    点赞 评论 复制链接分享
  • weixin_39528289 weixin_39528289 5月前

    So if someone wants to pick it up, I am done with Copy, Drop and Clone (as far as I understood Clone introduces no hard coded impls and/or wf checks?) modulo #371 of course, but it will be easy to address when it comes to it. Going to pick up Unsize next

    点赞 评论 复制链接分享
  • weixin_39528289 weixin_39528289 5月前

    Im already working on CoerceUnsized

    点赞 评论 复制链接分享
  • weixin_39864489 weixin_39864489 5月前

    I'll try Unpin

    点赞 评论 复制链接分享