Files
sdk/tests/language_2/vm/regress_flutter_22131_test.dart
T
Alexander Markov f81709c3e3 [vm/aot] Use field types inferred in TFA and remove inference in precompiler.cc
Type inference for final fields in precompiler.cc is limited and
does not properly handle constant objects.

This change hooks up field types inferred by TFA and removes the
inference in precompiler.cc.

Fixes: https://github.com/flutter/flutter/issues/22131

Change-Id: Ida65cd211074623928bb2a7d48dc58d5e53511b8
Reviewed-on: https://dart-review.googlesource.com/76562
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2018-09-25 23:26:09 +00:00

31 lines
781 B
Dart

// Copyright (c) 2018, 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.
// Verifies that inferred type of a final field takes constant objects into
// account. This is a regression test for
// https://github.com/flutter/flutter/issues/22131.
// VMOptions=--no_background_compilation --optimization_counter_threshold=10
import "package:expect/expect.dart";
class X {
final Map<int, String> data;
const X(this.data);
}
const f = X({1: "ok-f"});
final g = X({1: "ok-g"});
void doTest() {
Expect.equals("ok-f", f.data[1]);
Expect.equals("ok-g", g.data[1]);
}
void main() {
for (int i = 0; i < 20; i++) {
doTest();
}
}