Skip to content

Commit 028cf8d

Browse files
committed
Add potential void type.
1 parent 357d40e commit 028cf8d

File tree

5 files changed

+27
-3
lines changed

5 files changed

+27
-3
lines changed

src/main/java/org/byteskript/skript/api/ModifiableLibrary.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ public void registerProperty(String name, HandlerType type, Method handler) {
115115
This version accepts Foundation types.
116116
""")
117117
public void registerTypes(Type... types) {
118-
for (Type type : types) {
118+
for (final Type type : types) {
119119
if (!this.types.contains(type)) this.types.add(type);
120120
}
121121
}

src/main/java/org/byteskript/skript/compiler/FileContext.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ public FileContext(Type type) {
5454
.addModifiers(Modifier.FINAL)
5555
.setSuperclass(CompiledScript.class);
5656
this.addSkriptFunctions();
57+
this.registerType("none", new Type(void.class)); // special overridden case
5758
// writer.setComputation(1); // todo
5859
}
5960

@@ -420,7 +421,7 @@ public LanguageElement getExpected() {
420421

421422
@Override
422423
public void registerType(String name, Type type) {
423-
types.put(name, type);
424+
this.types.put(name, type);
424425
}
425426

426427
@Override

src/main/java/org/byteskript/skript/compiler/SkriptLangSpec.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ public final class SkriptLangSpec extends ModifiableLibrary implements LanguageD
100100

101101
private SkriptLangSpec() {
102102
super("Skript");
103-
registerTypes(
103+
this.registerTypes(
104104
CommonTypes.CLASS,
105105
CommonTypes.TYPE,
106106
CommonTypes.INTEGER,

src/test/java/org/byteskript/skript/test/TypesTest.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,20 @@ public static void start() throws Throwable {
2323
final PostCompileClass[] classes = skript.compileComplexScript(TypesTest.class.getClassLoader()
2424
.getResourceAsStream("types.bsk"), "skript.types");
2525
for (PostCompileClass cls : classes) {
26+
debug(cls);
2627
if (script == null)
2728
script = skript.loadScript(cls);
2829
else skript.loadScript(cls);
2930
}
3031
}
3132

33+
@Test
34+
public void runnable() throws Throwable {
35+
final Member function = script.getFunction("runnable");
36+
assert function != null;
37+
function.run(skript).get();
38+
}
39+
3240
@Test
3341
public void basic_use() throws Throwable {
3442
final Member function = script.getFunction("basic_use");

src/test/resources/types.bsk

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,3 +97,18 @@ function java_implement:
9797
assert {var} is "hello": "Supplier get method failed."
9898
set {var} to result of {getter}
9999
assert {var} is "hello": "Supplier result-of failed."
100+
101+
type Runnable:
102+
template: java/lang/Runnable
103+
function run:
104+
return: none
105+
trigger:
106+
assert {_var} is 1: "Variable failed to transfer."
107+
set {_var} to 2
108+
109+
function runnable:
110+
trigger:
111+
set {thing} to a new Runnable
112+
set {_var} to 1
113+
run {thing}
114+
assert {_var} is 2: "Runnable failed to run."

0 commit comments

Comments
 (0)