RPITs, RPITITs and AFITs and their relationship

This is the first blog post as part of a series of blog posts that will try to explain how impl trait in return position inside and outside traits and async fns in traits works. This first blog post summarizes the concepts with some simple examples. In the following ones we would be explaining a bit about the internal details. What is an RPIT? RPIT stands for Return Position Impl Trait. [Read More]

Multiple defining uses of Type Alias Impl Traits

Disclaimer: this blog post comes from some notes I took meanwhile working on an Rust compiler issue and it’s not very polished but I’ve decided to publish it anyway. A bug was reported to the compiler that involves type checking, inference, traits and in particular type alias impl traits (TAIT) with multiple defining uses and some other particular things about them. In this post we are going to explain how the system works as I was investigating this myself in order to fix this issue, what is the issue exactly about and then describe how we’ve solved the issue. [Read More]