Skip to content

Commit aa4da23

Browse files
committed
Feature(compiler): More safety checks on NativeTypeResolver usage
1 parent d438bc2 commit aa4da23

1 file changed

Lines changed: 9 additions & 4 deletions

File tree

src/backend/llvm/index.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,9 @@ export function passFunctionDeclaration(parent: ts.FunctionDeclaration, ctx: Con
101101
parent.parameters.map((parameter) => {
102102
if (parameter.type) {
103103
const nativeType = NativeTypeResolver.getType(ctx.typeChecker.getTypeFromTypeNode(parameter.type), ctx);
104-
return nativeType.getType();
104+
if (nativeType) {
105+
return nativeType.getType();
106+
}
105107
}
106108

107109
throw new UnsupportedError(
@@ -366,9 +368,12 @@ function declareFunctionFromDefinition(
366368
): llvm.Function {
367369
let fnType = llvm.FunctionType.get(
368370
stmt.type ? NativeTypeResolver.getType(ctx.typeChecker.getTypeFromTypeNode(stmt.type), ctx).getType() : llvm.Type.getVoidTy(ctx.llvmContext),
369-
stmt.parameters.map((parameters) => {
370-
if (parameters.type) {
371-
return NativeTypeResolver.getType(ctx.typeChecker.getTypeFromTypeNode(parameters.type), ctx).getType()
371+
stmt.parameters.map((parameter) => {
372+
if (parameter.type) {
373+
const nativeType = NativeTypeResolver.getType(ctx.typeChecker.getTypeFromTypeNode(parameter.type), ctx);
374+
if (nativeType) {
375+
return nativeType.getType();
376+
}
372377
}
373378

374379
throw new UnsupportedError(

0 commit comments

Comments
 (0)