Status of ExistentialAny

Not so:

If it were my codebase, I wouldn't devote a large effort to devising your own processes and infrastructure to migration existing uses at this point. It's well understood that requiring ExistentialAny across the board would benefit from some sort of migration tooling or at least better guidance.

Now, if you truly need the dynamism of any, I doubt you'll regret using the new syntax going forward. But part of the benefit to users of requiring ExistentialAny is that we (or some of us) surmise that a fair amount of existential usage doesn't actually require the dynamism and could be replaced with generics or opaque types more performantly—put another way, we think having P mean any P encouraged users to write less optimal code by default.

It would therefore be self-defeating if we simply encouraged everyone to mechanically sprinkle any everywhere in their codebases. So we deferred switching ExistentialAny to be on by default until we could have a chance to think through what a smarter migration path would look like and what additional language features or migration tooling that might involve.

8 Likes