Je pense que Scala 3 est bien en retard en ce qui concerne la détection des avertissements et leur catégorisation par rapport à Scala 2.13. Je n'ai pas pu trouver la documentation exacte pour -Wconf
pour Scala 3 pour la référencer ici mais ce qui suit pourrait être utile.
Voici comment Scala 2.13 montre ce qu'il supporte au format -Wconf
scala -Wconf help
Cela produit un message d'aide avec la partie suivante concernant les catégories d'erreur/d'avertissement :
Liste complète des catégories de messages :
- deprecation
- feature, feature-dynamics, feature-existentials, feature-higher-kinds, feature-implicit-conversions, feature-macros, feature-postfix-ops, feature-reflective-calls
- java-source
- lint, lint-adapted-args, lint-byname-implicit, lint-constant, lint-delayedinit-select, lint-deprecation, lint-doc-detached, lint-eta-sam, lint-eta-zero, lint-implicit-not-found, lint-inaccessible, lint-infer-any, lint-int-div-to-float, lint-missing-interpolator, lint-multiarg-infix, lint-nonlocal-return, lint-nullary-unit, lint-numeric-methods, lint-option-implicit, lint-package-object-classes, lint-performance, lint-poly-implicit-overload, lint-private-shadow, lint-recurse-with-default, lint-serial, lint-stars-align, lint-type-parameter-shadow, lint-unit-specialization, lint-universal-methods
- optimizer
- other, other-debug, other-implicit-type, other-match-analysis, other-migration, other-non-cooperative-equals, other-nullary-override, other-pure-statement, other-shadowing
- scaladoc
- unchecked
- unused, unused-imports, unused-locals, unused-nowarn, unused-params, unused-pat-vars, unused-privates
- w-flag, w-flag-dead-code, w-flag-extra-implicit, w-flag-numeric-widen, w-flag-self-implicit, w-flag-value-discard
La même commande ne fonctionne pas dans Scala 3.3 et la documentation la plus proche à laquelle je puisse accéder est la suivante
scala -W
Une partie intéressante de la configuration des avertissements est la suivante
-Wunused Activer ou désactiver des avertissements `unused` spécifiques
Choix :
- nowarn,
- all,
- imports :
Avertissement si un sélecteur d'importation n'est pas référencé.
REMARQUE : remplacé par -unused:strict-no-implicit-warn,
- privates :
Avertissement si un membre privé est inutilisé,
- locals :
Avertissement si une définition locale est inutilisée,
- explicits :
Avertissement si un paramètre explicite est inutilisé,
- implicits :
Avertissement si un paramètre implicite est inutilisé,
- params :
Activer -unused:explicits,implicits,
- linted :
Activer -unused:imports,privates,locals,implicits,
- strict-no-implicit-warn :
Identique à -unused:import, uniquement pour les imports des noms explicites.
REMARQUE : Cela remplace -unused:imports et n'est PAS défini par
-unused:all,
- unsafe-warn-patvars :
(DANGEREUX) Avertissement si une variable liée dans un motif est inutilisée.
Cet avertissement peut générer des faux positifs, car il ne peut pas être
supprimé pour l'instant.