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

Side by Side Diff: pkg/compiler/lib/src/resolution/send_resolver.dart

Issue 1414913002: Introduce .isMalformed (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Address review Created 5 years, 2 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library dart2js.semantics_visitor.resolver; 5 library dart2js.semantics_visitor.resolver;
6 6
7 import '../common.dart'; 7 import '../common.dart';
8 import '../constants/expressions.dart'; 8 import '../constants/expressions.dart';
9 import '../dart_types.dart'; 9 import '../dart_types.dart';
10 import '../elements/elements.dart'; 10 import '../elements/elements.dart';
(...skipping 15 matching lines...) Expand all
26 26
27 ConstructorAccessSemantics computeConstructorAccessSemantics( 27 ConstructorAccessSemantics computeConstructorAccessSemantics(
28 ConstructorElement constructor, 28 ConstructorElement constructor,
29 CallStructure callStructure, 29 CallStructure callStructure,
30 DartType type, 30 DartType type,
31 {bool mustBeConstant: false}) { 31 {bool mustBeConstant: false}) {
32 if (mustBeConstant && !constructor.isConst) { 32 if (mustBeConstant && !constructor.isConst) {
33 return new ConstructorAccessSemantics( 33 return new ConstructorAccessSemantics(
34 ConstructorAccessKind.NON_CONSTANT_CONSTRUCTOR, constructor, type); 34 ConstructorAccessKind.NON_CONSTANT_CONSTRUCTOR, constructor, type);
35 } 35 }
36 if (constructor.isErroneous) { 36 if (constructor.isMalformed) {
37 if (constructor is ErroneousElement) { 37 if (constructor is ErroneousElement) {
38 ErroneousElement error = constructor; 38 ErroneousElement error = constructor;
39 if (error.messageKind == MessageKind.CANNOT_FIND_CONSTRUCTOR) { 39 if (error.messageKind == MessageKind.CANNOT_FIND_CONSTRUCTOR) {
40 return new ConstructorAccessSemantics( 40 return new ConstructorAccessSemantics(
41 ConstructorAccessKind.UNRESOLVED_CONSTRUCTOR, constructor, type); 41 ConstructorAccessKind.UNRESOLVED_CONSTRUCTOR, constructor, type);
42 } 42 }
43 } 43 }
44 return new ConstructorAccessSemantics( 44 return new ConstructorAccessSemantics(
45 ConstructorAccessKind.UNRESOLVED_TYPE, constructor, type); 45 ConstructorAccessKind.UNRESOLVED_TYPE, constructor, type);
46 } else if (constructor.isRedirectingFactory) { 46 } else if (constructor.isRedirectingFactory) {
47 ConstructorElement effectiveTarget = constructor.effectiveTarget; 47 ConstructorElement effectiveTarget = constructor.effectiveTarget;
48 if (effectiveTarget == constructor || 48 if (effectiveTarget == constructor ||
49 effectiveTarget.isErroneous || 49 effectiveTarget.isMalformed ||
50 (mustBeConstant && !effectiveTarget.isConst)) { 50 (mustBeConstant && !effectiveTarget.isConst)) {
51 return new ConstructorAccessSemantics( 51 return new ConstructorAccessSemantics(
52 ConstructorAccessKind.ERRONEOUS_REDIRECTING_FACTORY, 52 ConstructorAccessKind.ERRONEOUS_REDIRECTING_FACTORY,
53 constructor, 53 constructor,
54 type); 54 type);
55 } 55 }
56 ConstructorAccessSemantics effectiveTargetSemantics = 56 ConstructorAccessSemantics effectiveTargetSemantics =
57 computeConstructorAccessSemantics( 57 computeConstructorAccessSemantics(
58 effectiveTarget, 58 effectiveTarget,
59 callStructure, 59 callStructure,
(...skipping 408 matching lines...) Expand 10 before | Expand all | Expand 10 after
468 return internalError(node, "Unexpected variable $element."); 468 return internalError(node, "Unexpected variable $element.");
469 } 469 }
470 if (element.isConst) { 470 if (element.isConst) {
471 ConstantExpression constant = elements.getConstant(element.initializer); 471 ConstantExpression constant = elements.getConstant(element.initializer);
472 return new ConstantVariableStructure(kind, node, element, constant); 472 return new ConstantVariableStructure(kind, node, element, constant);
473 } else { 473 } else {
474 return new NonConstantVariableStructure(kind, node, element); 474 return new NonConstantVariableStructure(kind, node, element);
475 } 475 }
476 } 476 }
477 } 477 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/resolution/resolution.dart ('k') | pkg/compiler/lib/src/resolution/signatures.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698