Skip to content
Snippets Groups Projects
Commit a03b8fd9 authored by Sebastian Krings's avatar Sebastian Krings
Browse files

Merge branch 'develop' into rodin3

parents 25c840cd fd435a87
No related branches found
No related tags found
No related merge requests found
...@@ -13,6 +13,7 @@ import java.util.LinkedList; ...@@ -13,6 +13,7 @@ import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.apache.commons.lang.StringUtils;
import org.eclipse.core.runtime.Assert; import org.eclipse.core.runtime.Assert;
import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.CoreException;
import org.eventb.core.IContextRoot; import org.eventb.core.IContextRoot;
...@@ -62,6 +63,7 @@ import de.prob.core.translator.TranslationFailedException; ...@@ -62,6 +63,7 @@ import de.prob.core.translator.TranslationFailedException;
import de.prob.eventb.translator.internal.EProofStatus; import de.prob.eventb.translator.internal.EProofStatus;
import de.prob.eventb.translator.internal.ProofObligation; import de.prob.eventb.translator.internal.ProofObligation;
import de.prob.eventb.translator.internal.SequentSource; import de.prob.eventb.translator.internal.SequentSource;
import de.prob.logging.Logger;
public final class ContextTranslator extends AbstractComponentTranslator { public final class ContextTranslator extends AbstractComponentTranslator {
...@@ -181,12 +183,12 @@ public final class ContextTranslator extends AbstractComponentTranslator { ...@@ -181,12 +183,12 @@ public final class ContextTranslator extends AbstractComponentTranslator {
} }
private void collectProofInfo(IEventBRoot origin) throws RodinDBException { private void collectProofInfo(IEventBRoot origin) throws RodinDBException {
List<String> bugs = new LinkedList<String>();
try {
IPSRoot proofStatus = origin.getPSRoot(); IPSRoot proofStatus = origin.getPSRoot();
IPSStatus[] statuses = proofStatus.getStatuses(); IPSStatus[] statuses = proofStatus.getStatuses();
List<String> bugs = new LinkedList<String>();
for (IPSStatus status : statuses) { for (IPSStatus status : statuses) {
final int confidence = status.getConfidence(); final int confidence = status.getConfidence();
boolean broken = status.isBroken(); boolean broken = status.isBroken();
...@@ -222,6 +224,16 @@ public final class ContextTranslator extends AbstractComponentTranslator { ...@@ -222,6 +224,16 @@ public final class ContextTranslator extends AbstractComponentTranslator {
} }
addProof(new ProofObligation(origin, s, name, pstatus)); addProof(new ProofObligation(origin, s, name, pstatus));
} }
} catch (RodinDBException e) {
bugs.add(e.getLocalizedMessage());
}
if (!bugs.isEmpty()) {
String message = "Translation incomplete due to a Bug in Rodin. This does not affect correctness of the Animation/Model Checking but can decrease its performance. Skipped discharged information about: "
+ StringUtils.join(bugs, ",");
Logger.notifyUser(message);
}
} }
......
...@@ -171,13 +171,12 @@ public class ModelTranslator extends AbstractComponentTranslator { ...@@ -171,13 +171,12 @@ public class ModelTranslator extends AbstractComponentTranslator {
addUnitPragmas(machine.getSCVariables()); addUnitPragmas(machine.getSCVariables());
} }
private void collectProofInfo() throws RodinDBException { private void collectProofInfo() {
List<String> bugs = new LinkedList<String>();
try {
IPSRoot proofStatus = machine.getPSRoot(); IPSRoot proofStatus = machine.getPSRoot();
IPSStatus[] statuses = proofStatus.getStatuses(); IPSStatus[] statuses = proofStatus.getStatuses();
List<String> bugs = new LinkedList<String>();
for (IPSStatus status : statuses) { for (IPSStatus status : statuses) {
final int confidence = status.getConfidence(); final int confidence = status.getConfidence();
boolean broken = status.isBroken(); boolean broken = status.isBroken();
...@@ -221,6 +220,9 @@ public class ModelTranslator extends AbstractComponentTranslator { ...@@ -221,6 +220,9 @@ public class ModelTranslator extends AbstractComponentTranslator {
} }
addProof(new ProofObligation(origin, s, name, pstatus)); addProof(new ProofObligation(origin, s, name, pstatus));
} }
} catch (Exception e) {
bugs.add(e.getLocalizedMessage());
}
if (!bugs.isEmpty()) { if (!bugs.isEmpty()) {
String message = "Translation incomplete due to a Bug in Rodin. This does not affect correctness of the Animation/Model Checking but can decrease its performance. Skipped discharged information about: " String message = "Translation incomplete due to a Bug in Rodin. This does not affect correctness of the Animation/Model Checking but can decrease its performance. Skipped discharged information about: "
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment