// Copyright (c) 2013, 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 Foo<T> {}

var a = [new Object(), 42];

bar(x, y) {}

main() {
  while (false) {
    // Comply to inlining heuristics.
    // Use an unresolved prefix.
    var foo =
      Unresolved.
//    ^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.UNDEFINED_IDENTIFIER
// [cfe] Getter not found: 'Unresolved'.
        bar(
      // Make dart2js generate a call to setRuntimeTypeInfo.
      new Foo<int>(),
      // Use a one-shot interceptor.
      a[0].toString());

    // Do an is test on `Foo` to require setRuntimeTypeInfo.
    print(foo is Foo<int>);
  }
}
