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

Side by Side Diff: pkg/compiler/lib/src/js_backend/patch_resolver.dart

Issue 2535213003: Support patched generic methods. (Closed)
Patch Set: Add tests for renaming. Created 4 years 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
« no previous file with comments | « pkg/compiler/lib/src/elements/elements.dart ('k') | pkg/compiler/lib/src/patch_parser.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 library dart2js.js_backend.patch_resolver; 5 library dart2js.js_backend.patch_resolver;
6 6
7 import '../common.dart'; 7 import '../common.dart';
8 import '../common/resolution.dart' show Resolution; 8 import '../common/resolution.dart' show Resolution;
9 import '../common/tasks.dart' show CompilerTask; 9 import '../common/tasks.dart' show CompilerTask;
10 import '../compiler.dart' show Compiler; 10 import '../compiler.dart' show Compiler;
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
99 {'parameterName': patchParameter.name}), 99 {'parameterName': patchParameter.name}),
100 ]); 100 ]);
101 } 101 }
102 } 102 }
103 } 103 }
104 } 104 }
105 105
106 void checkMatchingPatchSignatures( 106 void checkMatchingPatchSignatures(
107 FunctionElement origin, FunctionElement patch) { 107 FunctionElement origin, FunctionElement patch) {
108 // TODO(johnniwinther): Show both origin and patch locations on errors. 108 // TODO(johnniwinther): Show both origin and patch locations on errors.
109 FunctionExpression originTree = origin.node;
109 FunctionSignature originSignature = origin.functionSignature; 110 FunctionSignature originSignature = origin.functionSignature;
110 FunctionExpression patchTree = patch.node; 111 FunctionExpression patchTree = patch.node;
111 FunctionSignature patchSignature = patch.functionSignature; 112 FunctionSignature patchSignature = patch.functionSignature;
112 113
114 if ('${originTree.typeVariables}' != '${patchTree.typeVariables}') {
115 reporter.withCurrentElement(patch, () {
116 Node errorNode = patchTree.typeVariables != null
117 ? patchTree.typeVariables
118 : patchTree;
119 reporter.reportError(
120 reporter.createMessage(
121 errorNode,
122 MessageKind.PATCH_TYPE_VARIABLES_MISMATCH,
123 {'methodName': origin.name}),
124 [reporter.createMessage(origin, MessageKind.THIS_IS_THE_METHOD)]);
125 });
126 }
113 if (originSignature.type.returnType != patchSignature.type.returnType) { 127 if (originSignature.type.returnType != patchSignature.type.returnType) {
114 reporter.withCurrentElement(patch, () { 128 reporter.withCurrentElement(patch, () {
115 Node errorNode = 129 Node errorNode =
116 patchTree.returnType != null ? patchTree.returnType : patchTree; 130 patchTree.returnType != null ? patchTree.returnType : patchTree;
117 reporter.reportErrorMessage( 131 reporter.reportErrorMessage(
118 errorNode, MessageKind.PATCH_RETURN_TYPE_MISMATCH, { 132 errorNode, MessageKind.PATCH_RETURN_TYPE_MISMATCH, {
119 'methodName': origin.name, 133 'methodName': origin.name,
120 'originReturnType': originSignature.type.returnType, 134 'originReturnType': originSignature.type.returnType,
121 'patchReturnType': patchSignature.type.returnType 135 'patchReturnType': patchSignature.type.returnType
122 }); 136 });
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
157 'originParameterCount': originSignature.optionalParameterCount, 171 'originParameterCount': originSignature.optionalParameterCount,
158 'patchParameterCount': patchSignature.optionalParameterCount 172 'patchParameterCount': patchSignature.optionalParameterCount
159 }); 173 });
160 }); 174 });
161 } else { 175 } else {
162 checkMatchingPatchParameters(origin, originSignature.optionalParameters, 176 checkMatchingPatchParameters(origin, originSignature.optionalParameters,
163 patchSignature.optionalParameters); 177 patchSignature.optionalParameters);
164 } 178 }
165 } 179 }
166 } 180 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/elements/elements.dart ('k') | pkg/compiler/lib/src/patch_parser.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698