Объект scala.annotation.elidable
объект elidable
Этот, на первый взгляд, бесполезный код был необходим для того, чтобы люди могли использовать именованные константы для аннотации elidable. Это необходимо для того, чтобы убедить компилятор сложить константы: в противном случае, когда пришло время проверить уровень элизии, он смотрит на дерево, как
(Select(Level, Select(FINEST, Apply(intValue, Nil))))
вместо числа 300.
| Супертипы | |
|---|---|
| Тип "self" |
Конкретные поля
Исходный код
final val ALL: -2147483648
Уровни ALL и OFF в этом контексте вызывают недоумение, поскольку смысл, выражаемый при использовании аннотации, противоречит смыслу, выраженному через -Xelide-below. Это недоумение достигает своего апогея на уровне OFF, где аннотация означает «никогда не элизировать этот метод», но -Xelide-below OFF — это то, как вы бы сказали «элизировать всё возможное».
Ввиду отсутствия простого решения, проблема теперь, по крайней мере, документирована, и предлагаются алиасы MAXIMUM и MINIMUM.
Исходный код
final val ASSERTION: 2000
Исходный код
final val CONFIG: 700
Исходный код
final val FINE: 500
Исходный код
final val FINER: 400
Исходный код
final val FINEST: 300
Исходный код
final val INFO: 800
Исходный код
final val MAXIMUM: 2147483647
Исходный код
final val MINIMUM: -2147483648
Исходный код
final val OFF: 2147483647
Исходный код
final val SEVERE: 1000
Исходный код
final val WARNING: 900
Исходный код
© 2002-2022 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://scala-lang.org/api/3.1.1/scala/annotation/elidable$.html