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

Unified Diff: sdk/lib/_internal/compiler/implementation/js_backend/backend.dart

Issue 19097003: Support new malformed types semantics. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 5 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/js_backend/backend.dart
diff --git a/sdk/lib/_internal/compiler/implementation/js_backend/backend.dart b/sdk/lib/_internal/compiler/implementation/js_backend/backend.dart
index 2f9027256c28141316bef0ff9df50c1c58f8176a..76e431bf56d9959d1bdbbea95386204c15fb372a 100644
--- a/sdk/lib/_internal/compiler/implementation/js_backend/backend.dart
+++ b/sdk/lib/_internal/compiler/implementation/js_backend/backend.dart
@@ -33,7 +33,6 @@ class CheckedModeHelper {
void generateAdditionalArguments(SsaCodeGenerator codegen,
HTypeConversion node,
List<jsAst.Expression> arguments) {
- assert(!node.typeExpression.isMalformed);
// No additional arguments needed.
}
}
@@ -45,7 +44,6 @@ class PropertyCheckedModeHelper extends CheckedModeHelper {
HTypeConversion node,
List<jsAst.Expression> arguments) {
DartType type = node.typeExpression;
- assert(!type.isMalformed);
String additionalArgument = codegen.backend.namer.operatorIsType(type);
arguments.add(js.string(additionalArgument));
}
@@ -114,8 +112,8 @@ class MalformedCheckedModeHelper extends CheckedModeHelper {
HTypeConversion node,
List<jsAst.Expression> arguments) {
DartType type = node.typeExpression;
- assert(type.isMalformed);
- String reasons = Types.fetchReasonsFromMalformedType(type);
+ assert(type.containsAmbiguousTypes);
+ String reasons = Types.fetchReasonsFromAmbiguousType(type);
arguments.add(js.string('$type'));
// TODO(johnniwinther): Handle escaping correctly.
arguments.add(js.string(reasons));
@@ -807,11 +805,11 @@ class JavaScriptBackend extends Backend {
// We also need the native variant of the check (for DOM types).
helper = getNativeCheckedModeHelper(type, typeCast: false);
if (helper != null) world.addToWorkList(helper.getElement(compiler));
- if (type.isMalformed) {
+ if (type.containsAmbiguousTypes) {
enqueueInResolution(getThrowMalformedSubtypeError(), elements);
return;
}
- } else if (type.isMalformed) {
+ } else if (type.containsAmbiguousTypes) {
registerThrowRuntimeError(elements);
return;
}
@@ -1074,7 +1072,7 @@ class JavaScriptBackend extends Backend {
Element element = type.element;
bool nativeCheck = nativeCheckOnly ||
emitter.nativeEmitter.requiresNativeIsCheck(element);
- if (type.isMalformed) {
+ if (type.containsAmbiguousTypes) {
// Check for malformed types first, because the type may be a list type
// with a malformed argument type.
if (nativeCheckOnly) return null;

Powered by Google App Engine
This is Rietveld 408576698