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

Side by Side Diff: pkg/analyzer/test/src/task/strong/front_end_inference_test.dart

Issue 2868133002: Fix annotation of promoted parameters in Fasta inference tests. (Closed)
Patch Set: Created 3 years, 7 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
« no previous file with comments | « no previous file | pkg/front_end/test/fasta/strong.status » ('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) 2017, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2017, 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 import 'dart:async'; 5 import 'dart:async';
6 import 'dart:convert'; 6 import 'dart:convert';
7 import 'dart:io'; 7 import 'dart:io';
8 8
9 import 'package:analyzer/dart/ast/ast.dart'; 9 import 'package:analyzer/dart/ast/ast.dart';
10 import 'package:analyzer/dart/ast/visitor.dart'; 10 import 'package:analyzer/dart/ast/visitor.dart';
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
269 DartType type = node.staticType; 269 DartType type = node.staticType;
270 if (type is InterfaceType) { 270 if (type is InterfaceType) {
271 _recordTypeArguments(node.offset, type.typeArguments); 271 _recordTypeArguments(node.offset, type.typeArguments);
272 } 272 }
273 } 273 }
274 } 274 }
275 275
276 visitSimpleIdentifier(SimpleIdentifier node) { 276 visitSimpleIdentifier(SimpleIdentifier node) {
277 super.visitSimpleIdentifier(node); 277 super.visitSimpleIdentifier(node);
278 Element element = node.staticElement; 278 Element element = node.staticElement;
279 if (element is LocalVariableElement && node.inGetterContext()) { 279 void recordPromotions(DartType elementType) {
280 int offset = node.offset; 280 if (node.inGetterContext() && !node.inDeclarationContext()) {
281 DartType type = node.staticType; 281 int offset = node.offset;
282 if (identical(type, element.type)) { 282 DartType type = node.staticType;
283 _instrumentation.record(uri, offset, 'promotedType', 283 if (identical(type, elementType)) {
284 const fasta.InstrumentationValueLiteral('none')); 284 _instrumentation.record(uri, offset, 'promotedType',
285 } else { 285 const fasta.InstrumentationValueLiteral('none'));
286 _instrumentation.record(uri, offset, 'promotedType', 286 } else {
287 new _InstrumentationValueForType(type)); 287 _instrumentation.record(uri, offset, 'promotedType',
288 new _InstrumentationValueForType(type));
289 }
288 } 290 }
289 } 291 }
292
293 if (element is LocalVariableElement) {
294 recordPromotions(element.type);
295 } else if (element is ParameterElement) {
296 recordPromotions(element.type);
297 }
290 } 298 }
291 299
292 visitVariableDeclarationList(VariableDeclarationList node) { 300 visitVariableDeclarationList(VariableDeclarationList node) {
293 super.visitVariableDeclarationList(node); 301 super.visitVariableDeclarationList(node);
294 if (node.type == null) { 302 if (node.type == null) {
295 for (VariableDeclaration variable in node.variables) { 303 for (VariableDeclaration variable in node.variables) {
296 VariableElement element = variable.element; 304 VariableElement element = variable.element;
297 if (element is LocalVariableElement) { 305 if (element is LocalVariableElement) {
298 _recordType(variable.name.offset, element.type); 306 _recordType(variable.name.offset, element.type);
299 } else { 307 } else {
(...skipping 11 matching lines...) Expand all
311 void _recordType(int offset, DartType type) { 319 void _recordType(int offset, DartType type) {
312 _instrumentation.record( 320 _instrumentation.record(
313 uri, offset, 'type', new _InstrumentationValueForType(type)); 321 uri, offset, 'type', new _InstrumentationValueForType(type));
314 } 322 }
315 323
316 void _recordTypeArguments(int offset, List<DartType> typeArguments) { 324 void _recordTypeArguments(int offset, List<DartType> typeArguments) {
317 _instrumentation.record(uri, offset, 'typeArgs', 325 _instrumentation.record(uri, offset, 'typeArgs',
318 new _InstrumentationValueForTypeArgs(typeArguments)); 326 new _InstrumentationValueForTypeArgs(typeArguments));
319 } 327 }
320 } 328 }
OLDNEW
« no previous file with comments | « no previous file | pkg/front_end/test/fasta/strong.status » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698