| // Copyright (c) 2021, 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. |
| |
| // See `StringPool.dart` for comments. |
| |
| import 'StringPool.dart' show StringPoolBase, sink; |
| import 'version1a.dart'; |
| import 'version1b.dart'; |
| import 'version2.dart'; |
| |
| class V1 extends StringPoolBase { |
| V1() : super('100.pooled'); |
| |
| @override |
| late final functions = version1ax100(); |
| } |
| |
| class V1Copy extends StringPoolBase { |
| V1Copy() : super('100.pooled.copy'); |
| |
| @override |
| late final functions = version1bx100(); |
| } |
| |
| class V2 extends StringPoolBase { |
| V2() : super('100.unpooled'); |
| |
| @override |
| late final functions = version2x100(); |
| } |
| |
| void main() { |
| // Compare results of V1 and V1Copy to ensure both are in the program. |
| V1() |
| ..setup() |
| ..run() |
| ..run(); |
| final sink1a = sink; |
| V1Copy() |
| ..setup() |
| ..run() |
| ..run(); |
| final sink1b = sink; |
| if (sink1a.length != sink1b.length) throw StateError('Not same length'); |
| |
| V2() |
| ..setup() |
| ..run() |
| ..run(); |
| final sink2 = sink; |
| if (sink1a.length != sink2.length) throw StateError('Not same length'); |
| |
| V1().report(); |
| V2().report(); |
| } |