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

Side by Side Diff: sdk/lib/_internal/compiler/implementation/resolution/signatures.dart

Issue 304153014: Remove element from DynamicType. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Fix infinite loop. Created 6 years, 6 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, 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 part of resolution; 5 part of resolution;
6 6
7 /** 7 /**
8 * [SignatureResolver] resolves function signatures. 8 * [SignatureResolver] resolves function signatures.
9 */ 9 */
10 class SignatureResolver extends MappingVisitor<ParameterElementX> { 10 class SignatureResolver extends MappingVisitor<ParameterElementX> {
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 // Inline function typed initializing formal or 111 // Inline function typed initializing formal or
112 // parameter with default value, like `C(int this.f(String s))` or 112 // parameter with default value, like `C(int this.f(String s))` or
113 // `void m([int f(String s) = null])`. 113 // `void m([int f(String s) = null])`.
114 computeFunctionType(link.head.asSend().selector.asFunctionExpression()); 114 computeFunctionType(link.head.asSend().selector.asFunctionExpression());
115 } else { 115 } else {
116 assert(invariant(currentDefinitions, 116 assert(invariant(currentDefinitions,
117 link.head.asIdentifier() != null || link.head.asSend() != null)); 117 link.head.asIdentifier() != null || link.head.asSend() != null));
118 if (fieldElement != null) { 118 if (fieldElement != null) {
119 element.typeCache = fieldElement.computeType(compiler); 119 element.typeCache = fieldElement.computeType(compiler);
120 } else { 120 } else {
121 element.typeCache = compiler.types.dynamicType; 121 element.typeCache = const DynamicType();
122 } 122 }
123 } 123 }
124 } 124 }
125 } 125 }
126 126
127 Element visitIdentifier(Identifier node) { 127 Element visitIdentifier(Identifier node) {
128 return createParameter(node, null); 128 return createParameter(node, null);
129 } 129 }
130 130
131 Identifier getParameterName(Send node) { 131 Identifier getParameterName(Send node) {
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
336 336
337 DartType resolveTypeAnnotation(TypeAnnotation annotation) { 337 DartType resolveTypeAnnotation(TypeAnnotation annotation) {
338 DartType type = resolveReturnType(annotation); 338 DartType type = resolveReturnType(annotation);
339 if (type.isVoid) { 339 if (type.isVoid) {
340 compiler.reportError(annotation, MessageKind.VOID_NOT_ALLOWED); 340 compiler.reportError(annotation, MessageKind.VOID_NOT_ALLOWED);
341 } 341 }
342 return type; 342 return type;
343 } 343 }
344 344
345 DartType resolveReturnType(TypeAnnotation annotation) { 345 DartType resolveReturnType(TypeAnnotation annotation) {
346 if (annotation == null) return compiler.types.dynamicType; 346 if (annotation == null) return const DynamicType();
347 DartType result = resolver.resolveTypeAnnotation(annotation); 347 DartType result = resolver.resolveTypeAnnotation(annotation);
348 if (result == null) { 348 if (result == null) {
349 return compiler.types.dynamicType; 349 return const DynamicType();
350 } 350 }
351 return result; 351 return result;
352 } 352 }
353 } 353 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698