47 lines
1.5 KiB
Markdown
47 lines
1.5 KiB
Markdown
# Exemples / DO-DON'T — Chapitre 47 — Concepts rejetés ou déconseillés
|
|
|
|
> Document compagnon. Les exemples illustrent les règles du chapitre ; la formulation normative reste dans le chapitre lui-même.
|
|
|
|
## Exemples extraits du chapitre
|
|
|
|
### Exemple 1
|
|
|
|
```text
|
|
traits séparés des interfaces en V1
|
|
multiple class inheritance
|
|
implicit returns
|
|
global general type inference for variable identity
|
|
variable shadowing while previous declaration visible
|
|
operator aliases sans différence sémantique
|
|
user-defined arbitrary operator symbols
|
|
operator ++ / --
|
|
operator === / !==
|
|
operator >>>
|
|
C preprocessor #ifdef/#define
|
|
switch/case fallthrough
|
|
errdefer
|
|
general static keyword when clsmethod suffices
|
|
match guards `when` / `if`
|
|
loop/until/repeat/unless comme synonymes de structures existantes
|
|
magic getters/setters
|
|
mandatory native GC
|
|
immutability by default for ordinary variables/objects
|
|
mandatory `mut` qualifier for ordinary mutation
|
|
Rust-style user-visible borrow/lifetime syntax as the default programming model
|
|
```
|
|
|
|
### Exemple 2
|
|
|
|
```text
|
|
reflection runtime obligatoire
|
|
metaprogramming transformant silencieusement le code
|
|
features combinatoires non contraintes
|
|
package hybride `lib+bin`
|
|
exports/reexports dans module.saselmod
|
|
transitive dependencies importables sans déclaration directe
|
|
```
|
|
|
|
## DO / DON'T / WHY / compiler error / edge cases
|
|
|
|
À consolider progressivement avant la baseline publique V3 et à transformer, lorsque pertinent, en tests de conformité de la toolchain.
|