v0.2.12
This commit is contained in:
63
chapters/033-imports-et-resolution-des-noms.md
Normal file
63
chapters/033-imports-et-resolution-des-noms.md
Normal file
@@ -0,0 +1,63 @@
|
||||
# 33. Imports et résolution des noms
|
||||
|
||||
## 33.1 Imports — V1 REQUIS — FIGÉ
|
||||
|
||||
Imports file-level uniquement, après `namespace` lorsque celui-ci existe.
|
||||
|
||||
Pas de wildcard `*`.
|
||||
|
||||
Import symbole par symbole :
|
||||
|
||||
```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;
|
||||
```
|
||||
|
||||
`import type` couvre :
|
||||
|
||||
```text
|
||||
class
|
||||
struct
|
||||
enum
|
||||
interface
|
||||
union
|
||||
```
|
||||
|
||||
## 33.2 Alias — V1 REQUIS — FIGÉ
|
||||
|
||||
Sans `as`, le dernier nom devient l'alias local implicite.
|
||||
|
||||
```text
|
||||
import type foo.Token;
|
||||
```
|
||||
|
||||
importe `Token`.
|
||||
|
||||
Alias explicite :
|
||||
|
||||
```text
|
||||
import type foo.Token as FooToken;
|
||||
```
|
||||
|
||||
Les alias locaux doivent être uniques dans le fichier.
|
||||
|
||||
Pas d'alias de module.
|
||||
|
||||
## 33.3 Utilisation sans import — V1 REQUIS — FIGÉ
|
||||
|
||||
L'utilisation d'un chemin qualifié complet sans `import` est autorisée uniquement pour les symboles appartenant au **package courant**.
|
||||
|
||||
```text
|
||||
saselang.compiler.lexer.Token
|
||||
saselang.compiler.lexer::tokenize(...)
|
||||
```
|
||||
|
||||
`.` qualifie le chemin ; `::` accède au symbole contenu.
|
||||
|
||||
Un symbole provenant d'une dépendance externe ne peut pas être référencé directement par un chemin complet dans une expression ou une déclaration. Il doit d'abord être importé explicitement avec une clause `from "vendor/package@requirement"`.
|
||||
|
||||
Cette règle évite d'introduire la syntaxe de coordonnées package (`/`, `@`, contraintes SemVer) dans la grammaire générale des expressions et garantit qu'un fichier énonce explicitement toutes ses provenances externes.
|
||||
|
||||
---
|
||||
Reference in New Issue
Block a user