// 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.


// Test that it is an error to do what was once allowed as an "implicit
// downcast."
main() {
  num asNum = 1;
  Object asObject = 1;
  dynamic asDynamic = 1;
  int asInt1 = asNum; //# 01: compile-time error
  double asDouble1 = asNum; //# 02: compile-time error
  int asInt2 = asObject; //# 03: compile-time error
  double asDouble2 = asObject; //# 04: compile-time error
  String asString1 = asObject; //# 05: compile-time error
  int asInt3 = asDynamic; //# 06: ok
}
