X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.document.server%2Fsrc%2Forg%2Fsimantics%2Fdocument%2Fserver%2Frequest%2FServerSCLValueRequest.java;h=b4d4d2c1fc2970b567541240a9c706a63b502262;hb=92e01176876c831a7abfaad8ffeaf87bd4bfd82d;hp=e6cdf6ff5b43712b098594d172a91b7595de63cb;hpb=331406ad9dfcb7332a645ddc7029a863ef064d2f;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.document.server/src/org/simantics/document/server/request/ServerSCLValueRequest.java b/bundles/org.simantics.document.server/src/org/simantics/document/server/request/ServerSCLValueRequest.java index e6cdf6ff5..b4d4d2c1f 100644 --- a/bundles/org.simantics.document.server/src/org/simantics/document/server/request/ServerSCLValueRequest.java +++ b/bundles/org.simantics.document.server/src/org/simantics/document/server/request/ServerSCLValueRequest.java @@ -1,6 +1,5 @@ package org.simantics.document.server.request; -import java.util.ArrayList; import java.util.Map; import org.simantics.databoard.Bindings; @@ -29,8 +28,6 @@ import org.simantics.scl.compiler.environment.Environments; import org.simantics.scl.compiler.environment.specification.EnvironmentSpecification; import org.simantics.scl.compiler.runtime.RuntimeEnvironment; import org.simantics.scl.compiler.top.SCLExpressionCompilationException; -import org.simantics.scl.compiler.types.TMetaVar; -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.kinds.Kinds; @@ -91,8 +88,7 @@ public class ServerSCLValueRequest extends AbstractExpressionCompilationRequest< SCLContext sclContext = SCLContext.getCurrent(); Object oldGraph = sclContext.get("graph"); try { - Function1 exp = graph.syncRequest(new ServerSCLValueRequest(graph, context), - TransientCacheListener.>instance()); + Function1 exp = compile(graph, context); sclContext.put("graph", graph); return exp.apply(context); } catch (DatabaseException e) { @@ -103,6 +99,10 @@ public class ServerSCLValueRequest extends AbstractExpressionCompilationRequest< sclContext.put("graph", oldGraph); } } + + public static Function1 compile(ReadGraph graph, Variable context) throws DatabaseException { + return graph.syncRequest(new ServerSCLValueRequest(graph, context), TransientCacheListener.>instance()); + } @Override protected String getExpressionText(ReadGraph graph) @@ -208,9 +208,7 @@ public class ServerSCLValueRequest extends AbstractExpressionCompilationRequest< protected Type getExpectedType(ReadGraph graph, CompilationContext context) throws DatabaseException { if(possibleExpectedValueType != null) { try { - Type type = Environments.getType(context.runtimeEnvironment.getEnvironment(), possibleExpectedValueType); - type = Types.instantiate(Types.forAll(Types.freeVars(type).toArray(new TVar[0]), type), new ArrayList()); - return type; + return Environments.getType(context.runtimeEnvironment.getEnvironment(), possibleExpectedValueType); } catch (SCLExpressionCompilationException e) { LOGGER.error("Could not get type for " + String.valueOf(possibleExpectedValueType), e); }