Объект elidable.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.2.0/scala/annotation/elidable$.html