> On Sep 17, 2020, at 3:25 PM, Levi Morrison <levi.morri...@datadoghq.com> 
> wrote:
> 
> 
>> 
>> On Thu, Sep 17, 2020 at 1:00 PM Matthew Brown <matthewmatt...@gmail.com> 
>> wrote:
>>>> On Sep 17, 2020, at 1:28 PM, Brent Roose <bre...@stitcher.io> wrote:
>>> But I don't want to get stuck on phrasing, if elidiing is the right term as 
>>> Larry suggests, let's go with it!
>> 
>> No, the correct term is “type erasure”:
>> https://en.m.wikipedia.org/wiki/Type_erasure
> 
> "type erasure" with respect to generics means that they are checked at
> compile-time and erased at run-time. For instance, Java does generics
> through type erasure, and you had better believe those get checked at
> compile-time! This isn't what is being proposed, at least not how I
> understood it.
> 
> Really these are just "hints", but historically in PHP the term "type
> hints" meant actually type checks.
> 
> In summary:
> - Checked at run-time (and probably also compile-time when possible):
> reified generics.
> - Checked only at compile-time and thrown away at run-time: erased generics.
> - Not checked at all: ____?. Maybe we can call them "ignored generics"?

Seems like Python calls this same exact behaviour type erasure:
https://www.python.org/dev/peps/pep-0484/#instantiating-generic-classes-and-type-erasure

The term term type erasure is also used in documentation for an unofficial 
Python type checker:
https://mypy.readthedocs.io/en/stable/generics.html

Looks like Hack also uses the term in this context:
https://docs.hhvm.com/hack/generics/type-erasure
(Hack’s compiler doesn’t perform any generic type-checking)

Reply via email to