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

Side by Side Diff: pkg/analysis_server/lib/src/computer/computer_highlights2.dart

Issue 2551023005: Prepare for decoupling analyzer ASTs from element model. (Closed)
Patch Set: Address review comments 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
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 computer.highlights2; 5 library computer.highlights2;
6 6
7 import 'package:analysis_server/plugin/protocol/protocol.dart' hide Element; 7 import 'package:analysis_server/plugin/protocol/protocol.dart' hide Element;
8 import 'package:analyzer/dart/ast/ast.dart'; 8 import 'package:analyzer/dart/ast/ast.dart';
9 import 'package:analyzer/dart/ast/standard_resolution_map.dart';
9 import 'package:analyzer/dart/ast/token.dart'; 10 import 'package:analyzer/dart/ast/token.dart';
10 import 'package:analyzer/dart/ast/visitor.dart'; 11 import 'package:analyzer/dart/ast/visitor.dart';
11 import 'package:analyzer/dart/element/element.dart'; 12 import 'package:analyzer/dart/element/element.dart';
12 import 'package:analyzer/dart/element/type.dart'; 13 import 'package:analyzer/dart/element/type.dart';
13 14
14 /** 15 /**
15 * A computer for [HighlightRegion]s in a Dart [CompilationUnit]. 16 * A computer for [HighlightRegion]s in a Dart [CompilationUnit].
16 */ 17 */
17 class DartUnitHighlightsComputer2 { 18 class DartUnitHighlightsComputer2 {
18 final CompilationUnit _unit; 19 final CompilationUnit _unit;
(...skipping 402 matching lines...) Expand 10 before | Expand all | Expand 10 after
421 Token a, Token b, HighlightRegionType type) { 422 Token a, Token b, HighlightRegionType type) {
422 int offset = a.offset; 423 int offset = a.offset;
423 int end = b.end; 424 int end = b.end;
424 _addRegion(offset, end - offset, type); 425 _addRegion(offset, end - offset, type);
425 } 426 }
426 427
427 static bool _isDynamicExpression(Expression e) { 428 static bool _isDynamicExpression(Expression e) {
428 if (e is SimpleIdentifier && e.staticElement is PrefixElement) { 429 if (e is SimpleIdentifier && e.staticElement is PrefixElement) {
429 return false; 430 return false;
430 } 431 }
431 return e.bestType.isDynamic; 432 return resolutionMap.bestTypeForExpression(e).isDynamic;
432 } 433 }
433 } 434 }
434 435
435 /** 436 /**
436 * An AST visitor for [DartUnitHighlightsComputer2]. 437 * An AST visitor for [DartUnitHighlightsComputer2].
437 */ 438 */
438 class _DartUnitHighlightsComputerVisitor2 extends RecursiveAstVisitor<Object> { 439 class _DartUnitHighlightsComputerVisitor2 extends RecursiveAstVisitor<Object> {
439 final DartUnitHighlightsComputer2 computer; 440 final DartUnitHighlightsComputer2 computer;
440 441
441 _DartUnitHighlightsComputerVisitor2(this.computer); 442 _DartUnitHighlightsComputerVisitor2(this.computer);
(...skipping 371 matching lines...) Expand 10 before | Expand all | Expand 10 after
813 void _addRegions_functionBody(FunctionBody node) { 814 void _addRegions_functionBody(FunctionBody node) {
814 Token keyword = node.keyword; 815 Token keyword = node.keyword;
815 if (keyword != null) { 816 if (keyword != null) {
816 Token star = node.star; 817 Token star = node.star;
817 int offset = keyword.offset; 818 int offset = keyword.offset;
818 int end = star != null ? star.end : keyword.end; 819 int end = star != null ? star.end : keyword.end;
819 computer._addRegion(offset, end - offset, HighlightRegionType.BUILT_IN); 820 computer._addRegion(offset, end - offset, HighlightRegionType.BUILT_IN);
820 } 821 }
821 } 822 }
822 } 823 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698