public static PatternNode GetTargetPlusInlined(PatternEdge edge, PatternGraph patternGraph, IDictionary<PatternNode, PatternNode> originalToInlinedIndependent) { PatternNode target = patternGraph.GetTargetPlusInlined(edge); if(edge.OriginalIndependentElement != null && target == null) { PatternNode targetOriginal = edge.OriginalIndependentElement.pointOfDefinition.GetTargetPlusInlined((PatternEdge)edge.OriginalIndependentElement); if(originalToInlinedIndependent.ContainsKey(targetOriginal)) target = originalToInlinedIndependent[targetOriginal]; else target = targetOriginal; // not declared in independent itself, but in some parent } return target; }
PatternNode GetTargetPlusInlined(PatternEdge edge, PatternGraph patternGraph, IDictionary<PatternNode, PatternNode> originalToInlinedIndependent) { PatternNode target = patternGraph.GetTargetPlusInlined(edge); if(edge.OriginalIndependentElement != null && target == null) { PatternNode targetOriginal = edge.OriginalIndependentElement.pointOfDefinition.GetTargetPlusInlined((PatternEdge)edge.OriginalIndependentElement); target = originalToInlinedIndependent[targetOriginal]; } return target; }