Spec-Zone.ru › Scala 3.1

Объект scala.annotation.elidable

Класс-компаньон • Исходный код

объект elidable

Этот, на первый взгляд, бесполезный код был необходим для того, чтобы люди могли использовать именованные константы для аннотации elidable. Это необходимо для того, чтобы убедить компилятор сложить константы: в противном случае, когда пришло время проверить уровень элизии, он смотрит на дерево, как

(Select(Level, Select(FINEST, Apply(intValue, Nil))))

вместо числа 300.

Супертипы
класс Object
трайт Matchable
класс Any
Тип "self"
elidable.type

Конкретные поля

Исходный код
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

Исходный код
val byName: Map[String, Int]

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API