1
1
2
2
template type Thing:
3
+ function empty_func:
3
4
function my_func:
4
5
return: String
5
6
function another_func:
@@ -27,7 +28,6 @@ type Box:
27
28
trigger:
28
29
return "Hello?"
29
30
30
-
31
31
function basic_use:
32
32
trigger:
33
33
set {thing} to a new Box
@@ -42,3 +42,50 @@ function basic_use:
42
42
set {boolean} to bonk() from {thing}
43
43
assert {boolean} is true: "Member function didn't return correctly."
44
44
assert another_func() from {thing} is 10: "Template default function didn't return correctly."
45
+
46
+ template type Shape:
47
+ function get_sides:
48
+
49
+ template type Quadrilateral:
50
+ template: Shape
51
+ function get_sides:
52
+ trigger:
53
+ return 4
54
+
55
+ type Square:
56
+ template: Quadrilateral
57
+
58
+ type Rectangle:
59
+ template: Quadrilateral
60
+
61
+ function multiple_inheritance:
62
+ trigger:
63
+ set {square} to a new Square
64
+ set {rectangle} to a new Rectangle
65
+ assert {square} exists: "Type creation failed."
66
+ assert {rectangle} exists: "Type creation failed."
67
+ assert {square} is a Square: "Type self-comparison failed."
68
+ assert {square} is a Quadrilateral: "Type super-comparison failed."
69
+ assert {square} is a Shape: "Type inherited super-comparison failed."
70
+ assert {rectangle} is a Rectangle: "Type self-comparison failed."
71
+ assert {rectangle} is a Quadrilateral: "Type super-comparison failed."
72
+ assert {rectangle} is a Shape: "Type inherited super-comparison failed."
73
+ assert get_sides() from {square} is 4: "Type default function failed."
74
+ assert get_sides() from {rectangle} is 4: "Type default function failed."
75
+
76
+ type Getter:
77
+ template: java/util/function/Supplier
78
+ function get:
79
+ trigger:
80
+ return "hello"
81
+
82
+ function java_implement:
83
+ trigger:
84
+ set {getter} to a new Getter
85
+ assert {getter} is a Getter: "Type self-comparison failed."
86
+ set {class} to get_class("java.util.function.Supplier")
87
+ assert {getter} is a {class}: "Type java super-comparison failed."
88
+ set {var} to get() from {getter}
89
+ assert {var} is "hello": "Supplier get method failed."
90
+ set {var} to result of {getter}
91
+ assert {var} is "hello": "Supplier result-of failed."
0 commit comments