aboutsummaryrefslogtreecommitdiffstats
path: root/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/GenericTypeIndexer.xtend
diff options
context:
space:
mode:
Diffstat (limited to 'Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/GenericTypeIndexer.xtend')
-rw-r--r--Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/GenericTypeIndexer.xtend6
1 files changed, 6 insertions, 0 deletions
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/GenericTypeIndexer.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/GenericTypeIndexer.xtend
index d11b5960..d6a15c1a 100644
--- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/GenericTypeIndexer.xtend
+++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/GenericTypeIndexer.xtend
@@ -155,6 +155,11 @@ class GenericTypeIndexer extends TypeIndexer {
155 find supertypeStar(type,definedSupertype); 155 find supertypeStar(type,definedSupertype);
156 TypeDefinition(definedSupertype); 156 TypeDefinition(definedSupertype);
157 } 157 }
158
159 private pattern scopeDisallowsNewElementsFromType(typeInterpretation:PartialComplexTypeInterpretation) {
160 Scope.targetTypeInterpretation(scope,typeInterpretation);
161 Scope.maxNewElements(scope,0);
162 }
158 ''' 163 '''
159 164
160 public override generateInstanceOfQueries(LogicProblem problem, PartialInterpretation emptySolution,TypeAnalysisResult typeAnalysisResult) { 165 public override generateInstanceOfQueries(LogicProblem problem, PartialInterpretation emptySolution,TypeAnalysisResult typeAnalysisResult) {
@@ -190,6 +195,7 @@ class GenericTypeIndexer extends TypeIndexer {
190 Type.name(type,"«type.name»"); 195 Type.name(type,"«type.name»");
191 find possibleDynamicType(problem,interpretation,dynamic,element); 196 find possibleDynamicType(problem,interpretation,dynamic,element);
192 find supertypeStar(dynamic,type); 197 find supertypeStar(dynamic,type);
198 neg find scopeDisallowsNewElementsFromType(dynamic);
193 } 199 }
194 ''' 200 '''
195 } 201 }