// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. import "package:expect/expect.dart"; import "dart:convert"; class MySink implements Sink> { List accumulated = []; bool isClosed = false; int add(List list) { accumulated.addAll(list); return list.length; } String close() { isClosed = true; // Returning a value here triggered a bug, where the caller was trying to // pass the value through its 'void' return type. // Example: void close() => _sink.close(); return "done"; } } main() { var mySink = new MySink(); var byteSink = new ByteConversionSink.from(mySink); byteSink.add([1, 2, 3]); byteSink.close(); Expect.listEquals([1, 2, 3], mySink.accumulated); Expect.isTrue(mySink.isClosed); }