blob: 219da55685a4c15998753dcca1e075928e80d424 [file] [log] [blame]
// Copyright (c) 2011, 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 'compiler_helper.dart';
const String TEST_ONE = r"""
foo(String a) {
// Make sure the string class is registered.
var c = 'foo';
// index into the parameter and move into a loop to make sure we'll get a
// type guard.
for (int i = 0; i < 1; i++) {
print(a[0] + c);
}
return a.length;
}
""";
const String TEST_TWO = r"""
foo() {
return "foo".length;
}
""";
const String TEST_THREE = r"""
foo() {
return r"foo".length;
}
""";
const String TEST_FOUR = r"""
foo() {
return new List().add(2);
}
""";
main() {
String generated = compile(TEST_ONE, entry: 'foo');
Expect.isTrue(generated.contains("a.length"));
generated = compile(TEST_TWO, entry: 'foo');
Expect.isTrue(generated.contains("return 3;"));
generated = compile(TEST_THREE, entry: 'foo');
Expect.isTrue(generated.contains("return 3;"));
generated = compile(TEST_FOUR, entry: 'foo');
Expect.isTrue(generated.contains("push(2);"));
}