// Copyright (c) 2019, 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. // @dart=2.9 extension _PrivateExtension on String { int publicMethod1() => 42; int _privateMethod1() => 87; static int publicStaticMethod1() => 24; static int _privateStaticMethod1() => 78; test1() { expect(42, publicMethod1()); expect(87, _privateMethod1()); expect(24, publicStaticMethod1()); expect(78, _privateStaticMethod1()); } } extension PublicExtension on String { int publicMethod2() => 123; int _privateMethod2() => 237; static int publicStaticMethod2() => 321; static int _privateStaticMethod2() => 732; test2() { expect(123, publicMethod2()); expect(237, _privateMethod2()); expect(321, publicStaticMethod2()); expect(732, _privateStaticMethod2()); } } extension on String { int publicMethod3() => 473; int _privateMethod3() => 586; static int publicStaticMethod3() => 374; static int _privateStaticMethod3() => 685; test3() { expect(473, publicMethod3()); expect(586, _privateMethod3()); expect(374, publicStaticMethod3()); expect(685, _privateStaticMethod3()); } } test() { expect(42, "".publicMethod1()); expect(87, ""._privateMethod1()); expect(123, "".publicMethod2()); expect(237, ""._privateMethod2()); expect(473, "".publicMethod3()); expect(586, ""._privateMethod3()); expect(42, _PrivateExtension("").publicMethod1()); expect(87, _PrivateExtension("")._privateMethod1()); expect(123, PublicExtension("").publicMethod2()); expect(237, PublicExtension("")._privateMethod2()); expect(24, _PrivateExtension.publicStaticMethod1()); expect(78, _PrivateExtension._privateStaticMethod1()); expect(321, PublicExtension.publicStaticMethod2()); expect(732, PublicExtension._privateStaticMethod2()); "".test1(); "".test2(); "".test3(); } expect(expected, actual) { if (expected != actual) { throw 'Mismatch: expected=$expected, actual=$actual'; } }