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

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

Issue 1859343004: dartfmt pkg/compiler (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 8 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.resolution.common; 5 library dart2js.resolution.common;
6 6
7 import '../common.dart'; 7 import '../common.dart';
8 import '../common/resolution.dart' show 8 import '../common/resolution.dart' show Resolution;
9 Resolution; 9 import '../common/tasks.dart' show DeferredAction;
10 import '../common/tasks.dart' show 10 import '../compiler.dart' show Compiler;
11 DeferredAction;
12 import '../compiler.dart' show
13 Compiler;
14 import '../elements/elements.dart'; 11 import '../elements/elements.dart';
15 import '../tree/tree.dart'; 12 import '../tree/tree.dart';
16 13
17 import 'registry.dart' show 14 import 'registry.dart' show ResolutionRegistry;
18 ResolutionRegistry; 15 import 'scope.dart' show Scope;
19 import 'scope.dart' show 16 import 'type_resolver.dart' show TypeResolver;
20 Scope;
21 import 'type_resolver.dart' show
22 TypeResolver;
23 17
24 class CommonResolverVisitor<R> extends Visitor<R> { 18 class CommonResolverVisitor<R> extends Visitor<R> {
25 final Compiler compiler; 19 final Compiler compiler;
26 20
27 CommonResolverVisitor(Compiler this.compiler); 21 CommonResolverVisitor(Compiler this.compiler);
28 22
29 DiagnosticReporter get reporter => compiler.reporter; 23 DiagnosticReporter get reporter => compiler.reporter;
30 24
31 Resolution get resolution => compiler.resolution; 25 Resolution get resolution => compiler.resolution;
32 26
33 R visitNode(Node node) { 27 R visitNode(Node node) {
34 return reporter.internalError(node, 28 return reporter.internalError(
35 'internal error: Unhandled node: ${node.getObjectDescription()}'); 29 node, 'internal error: Unhandled node: ${node.getObjectDescription()}');
36 } 30 }
37 31
38 R visitEmptyStatement(Node node) => null; 32 R visitEmptyStatement(Node node) => null;
39 33
40 /** Convenience method for visiting nodes that may be null. */ 34 /** Convenience method for visiting nodes that may be null. */
41 R visit(Node node) => (node == null) ? null : node.accept(this); 35 R visit(Node node) => (node == null) ? null : node.accept(this);
42 36
43 void addDeferredAction(Element element, DeferredAction action) { 37 void addDeferredAction(Element element, DeferredAction action) {
44 compiler.enqueuer.resolution.addDeferredAction(element, action); 38 compiler.enqueuer.resolution.addDeferredAction(element, action);
45 } 39 }
46 } 40 }
47 41
48 /** 42 /**
49 * Common supertype for resolver visitors that record resolutions in a 43 * Common supertype for resolver visitors that record resolutions in a
50 * [ResolutionRegistry]. 44 * [ResolutionRegistry].
51 */ 45 */
52 abstract class MappingVisitor<T> extends CommonResolverVisitor<T> { 46 abstract class MappingVisitor<T> extends CommonResolverVisitor<T> {
53 final ResolutionRegistry registry; 47 final ResolutionRegistry registry;
54 final TypeResolver typeResolver; 48 final TypeResolver typeResolver;
49
55 /// The current enclosing element for the visited AST nodes. 50 /// The current enclosing element for the visited AST nodes.
56 Element get enclosingElement; 51 Element get enclosingElement;
52
57 /// The current scope of the visitor. 53 /// The current scope of the visitor.
58 Scope get scope; 54 Scope get scope;
59 55
60 MappingVisitor(Compiler compiler, ResolutionRegistry this.registry) 56 MappingVisitor(Compiler compiler, ResolutionRegistry this.registry)
61 : typeResolver = new TypeResolver(compiler), 57 : typeResolver = new TypeResolver(compiler),
62 super(compiler); 58 super(compiler);
63 59
64 AsyncMarker get currentAsyncMarker => AsyncMarker.SYNC; 60 AsyncMarker get currentAsyncMarker => AsyncMarker.SYNC;
65 61
66 /// Add [element] to the current scope and check for duplicate definitions. 62 /// Add [element] to the current scope and check for duplicate definitions.
67 void addToScope(Element element) { 63 void addToScope(Element element) {
68 Element existing = scope.add(element); 64 Element existing = scope.add(element);
69 if (existing != element) { 65 if (existing != element) {
70 reportDuplicateDefinition(element.name, element, existing); 66 reportDuplicateDefinition(element.name, element, existing);
71 } 67 }
72 } 68 }
73 69
74 void checkLocalDefinitionName(Node node, Element element) { 70 void checkLocalDefinitionName(Node node, Element element) {
75 if (currentAsyncMarker != AsyncMarker.SYNC) { 71 if (currentAsyncMarker != AsyncMarker.SYNC) {
76 if (element.name == 'yield' || 72 if (element.name == 'yield' ||
77 element.name == 'async' || 73 element.name == 'async' ||
78 element.name == 'await') { 74 element.name == 'await') {
79 reporter.reportErrorMessage( 75 reporter.reportErrorMessage(
80 node, MessageKind.ASYNC_KEYWORD_AS_IDENTIFIER, 76 node,
81 {'keyword': element.name, 77 MessageKind.ASYNC_KEYWORD_AS_IDENTIFIER,
82 'modifier': currentAsyncMarker}); 78 {'keyword': element.name, 'modifier': currentAsyncMarker});
83 } 79 }
84 } 80 }
85 } 81 }
86 82
87 /// Register [node] as the definition of [element]. 83 /// Register [node] as the definition of [element].
88 void defineLocalVariable(Node node, LocalVariableElement element) { 84 void defineLocalVariable(Node node, LocalVariableElement element) {
89 if (element == null) { 85 if (element == null) {
90 throw reporter.internalError(node, 'element is null'); 86 throw reporter.internalError(node, 'element is null');
91 } 87 }
92 checkLocalDefinitionName(node, element); 88 checkLocalDefinitionName(node, element);
93 registry.defineElement(node, element); 89 registry.defineElement(node, element);
94 } 90 }
95 91
96 void reportDuplicateDefinition(String name, 92 void reportDuplicateDefinition(
97 Spannable definition, 93 String name, Spannable definition, Spannable existing) {
98 Spannable existing) {
99 reporter.reportError( 94 reporter.reportError(
100 reporter.createMessage( 95 reporter.createMessage(
101 definition, 96 definition, MessageKind.DUPLICATE_DEFINITION, {'name': name}),
102 MessageKind.DUPLICATE_DEFINITION,
103 {'name': name}),
104 <DiagnosticMessage>[ 97 <DiagnosticMessage>[
105 reporter.createMessage( 98 reporter.createMessage(
106 existing, 99 existing, MessageKind.EXISTING_DEFINITION, {'name': name}),
107 MessageKind.EXISTING_DEFINITION,
108 {'name': name}),
109 ]); 100 ]);
110 } 101 }
111 } 102 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/resolution/resolution.dart ('k') | pkg/compiler/lib/src/resolution/resolution_result.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698