This useless appearing code was necessary to allow people to use named constants for the elidable annotation. This is what it takes to convince the compiler to fold the constants: otherwise when it's time to check an elision level it's staring at a tree like
(Select(Level, Select(FINEST, Apply(intValue, Nil))))
instead of the number 300.
| Supertypes | |
|---|---|
| Self type |
The levels ALL and OFF are confusing in this context because the sentiment being expressed when using the annotation is at cross purposes with the one being expressed via -Xelide-below. This confusion reaches its zenith at level OFF, where the annotation means never elide this method but -Xelide-below OFF is how you would say elide everything possible.
With no simple remedy at hand, the issue is now at least documented, and aliases MAXIMUM and MINIMUM are offered.
© 2002-2022 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://scala-lang.org/api/3.2.0/scala/annotation/elidable$.html