Files
saselang-bible/chapters/017-construction-et-destruction.md
2026-09-12 08:56:27 +02:00

87 lines
2.0 KiB
Markdown

# 17. Construction et destruction
## 17.1 Constructeur unique — V1 REQUIS — FIGÉ
Une classe ou struct possède au maximum un `construct` effectif explicite ou synthétique.
Pas de surcharge de constructeur.
## 17.2 Visibilité de `construct` — V1 REQUIS — FIGÉ
Classe :
```text
private
protected
module
package
public
```
Struct :
```text
private
module
package
public
```
`unsafe construct` est autorisé si l'appelant doit garantir des invariants que le compilateur ne peut pas vérifier.
## 17.3 Construction dérivée — V1 REQUIS — FIGÉ
Chaque classe possède son propre constructeur effectif ; les constructeurs ne sont pas hérités comme des méthodes.
Le compilateur peut synthétiser un constructeur à partir :
- du constructeur effectif du parent immédiat ;
- des nouveaux champs qui nécessitent une initialisation.
Chaîne :
```text
C -> B -> A
```
Jamais `C -> A` directement.
## 17.4 `super::construct(...)` — V1 REQUIS — FIGÉ
Il doit être exécuté exactement une fois sur chaque chemin de construction valide avant toute utilisation de l'état parent via `this`/`super`.
Il n'a pas besoin d'être textuellement la première instruction : des calculs locaux indépendants peuvent le précéder.
Le compilateur doit prouver la definite construction.
Avant construction du parent, sont notamment interdits :
```text
this::field
this::method()
super::method()
escape/capture/pass de this
```
## 17.5 Destructeur — V1 REQUIS — FIGÉ EN PRINCIPE
Au maximum un `destruct` effectif.
Le destructeur est un hook de lifecycle automatiquement invoqué.
Il n'est pas appelable directement par le programmeur et ne possède donc pas de visibilité utilisateur normale.
```text
destruct() {
...
}
```
S'il doit effectuer des opérations unsafe, il utilise un bloc `unsafe` interne.
## 17.6 Fallibilité de `construct`/`destruct` — V1 REQUIS — À FINALISER
Le lien exact avec `Result`, exceptions, construction partielle et cleanup doit être fermé avec le modèle mémoire et les exceptions.
---