Skip to content

Commit 3fea2d4

Browse files
committed
Fix generic functions
1 parent 9219731 commit 3fea2d4

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

Parser/src/main/java/org/openzen/zenscript/parser/definitions/ParsedFunction.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@
22

33
import org.openzen.zencode.shared.CodePosition;
44
import org.openzen.zencode.shared.CompileException;
5+
import org.openzen.zenscript.codemodel.FunctionHeader;
56
import org.openzen.zenscript.codemodel.HighLevelDefinition;
67
import org.openzen.zenscript.codemodel.Modifiers;
78
import org.openzen.zenscript.codemodel.compilation.*;
89
import org.openzen.zenscript.codemodel.context.CompilingPackage;
910
import org.openzen.zenscript.codemodel.definition.FunctionDefinition;
11+
import org.openzen.zenscript.codemodel.generic.TypeParameter;
1012
import org.openzen.zenscript.codemodel.identifiers.TypeSymbol;
1113
import org.openzen.zenscript.codemodel.type.BasicTypeID;
1214
import org.openzen.zenscript.lexer.ParseException;
@@ -94,8 +96,17 @@ public boolean isInner() {
9496

9597
@Override
9698
public void linkTypes() {
97-
if (compiled.header == null)
98-
compiled.setHeader(header.compile(compiler.types()));
99+
if (compiled.header == null) {
100+
FunctionHeader compiledHeader = header.compile(compiler.types());
101+
compiled.setTypeParameters(compiledHeader.typeParameters);
102+
103+
FunctionHeader withoutTypeParameters = new FunctionHeader(
104+
TypeParameter.NONE,
105+
compiledHeader.getReturnType(),
106+
compiledHeader.thrownType,
107+
compiledHeader.parameters);
108+
compiled.setHeader(withoutTypeParameters);
109+
}
99110
}
100111

101112
@Override

0 commit comments

Comments
 (0)