blob: e64df54e63486e640689bf1d3b5c9e86e7d720f0 [file] [log] [blame]
// 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.
extension E1 on int show num {}
test1(E1 e1) {
e1.ceil(); // Ok.
e2.floor(); // Ok.
e1.isEven; // Error.
}
extension E2 on int show num hide ceil {}
test2(E2 e2) {
e2.ceil(); // Error.
e2.floor(); // Ok.
e2.isEven; // Error.
}
extension E3 on int hide isEven {}
test3(E3 e3) {
e3.isOdd; // Ok.
e3.isEven; // Error.
}
extension type MyInt on int show num, isEven hide floor {
int get twice => 2 * this;
}
test() {
MyInt m = 42;
m.twice; // OK, in the extension type.
m.isEven; // OK, a shown instance member.
m.ceil(); // OK, a shown instance member.
m.toString(); // OK, an `Object` member.
m.floor(); // Error, hidden.
}
main() {}