1.3 KiB
1.3 KiB
Exemples / DO-DON'T — Chapitre 7 — Types nominaux et fichiers .saseltype
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
class
struct
interface
enum
union
Exemple 2
class Foo;
struct Bar;
Exemple 3
nominalement connu
identité du type, kind et paramètres génériques connus
sémantiquement complet
déclaration, héritage, interfaces et contrats résolus
layout-complet
représentation by-value, taille et alignement calculables lorsque nécessaires
Exemple 4
struct A {
A value;
}
Exemple 5
struct A {
B b;
}
struct B {
A a;
}
Exemple 6
struct A {
StaticArray<A, 0> values;
}
Exemple 7
class A {
B b;
}
class B {
A a;
}
Exemple 8
class A extends B
class B extends A
Exemple 9
interface A extends B
interface B extends A
Exemple 10
cyclic inheritance
recursive by-value layout
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.