@syntest/cfg
Advanced tools
Comparing version 0.3.0-beta.18 to 0.3.0-beta.19
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.contractControlFlowProgram = exports.edgeContraction = void 0; | ||
/* | ||
* Copyright 2020-2023 Delft University of Technology and SynTest contributors | ||
* | ||
* This file is part of SynTest Framework - SynTest Core. | ||
* | ||
* Licensed under the Apache License, Version 2.0 (the "License"); | ||
* you may not use this file except in compliance with the License. | ||
* You may obtain a copy of the License at | ||
* | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software | ||
* distributed under the License is distributed on an "AS IS" BASIS, | ||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
* See the License for the specific language governing permissions and | ||
* limitations under the License. | ||
*/ | ||
const logging_1 = require("@syntest/logging"); | ||
const diagnostics_1 = require("../diagnostics"); | ||
@@ -50,2 +68,11 @@ const ContractedControlFlowGraph_1 = require("../graph/ContractedControlFlowGraph"); | ||
} while (changed); | ||
// safety check | ||
for (const edge of controlFlowGraph.edges) { | ||
const outgoingFromSource = controlFlowGraph.getOutgoingEdges(edge.source); | ||
const incomingToTarget = controlFlowGraph.getIncomingEdges(edge.target); | ||
if (outgoingFromSource.length > 1 && incomingToTarget.length > 1) { | ||
(0, logging_1.getLogger)("edgeContration").warn((0, diagnostics_1.shouldNeverHappen)(`Missing placeholder node: \n${edge.source}\n${edge.target}`)); | ||
// throw new Error(shouldNeverHappen(`Missing placeholder node: \n${edge.source}\n${edge.target}`)) | ||
} | ||
} | ||
return new ContractedControlFlowGraph_1.ContractedControlFlowGraph(controlFlowGraph.entry, controlFlowGraph.successExit, controlFlowGraph.errorExit, controlFlowGraph.nodes, controlFlowGraph.edges, original, nodeMapping); | ||
@@ -52,0 +79,0 @@ } |
{ | ||
"name": "@syntest/cfg", | ||
"version": "0.3.0-beta.18", | ||
"version": "0.3.0-beta.19", | ||
"description": "A Control Flow Graph package", | ||
@@ -61,3 +61,3 @@ "keywords": [ | ||
}, | ||
"gitHead": "45270a3a68b05e2ac9b01aa6c0de71c229116964" | ||
"gitHead": "1b934ca31fafb3fdfa851d2685d28d25f6d737f9" | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
68678
888