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