fix: extend example of complex types

This commit is contained in:
2026-06-13 12:40:26 +02:00
parent dafe0b471a
commit 2a714a1021
2 changed files with 34 additions and 8 deletions

View File

@@ -1,11 +1,21 @@
type Meter = float type Meter = float
extend Meter { extend Meter {
op __add__(Meter) -> Meter def __add__: fn(Meter) -> Meter
op __sub__(Meter) -> Meter def __sub__: fn(Meter) -> Meter
} }
type Coordinate = { type Coordinate = object
x: Meter
y: Meter extend Coordinate {
prop x: Meter
prop y: Meter
}
type Difference[T <: float] = T
type MeterDifference = Difference[Meter]
type CompDiff[T <: float] = {
prop d1: Difference[T]
prop d2: Difference[T]
} }

View File

@@ -1,5 +1,6 @@
# type: ignore # type: ignore
# ruff: disable [F821] # ruff: disable [F821]
p1: Coordinate p1: Coordinate
p2: Coordinate p2: Coordinate
@@ -9,6 +10,21 @@ diff_y = p2.y - p1.y
dist = diff_x + diff_y dist = diff_x + diff_y
p2.x += cast(Meter, 1) p2.x += cast(Meter, 1)
p2.y = True p2.y = True # invalid, wrong type
p2.z = 3 p2.z = 3 # invalid, no property 'z' on Coordinate
p2.x.a = 3 p2.x.a = 3 # invalid, no properties on Meter
foo: list[float] = []
append = foo.append
foo.append("") # invalid, must be float
foo.append(2)
append(True) # invalid, must be float
append(2)
bar: list[list[Meter]]
bar.append([p2.x])
foo2 = foo + foo