blob: 711ee6181ce4b825df89da4994e55f8127a67001 [file] [log] [blame]
// Copyright (c) 2017, 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
class A {
var field;
}
class B {
var field;
}
class C {
operator ==(x) => false;
}
class X implements A, B {
var field;
}
void useAsA(A object) {
var _ = object.field;
}
void useAsB(B object) {
var _ = object.field;
escape(object);
}
void escape(x) {
x ??= "";
x ??= 45;
if (x is! int && x is! String) {
x.field = 45;
}
}
main() {
// escape("");
// escape(45);
var object = new X();
useAsA(new A());
useAsA(object);
useAsB(new B());
useAsB(object);
}