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

Unified Diff: sdk/lib/_internal/compiler/implementation/ssa/types.dart

Issue 12211112: Start work on a non-complete type inferrer. Currently only analyzes return types. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 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: sdk/lib/_internal/compiler/implementation/ssa/types.dart
===================================================================
--- sdk/lib/_internal/compiler/implementation/ssa/types.dart (revision 18311)
+++ sdk/lib/_internal/compiler/implementation/ssa/types.dart (working copy)
@@ -26,18 +26,28 @@
isInterfaceType: isInterfaceType);
}
- if (element == compiler.intClass) {
+ JavaScriptBackend backend = compiler.backend;
+ if (element == compiler.intClass || element == backend.jsIntClass) {
return canBeNull ? HType.INTEGER_OR_NULL : HType.INTEGER;
- } else if (element == compiler.numClass) {
+ } else if (element == compiler.numClass
+ || element == backend.jsNumberClass) {
return canBeNull ? HType.NUMBER_OR_NULL : HType.NUMBER;
- } else if (element == compiler.doubleClass) {
+ } else if (element == compiler.doubleClass
+ || element == backend.jsDoubleClass) {
return canBeNull ? HType.DOUBLE_OR_NULL : HType.DOUBLE;
- } else if (element == compiler.stringClass) {
+ } else if (element == compiler.stringClass
+ || element == backend.jsStringClass) {
return canBeNull ? HType.STRING_OR_NULL : HType.STRING;
- } else if (element == compiler.boolClass) {
+ } else if (element == compiler.boolClass
+ || element == backend.jsBoolClass) {
return canBeNull ? HType.BOOLEAN_OR_NULL : HType.BOOLEAN;
- } else if (element == compiler.nullClass) {
+ } else if (element == compiler.nullClass
+ || element == backend.jsNullClass) {
return HType.NULL;
+ } else if (element == backend.jsArrayClass) {
+ return canBeNull
+ ? HType.READABLE_ARRAY.union(HType.NULL)
+ : HType.READABLE_ARRAY;
} else if (!isExact) {
if (element == compiler.listClass
|| Elements.isListSupertype(element, compiler)) {

Powered by Google App Engine
This is Rietveld 408576698