// 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. // Regression test for dart2js that used to infinite loop on // speculatively propagating types. class Bar { noSuchMethod(e) => null; } main() { var d = new Bar(); while (false) { // [input] will change from indexable to unknown: the use line 20 // changes its decision because [a2] changes its type from unknown to // null. var input = ((x) {})(null); var p2 = input.keys.firstWhere(null); var a2 = input.keys.firstWhere(null); print(input[a2] == p2); } }