41 lines
1.1 KiB
Markdown
41 lines
1.1 KiB
Markdown
# 47. Concepts rejetés ou déconseillés
|
|
|
|
## 47.1 Rejetés
|
|
|
|
```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
|
|
```
|
|
|
|
## 47.2 À éviter sauf besoin démontré
|
|
|
|
```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
|
|
```
|
|
|
|
---
|