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

Unified Diff: pkg/compiler/lib/src/resolution/members.dart

Issue 2456643006: More functionality in kernel_impact. (Closed)
Patch Set: Fix errors. Created 4 years, 1 month 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
« no previous file with comments | « pkg/compiler/lib/src/resolution/enum_creator.dart ('k') | pkg/compiler/lib/src/resolution/registry.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/compiler/lib/src/resolution/members.dart
diff --git a/pkg/compiler/lib/src/resolution/members.dart b/pkg/compiler/lib/src/resolution/members.dart
index 86465be722e11a3ce3460b1ccc53dc890a6471ac..c009b7a6fefa6a02c3bdcc38e246a253ccc9d55b 100644
--- a/pkg/compiler/lib/src/resolution/members.dart
+++ b/pkg/compiler/lib/src/resolution/members.dart
@@ -456,14 +456,9 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
resolver.constantCompiler.compileConstant(parameter);
});
});
- if (!functionSignature.returnType.isDynamic) {
- registry.registerTypeUse(
- new TypeUse.checkedModeCheck(functionSignature.returnType));
- }
+ registry.registerCheckedModeCheck(functionSignature.returnType);
functionSignature.forEachParameter((ParameterElement element) {
- if (!element.type.isDynamic) {
- registry.registerTypeUse(new TypeUse.checkedModeCheck(element.type));
- }
+ registry.registerCheckedModeCheck(element.type);
});
}
@@ -2355,6 +2350,8 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
if (result.kind == ResultKind.PREFIX) {
return handlePrefixSend(node, name, result);
} else if (node.isConditional) {
+ registry.registerConstantLiteral(new NullConstantExpression());
+ registry.registerDynamicUse(new DynamicUse(Selectors.equals, null));
return handleDynamicAccessSemantics(
node, name, new DynamicAccess.ifNotNullProperty(name));
} else {
@@ -2388,6 +2385,8 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
if (result.kind == ResultKind.PREFIX) {
return handlePrefixSendSet(node, name, result);
} else if (node.isConditional) {
+ registry.registerConstantLiteral(new NullConstantExpression());
+ registry.registerDynamicUse(new DynamicUse(Selectors.equals, null));
return handleDynamicUpdateSemantics(
node, name, null, new DynamicAccess.ifNotNullProperty(name));
} else {
@@ -4080,8 +4079,8 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
DartType type = typeResolver.resolveTypeAnnotation(this, node,
malformedIsError: malformedIsError,
deferredIsMalformed: deferredIsMalformed);
- if (registerCheckedModeCheck && !type.isDynamic) {
- registry.registerTypeUse(new TypeUse.checkedModeCheck(type));
+ if (registerCheckedModeCheck) {
+ registry.registerCheckedModeCheck(type);
}
return type;
}
@@ -4607,10 +4606,11 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
}
if (cases.isNotEmpty && switchCase.statements.isNotEmpty) {
Node last = switchCase.statements.last;
- if (last.asBreakStatement() == null &&
+ if (last.asReturn() == null &&
+ last.asBreakStatement() == null &&
last.asContinueStatement() == null &&
- last.asThrow() == null &&
- last.asReturn() == null) {
+ (last.asExpressionStatement() == null ||
+ last.asExpressionStatement().expression.asThrow() == null)) {
registry.registerFeature(Feature.FALL_THROUGH_ERROR);
}
}
« no previous file with comments | « pkg/compiler/lib/src/resolution/enum_creator.dart ('k') | pkg/compiler/lib/src/resolution/registry.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698