Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(899)

Unified Diff: tests/compiler/dart2js/simple_inferrer_const_closure5_test.dart

Issue 147353010: Infer types for compile-time constant closures. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Update status file and one more test. Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tests/compiler/dart2js/simple_inferrer_const_closure5_test.dart
diff --git a/tests/compiler/dart2js/simple_inferrer_final_field3_test.dart b/tests/compiler/dart2js/simple_inferrer_const_closure5_test.dart
similarity index 52%
copy from tests/compiler/dart2js/simple_inferrer_final_field3_test.dart
copy to tests/compiler/dart2js/simple_inferrer_const_closure5_test.dart
index 592346bd60b9364839ff8191ca0cdc6408a59a3a..46b4e83c375da36d0a6c7975a0a04f9b26848975 100644
--- a/tests/compiler/dart2js/simple_inferrer_final_field3_test.dart
+++ b/tests/compiler/dart2js/simple_inferrer_const_closure5_test.dart
@@ -1,42 +1,45 @@
-// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
+// Copyright (c) 2014, 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.
-// Test that we are analyzing field parameters correctly.
-
import 'package:expect/expect.dart';
import "package:async_helper/async_helper.dart";
import 'compiler_helper.dart';
-import 'parser_helper.dart';
const String TEST = """
-class A {
- final dynamicField;
- A() : dynamicField = 42;
- A.bar(this.dynamicField);
+method(a) { // Called only via [foo2] with a small integer.
+ return a;
+}
+
+const foo = method;
+
+returnInt() {
+ return foo(54);
}
main() {
- new A();
- new A.bar('foo');
+ returnInt();
+ method(55.2);
}
""";
+
void main() {
Uri uri = new Uri(scheme: 'source');
var compiler = compilerFor(TEST, uri);
asyncTest(() => compiler.runCompiler(uri).then((_) {
var typesInferrer = compiler.typesTask.typesInferrer;
- checkFieldTypeInClass(String className, String fieldName, type) {
- var cls = findElement(compiler, className);
- var element = cls.lookupLocalMember(fieldName);
+ checkArgument(String functionName, type) {
+ var functionElement = findElement(compiler, functionName);
+ var signature = functionElement.functionSignature;
+ var element = signature.requiredParameters.first;
Expect.equals(type,
- typesInferrer.getTypeOfElement(element).simplify(compiler));
+ typesInferrer.getTypeOfElement(element).simplify(compiler),
+ functionName);
}
- checkFieldTypeInClass('A', 'dynamicField',
- findTypeMask(compiler, 'Interceptor', 'nonNullSubclass'));
+ checkArgument('method', compiler.typesTask.numType);
}));
}

Powered by Google App Engine
This is Rietveld 408576698