93251ee241
fixes https://github.com/dart-lang/dev_compiler/issues/471 Changes here are: * Analyzer now infers list/map literals * Analyzer changed how isPotentiallyMutated* APIs work, so we need to track current function * Another fix to arrow functions. We shouldn't skip generating covariant arg checks. If there were any, we use `=> { block }` form rather than `=> expr` form. R=vsm@google.com Review URL: https://codereview.chromium.org/1757343002 .
30 lines
738 B
Dart
30 lines
738 B
Dart
// 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 hit an assertion in the
|
|
// container tracer visitor in the presence of cascaded calls.
|
|
|
|
import "package:expect/expect.dart";
|
|
|
|
class A {
|
|
var foo;
|
|
|
|
add(list) {
|
|
foo = list;
|
|
list.add(2.5);
|
|
return this;
|
|
}
|
|
|
|
call(arg) => arg;
|
|
}
|
|
|
|
main() {
|
|
// Strong mode change: add explicit <dynamic>
|
|
var foo = <dynamic>[42, 0];
|
|
var a = new A();
|
|
var bar = a..add(foo)('WHAT');
|
|
a..foo[0] = new Object();
|
|
Expect.throws(() => foo[0] + 2, (e) => e is NoSuchMethodError);
|
|
}
|