blob: 5431d36865100d1e95effec507f8f74fb21ee0c5 [file] [log] [blame]
// Copyright (c) 2012, 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.
// Regression test for http://dartbug.com/6259. This test used to fail
// on dart2js because class A does not know [A.document] is a target for
// the call [:obj.document:] in the [main] method. Therefore, dart2js
// would not compile [A.document].
class A {
get document => 42;
}
abstract class B {
abstract get document;
}
class C extends A implements B {
}
int inscrutable(int x) => x == 0 ? 0 : x | inscrutable(x & (x - 1));
void main() {
var tab = [new Object(), new C()];
var obj = tab[inscrutable(1)];
int res = 0;
if (obj is B) res = obj.document;
Expect.equals(42, res);
}