protected override void GenerateFields() { // Add a field: T current currentField = F.SynthesizeField(elementType, GeneratedNames.MakeIteratorCurrentBackingFieldName()); // if it is an iterable, add a field: int initialThreadId var threadType = F.Compilation.GetWellKnownType(WellKnownType.System_Threading_Thread); initialThreadIdField = isEnumerable && (object)threadType != null && !threadType.IsErrorType() ? F.SynthesizeField(F.SpecialType(SpecialType.System_Int32), GeneratedNames.MakeIteratorCurrentThreadIdName()) : null; }