=== tests/cases/conformance/es6/spread/iteratorSpreadInCall4.ts === function foo(s1: symbol, ...s: symbol[]) { } >foo : (s1: symbol, ...s: symbol[]) => void >s1 : symbol >s : symbol[] class SymbolIterator { >SymbolIterator : SymbolIterator next() { >next : () => { value: symbol; done: boolean; } return { >{ value: Symbol(), done: false } : { value: symbol; done: boolean; } value: Symbol(), >value : symbol >Symbol() : symbol >Symbol : SymbolConstructor done: false >done : boolean >false : false }; } [Symbol.iterator]() { >[Symbol.iterator] : () => this >Symbol.iterator : unique symbol >Symbol : SymbolConstructor >iterator : unique symbol return this; >this : this } } foo(...new SymbolIterator); >foo(...new SymbolIterator) : void >foo : (s1: symbol, ...s: symbol[]) => void >...new SymbolIterator : symbol >new SymbolIterator : SymbolIterator >SymbolIterator : typeof SymbolIterator