Files
sdk/tests/language_2/field_optimization3_test.dart
T
Paul Berry 6f9d6965fe Insert implicit downcasts for simple assignments.
Notes on test changes:

- This revealed runtime failures in some tests in
  pkg/front_end/testcases/inference.  Since these tests were never
  meant to exercise runtime behavior in the first place, I just
  changed them so that main() does nothing.

- This revealed runtime failures in some tests in tests/language_2.
  These tests began failing because they used "var" for a fields and
  then later assigned a value to the field that was incompatible with
  the inferred type.  It looks like the intent was for these fields to
  have type "dynamic", so I changed the tests accordingly.

Change-Id: I0ddb2063427b52b5e4be1884fa333e25be4bf4f3
Reviewed-on: https://dart-review.googlesource.com/16881
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2017-10-27 18:27:09 +00:00

40 lines
761 B
Dart

// 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.
import "package:expect/expect.dart";
// Dart test program to test type-based optimization on fields.
class A {
dynamic a = 0;
var b = 0;
foo() {
var c = b + 27;
for (var i = 0; i < 1; i++) {
for (var j = 0; j < 1; j++) {
Expect.equals(50, c + 23);
}
}
return a > 0.2;
}
setA(value) {
a = value;
}
setB(value) {
b = value;
}
operator >(other) => other == 0.2;
}
main() {
var a = new A();
Expect.isFalse(a.foo());
a.setA(new A());
a.setB(0);
Expect.isTrue(a.foo());
}