This commit is contained in:
2026-09-13 00:12:41 +02:00
parent fd4e879c0c
commit 019c8ad335
16 changed files with 580 additions and 92 deletions

View File

@@ -1,8 +1,8 @@
# Exemples / DO-DON'T — Chapitre 4 — Couches de l'écosystème V1
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
> Document compagnon. Les exemples illustrent les règles du chapitre ; la formulation normative reste dans le chapitre lui-même.
## Exemples actuellement présents dans le chapitre
## Exemples extraits du chapitre
### Exemple 1
@@ -72,6 +72,12 @@ FFI helpers
plateforme
```
### Exemple 4
```text
saselang/mapdb*
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.
À consolider progressivement avant la baseline publique V3 et à transformer, lorsque pertinent, en tests de conformité de la toolchain.

View File

@@ -231,6 +231,13 @@ t"..." template structuré, réservé
\u{...}
```
### Exemple 24
```text
String a = "abcdef";
String b = a::substring(1..<4);
```
## 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.

View File

@@ -1,17 +1,165 @@
# Exemples / DO-DON'T — Chapitre 22 — Collections et itération
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
> Document compagnon. Les exemples illustrent les règles du chapitre ; la formulation normative reste dans le chapitre lui-même.
## Exemples actuellement présents dans le chapitre
## Exemples extraits du chapitre
### Exemple 1
```text
Vector<T>
T primitif -> valeur by-value
T struct -> valeur by-value
T class -> référence de classe
```
### Exemple 2
```text
Array<int32> values = [1, 2, 3];
Array<int32> empty = [];
```
### Exemple 3
```text
Array<T>::filled(uint64 length, T value)
```
### Exemple 4
```text
User firstUser = ...;
User otherUser = ...;
Array<User> users = Array<User>::filled(3, firstUser);
users[1] = otherUser; // OK si l'accès n'est pas const
```
### Exemple 5
```text
Array<T>::empty()
```
### Exemple 6
```text
StaticArray<int32, 3> values = [10, 20, 30];
StaticArray<int32, 0> empty = [];
```
### Exemple 7
```text
StaticArray<T,N>::filled(T value)
```
### Exemple 8
```text
Array<int32> values = ...;
Slice<int32> part = values::slice(10..<20);
part[0] = 42; // modifie values[10]
```
### Exemple 9
```text
reste attachée à la portion qu'elle désigne
conserve une longueur fixe
n'est pas redimensionnable
n'est pas déplaçable vers une autre portion
peut modifier les éléments uniquement si l'accès source l'autorise
ne peut jamais augmenter les droits de mutabilité de la source
```
### Exemple 10
```text
const Array<User> users = ...;
const Slice<User> part = users::slice(0..<4);
part[0] = otherUser; // ERROR
part[0]::setName("Alice"); // ERROR
part[0]::getName(); // OK
```
### Exemple 11
```text
Iterable<T>
Collection<T>
List<T>
SettableList<T>
ResizableList<T>
```
### Exemple 12
```text
count() -> uint64
isEmpty() -> bool
contains(const T value) -> bool
```
### Exemple 13
```text
ordre stable
indexation positionnelle en lecture
length() -> uint64
```
### Exemple 14
```text
count() == length()
```
### Exemple 15
```text
list[index] = value;
```
### Exemple 16
```text
SettableList<User> users = ...;
const SettableList<User> readonly = users;
```
### Exemple 17
```text
StaticArray<T,N>
List<T>
SettableList<T>
pas ResizableList<T>
Array<T>
List<T>
SettableList<T>
pas ResizableList<T>
Slice<T>
List<T>
SettableList<T>
pas ResizableList<T>
Vector<T>
List<T>
SettableList<T>
ResizableList<T>
```
### Exemple 18
```text
a..b [a, b] bornes basse et haute incluses
a>..b (a, b] borne basse exclue, borne haute incluse
@@ -19,13 +167,13 @@ a..<b [a, b) borne basse incluse, borne haute exclue
a>..<b (a, b) bornes basse et haute exclues
```
### Exemple 3
### Exemple 19
```text
Range<uint64> ids = 1..100;
```
### Exemple 4
### Exemple 20
```text
NaN interdit comme borne
@@ -34,7 +182,7 @@ NaN interdit comme borne
valeur finie autorisée
```
### Exemple 5
### Exemple 21
```text
a..a contient exactement a
@@ -43,7 +191,7 @@ a..<a vide
a>..<a vide
```
### Exemple 6
### Exemple 22
```text
range::lower()
@@ -54,7 +202,7 @@ range::isEmpty()
range::contains(value)
```
### Exemple 7
### Exemple 23
```text
Range<T> intervalle ordonné
@@ -65,13 +213,13 @@ RangeReverseStep<T,Step> parcours arrière avec pas explicite
RangeProgression<T,Step> valeur de progression produite
```
### Exemple 8
### Exemple 24
```text
(range)::step(step)
```
### Exemple 9
### Exemple 25
```text
RangeStep<int32,int32>
@@ -80,14 +228,14 @@ RangeStep<char,uint32>
RangeStep<Date,Duration>
```
### Exemple 10
### Exemple 26
```text
(range)::reverse()
(range)::reverse()::step(step)
```
### Exemple 11
### Exemple 27
```text
range
@@ -95,25 +243,25 @@ range
[::step(step)]
```
### Exemple 12
### Exemple 28
```text
(250u8..255u8)::step(2u8)
```
### Exemple 13
### Exemple 29
```text
250 252 254
```
### Exemple 14
### Exemple 30
```text
(1..10)::step(4)
```
### Exemple 15
### Exemple 31
```text
1 5 9
@@ -121,4 +269,4 @@ range
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.
À consolider progressivement avant la baseline publique V3 et à transformer, lorsque pertinent, en tests de conformité de la toolchain.

View File

@@ -1,8 +1,8 @@
# Exemples / DO-DON'T — Chapitre 37 — Dépendances et scopes
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
> Document compagnon. Les exemples illustrent les règles du chapitre ; la formulation normative reste dans le chapitre lui-même.
## Exemples actuellement présents dans le chapitre
## Exemples extraits du chapitre
### Exemple 1
@@ -255,6 +255,18 @@ import type namespace.Type
as LocalType;
```
### Exemple 30
```text
MapDB-like
RocksDB-like
PostgreSQL-compatible components
SDL-like multimedia
WebKit/WebView integrations ou remplacements
bibliothèques image/audio/vidéo
outils UI et multimedia
```
## DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration `0.2.12` conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.
À consolider progressivement avant la baseline publique V3 et à transformer, lorsque pertinent, en tests de conformité de la toolchain.

View File

@@ -4,7 +4,7 @@
## Exemples extraits du chapitre
Aucun bloc d'exemple explicite dans cette révision.
Aucun bloc dexemple explicite dans cette révision.
## DO / DON'T / WHY / compiler error / edge cases

View File

@@ -4,7 +4,7 @@
## Exemples extraits du chapitre
Aucun bloc d'exemple explicite dans cette révision.
Aucun bloc dexemple explicite dans cette révision.
## DO / DON'T / WHY / compiler error / edge cases