From 23ccbae4e0ede91b173fcc30e7779c1146adb3cd Mon Sep 17 00:00:00 2001 From: OszkarSemerath Date: Fri, 10 Aug 2018 19:49:23 +0200 Subject: Fixing indexing symbolic prototype objects as untyped EObjects --- .../viatrasolver/logic2viatra/patterns/GenericTypeIndexer.xtend | 2 ++ .../viatrasolver/logic2viatra/patterns/PatternGenerator.xtend | 2 +- .../patterns/TypeIndexerWithPreliminaryTypeAnalysis.xtend | 4 ++++ 3 files changed, 7 insertions(+), 1 deletion(-) (limited to 'Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu') 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 dce04a7f..d11b5960 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 @@ -116,6 +116,8 @@ class GenericTypeIndexer extends TypeIndexer { // because there is no definition, dynamic covers all definition // 4: T is not abstract Type.isAbstract(dynamic,false); + // 5. element is not primitive datatype + neg find isPrimitive(element); } /** diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PatternGenerator.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PatternGenerator.xtend index 0fed5c76..a2b11632 100644 --- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PatternGenerator.xtend +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PatternGenerator.xtend @@ -187,7 +187,7 @@ class PatternGenerator { } private pattern elementCloseWorld(element:DefinedElement) { - PartialInterpretation.newElements(i,element); + PartialInterpretation.openWorldElements(i,element); PartialInterpretation.maxNewElements(i,0); } or { Scope.targetTypeInterpretation(scope,interpretation); diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/TypeIndexerWithPreliminaryTypeAnalysis.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/TypeIndexerWithPreliminaryTypeAnalysis.xtend index fde5f4b6..67a886d1 100644 --- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/TypeIndexerWithPreliminaryTypeAnalysis.xtend +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/TypeIndexerWithPreliminaryTypeAnalysis.xtend @@ -86,6 +86,10 @@ class TypeIndexerWithPreliminaryTypeAnalysis extends TypeIndexer{ } or { find interpretation(problem,interpretation); PartialInterpretation.openWorldElements(interpretation,element); + «FOR inhibitorType : inhibitorTypes» + neg «referInstanceOf(inhibitorType,Modality.MUST,"element")» + «ENDFOR» + neg find isPrimitive(element); } or «ENDIF» { «referInstanceOf(type,Modality.MUST,"element")» } -- cgit v1.2.3-54-g00ecf