Skip to content

Commit

Permalink
wip: futile attempts at more work ✨
Browse files Browse the repository at this point in the history
  • Loading branch information
Ellpeck committed Jul 4, 2024
1 parent 687f33f commit 73d3c2f
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 4 deletions.
5 changes: 4 additions & 1 deletion src/slicing/static/slice-call.ts
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,10 @@ export function sliceForCall(current: NodeToSlice, callerInfo: DataflowGraphVert
}

for(const def of defs.filter(d => d.nodeId !== BuiltIn)) {
queue.add(def.nodeId, baseEnvironment, baseEnvPrint, current.onlyForSideEffects)
// we don't add other nodes used by the function to the queue when forward slicing!
if(!forward) {
queue.add(def.nodeId, baseEnvironment, baseEnvPrint, current.onlyForSideEffects)
}
if(nodesToSlice.has(def.nodeId)) {
slicedNodeInFunction = true
}
Expand Down
6 changes: 3 additions & 3 deletions src/slicing/static/static-slicer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ export function staticForwardSlicing(graph: DataflowGraph, ast: NormalizedAst, c
}
}

traverseEdges(ingoingEdges, queue, baseEnvironment, baseEnvFingerprint)
traverseEdges(currentVertex, ingoingEdges, queue, baseEnvironment, baseEnvFingerprint, true)
}

return { ...queue.status(), decodedCriteria }
Expand Down Expand Up @@ -89,7 +89,7 @@ export function staticSlicing(graph: DataflowGraph, ast: NormalizedAst, criteria
}
}

traverseEdges(currentEdges, queue, baseEnvironment, baseEnvFingerprint)
traverseEdges(currentVertex, currentEdges, queue, baseEnvironment, baseEnvFingerprint)
}

return { ...queue.status(), decodedCriteria }
Expand All @@ -112,7 +112,7 @@ function addCriteriaToQueue(decodedCriteria: DecodedCriteria, ast: NormalizedAst
return { nodesToSlice, minDepth }
}

function traverseEdges(currentEdges: Map<NodeId, DataflowGraphEdge>, queue: VisitingQueue, baseEnvironment: REnvironmentInformation, baseEnvFingerprint: string) {
function traverseEdges(currentVertex: DataflowGraphVertexInfo, currentEdges: Map<NodeId, DataflowGraphEdge>, queue: VisitingQueue, baseEnvironment: REnvironmentInformation, baseEnvFingerprint: string, forward = false) {

Check failure on line 115 in src/slicing/static/static-slicer.ts

View workflow job for this annotation

GitHub Actions / Full Test Suite / Linting (Full) / flowr-action

'forward' is assigned a value but never used. Allowed unused vars must match /^_/u

Check failure on line 115 in src/slicing/static/static-slicer.ts

View workflow job for this annotation

GitHub Actions / Linting (Local) / flowr-action

'forward' is assigned a value but never used. Allowed unused vars must match /^_/u
for(const [target, { types }] of currentEdges) {
if(edgeIncludesType(types, EdgeType.NonStandardEvaluation)) {
continue
Expand Down

0 comments on commit 73d3c2f

Please sign in to comment.