diff options
Diffstat (limited to 'source/slang/lower.cpp')
| -rw-r--r-- | source/slang/lower.cpp | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/source/slang/lower.cpp b/source/slang/lower.cpp index 85f19f14c..6d848062c 100644 --- a/source/slang/lower.cpp +++ b/source/slang/lower.cpp @@ -708,6 +708,12 @@ struct LoweringVisitor return result; } + RefPtr<Type> visitIRBasicBlockType(IRBasicBlockType* type) + { + return type; + } + + RefPtr<Type> visitErrorType(ErrorType* type) { return type; @@ -732,9 +738,16 @@ struct LoweringVisitor RefPtr<Type> visitFuncType(FuncType* type) { - RefPtr<FuncType> loweredType = getFuncType( - getSession(), - translateDeclRef(DeclRef<Decl>(type->declRef)).As<CallableDecl>()); + RefPtr<FuncType> loweredType = new FuncType(); + loweredType->resultType = lowerType(type->resultType); + for (auto paramType : type->paramTypes) + { + auto loweredParamType = lowerType(paramType); + + // TODO: it seems like this step needs to scalarize + // in the case where a parameter type is a tuple... + loweredType->paramTypes.Add(loweredParamType); + } return loweredType; } |
