X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Ftypes%2FTypes.java;h=5e8c548878e4b10e010cb6fc8f0f7cddc8da18ef;hb=7a7c389f2ffddb4e4170098e4f5facca1fa8b633;hp=5e332742ab29debd7f8c3674c4b2ac38f993448f;hpb=621bec7b0f646eb559d24d01183bc8c5c3bbef1a;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/types/Types.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/types/Types.java index 5e332742a..5e8c54887 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/types/Types.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/types/Types.java @@ -154,11 +154,13 @@ public class Types { * Get the concrete type pointed to by a chain of type meta-variables. */ public static Type canonical(Type type) { - while(type instanceof TMetaVar) { + if(type instanceof TMetaVar) { TMetaVar metaVar = (TMetaVar)type; type = metaVar.ref; if(type == null) return metaVar; + else + return metaVar.ref = canonical(type); } return type; }