X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Felaboration%2Fjava%2FFreezeMVector.java;h=34d638bad02ca95c007e004bfd229f3f81c90f31;hb=refs%2Fchanges%2F38%2F238%2F2;hp=4b7020a8ab70fa0bba583fb6b9c14c272c8f6d9b;hpb=969bd23cab98a79ca9101af33334000879fb60c5;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/java/FreezeMVector.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/java/FreezeMVector.java index 4b7020a8a..34d638bad 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/java/FreezeMVector.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/java/FreezeMVector.java @@ -1,35 +1,35 @@ -package org.simantics.scl.compiler.elaboration.java; - -import org.simantics.scl.compiler.common.exceptions.InternalCompilerError; -import org.simantics.scl.compiler.constants.FunctionValue; -import org.simantics.scl.compiler.internal.codegen.references.Val; -import org.simantics.scl.compiler.internal.codegen.utils.MethodBuilder; -import org.simantics.scl.compiler.types.TVar; -import org.simantics.scl.compiler.types.Type; -import org.simantics.scl.compiler.types.Types; -import org.simantics.scl.compiler.types.exceptions.MatchException; -import org.simantics.scl.compiler.types.kinds.Kinds; - -public class FreezeMVector extends FunctionValue { - private static final TVar A = Types.var(Kinds.STAR); - - public FreezeMVector() { - super(new TVar[] {A}, Types.PROC, Types.vector(A), Types.mvector(A)); - } - - @Override - public Type applyExact(MethodBuilder mb, Val[] parameters) { - Val vectorVar = parameters[0]; - - vectorVar.push(mb); - - try { - Type elementType = Types.canonical( - Types.matchApply(Types.MVECTOR, vectorVar.getType())); - return Types.vector(elementType); - } catch (MatchException e) { - throw new InternalCompilerError(e); - } - } - -} +package org.simantics.scl.compiler.elaboration.java; + +import org.simantics.scl.compiler.common.exceptions.InternalCompilerError; +import org.simantics.scl.compiler.constants.FunctionValue; +import org.simantics.scl.compiler.internal.codegen.references.Val; +import org.simantics.scl.compiler.internal.codegen.utils.MethodBuilder; +import org.simantics.scl.compiler.types.TVar; +import org.simantics.scl.compiler.types.Type; +import org.simantics.scl.compiler.types.Types; +import org.simantics.scl.compiler.types.exceptions.MatchException; +import org.simantics.scl.compiler.types.kinds.Kinds; + +public class FreezeMVector extends FunctionValue { + private static final TVar A = Types.var(Kinds.STAR); + + public FreezeMVector() { + super(new TVar[] {A}, Types.PROC, Types.vector(A), Types.mvector(A)); + } + + @Override + public Type applyExact(MethodBuilder mb, Val[] parameters) { + Val vectorVar = parameters[0]; + + vectorVar.push(mb); + + try { + Type elementType = Types.canonical( + Types.matchApply(Types.MVECTOR, vectorVar.getType())); + return Types.vector(elementType); + } catch (MatchException e) { + throw new InternalCompilerError(e); + } + } + +}