public override bool UnionEquals(Namespace ns) { SequenceInfo si = ns as SequenceInfo; if (si == null) { return(false); } return(si._indexTypes.Length == _indexTypes.Length); }
private static List <Type>[] GetSequenceTypes(SequenceInfo seq) { List <Type>[] types = new List <Type> [seq.IndexTypes.Length]; for (int i = 0; i < types.Length; i++) { foreach (var seqIndexType in seq.IndexTypes[i]) { if (seqIndexType is BuiltinClassInfo) { if (types[i] == null) { types[i] = new List <Type>(); } types[i].Add(seqIndexType.PythonType.__clrtype__()); } } } return(types); }
private ISet<Namespace> MakeSequence(ExpressionEvaluator ee, Node node) { ISet<Namespace> result; if (!ee.GlobalScope.NodeVariables.TryGetValue(node, out result)) { var seqItems = ((SequenceExpression)node).Items; var indexValues = new ISet<Namespace>[seqItems.Count]; for (int i = 0; i < seqItems.Count; i++) { indexValues[i] = Evaluate(seqItems[i]); } ISet<Namespace> sequence; if (node is ListExpression) { sequence = new ListInfo(indexValues, _unit.ProjectState._listType).SelfSet; } else { Debug.Assert(node is TupleExpression); sequence = new SequenceInfo(indexValues, _unit.ProjectState._tupleType).SelfSet; } ee.GlobalScope.NodeVariables[node] = result = sequence; } return result; }
private static List<Type>[] GetSequenceTypes(SequenceInfo seq) { List<Type>[] types = new List<Type>[seq.IndexTypes.Length]; for (int i = 0; i < types.Length; i++) { foreach (var seqIndexType in seq.IndexTypes[i]) { if (seqIndexType is BuiltinClassInfo) { if (types[i] == null) { types[i] = new List<Type>(); } types[i].Add(seqIndexType.PythonType.__clrtype__()); } } } return types; }