Spec-Zone.ru › Scala 3.2

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

Spec-Zone.ru

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