Files
saselang-bible/chapters/033-imports-et-resolution-des-noms.md
2026-09-12 08:56:27 +02:00

1.6 KiB

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 :

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 :

class
struct
enum
interface
union

33.2 Alias — V1 REQUIS — FIGÉ

Sans as, le dernier nom devient l'alias local implicite.

import type foo.Token;

importe Token.

Alias explicite :

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.

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.