100 lines
1.4 KiB
Markdown
100 lines
1.4 KiB
Markdown
# Exemples / DO-DON'T — Chapitre 33 — Imports et résolution des noms
|
|
|
|
> 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
|
|
import type saselang.compiler.lexer.Token;
|
|
import func saselang.compiler.lexer.tokenize;
|
|
import const saselang.compiler.config.MaxDepth;
|
|
import var saselang.runtime.state.CurrentMode;
|
|
```
|
|
|
|
### Exemple 2
|
|
|
|
```text
|
|
class
|
|
struct
|
|
enum
|
|
interface
|
|
union
|
|
```
|
|
|
|
### Exemple 3
|
|
|
|
```text
|
|
import type foo.Token;
|
|
```
|
|
|
|
### Exemple 4
|
|
|
|
```text
|
|
import type foo.Token as FooToken;
|
|
```
|
|
|
|
### Exemple 5
|
|
|
|
```text
|
|
src/foo/A.saseltype
|
|
src/foo/B.saseltype
|
|
```
|
|
|
|
### Exemple 6
|
|
|
|
```text
|
|
import type foo.A;
|
|
```
|
|
|
|
### Exemple 7
|
|
|
|
```text
|
|
namespace foo;
|
|
```
|
|
|
|
### Exemple 8
|
|
|
|
```text
|
|
charger le fichier immédiatement
|
|
exécuter le fichier
|
|
initialiser le fichier
|
|
compiler ce fichier avant le fichier courant
|
|
```
|
|
|
|
### Exemple 9
|
|
|
|
```text
|
|
A imports B
|
|
B imports A
|
|
```
|
|
|
|
### Exemple 10
|
|
|
|
```text
|
|
A imports B
|
|
B imports C
|
|
C imports A
|
|
```
|
|
|
|
### Exemple 11
|
|
|
|
```text
|
|
cycle de références de classes
|
|
autorisé
|
|
|
|
cycle d'appels
|
|
autorisé
|
|
|
|
cycle d'héritage
|
|
ERROR
|
|
|
|
cycle de layout by-value
|
|
ERROR
|
|
```
|
|
|
|
## 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.
|