| OLD | NEW |
| 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.overrides; | 5 library computer.overrides; |
| 6 | 6 |
| 7 import 'package:analysis_server/src/collections.dart'; |
| 7 import 'package:analysis_server/src/computer/element.dart'; | 8 import 'package:analysis_server/src/computer/element.dart'; |
| 8 import 'package:analysis_server/src/constants.dart'; | 9 import 'package:analysis_server/src/constants.dart'; |
| 9 import 'package:analyzer/src/generated/ast.dart'; | 10 import 'package:analyzer/src/generated/ast.dart'; |
| 10 import 'package:analyzer/src/generated/element.dart' as engine; | 11 import 'package:analyzer/src/generated/element.dart' as engine; |
| 11 | 12 |
| 12 | 13 |
| 13 /** | 14 /** |
| 14 * A computer for class member overrides in a Dart [CompilationUnit]. | 15 * A computer for class member overrides in a Dart [CompilationUnit]. |
| 15 */ | 16 */ |
| 16 class DartUnitOverridesComputer { | 17 class DartUnitOverridesComputer { |
| 17 final CompilationUnit _unit; | 18 final CompilationUnit _unit; |
| 18 | 19 |
| 19 final List<Override> _overrides = <Override>[]; | 20 final List<Override> _overrides = <Override>[]; |
| 20 engine.ClassElement _currentClass; | 21 engine.ClassElement _currentClass; |
| 21 | 22 |
| 22 DartUnitOverridesComputer(this._unit); | 23 DartUnitOverridesComputer(this._unit); |
| 23 | 24 |
| 24 /** | 25 /** |
| 25 * Returns the computed occurrences, not `null`. | 26 * Returns the computed occurrences, not `null`. |
| 26 */ | 27 */ |
| 27 List<Map<String, Object>> compute() { | 28 List<Override> compute() { |
| 28 for (CompilationUnitMember unitMember in _unit.declarations) { | 29 for (CompilationUnitMember unitMember in _unit.declarations) { |
| 29 if (unitMember is ClassDeclaration) { | 30 if (unitMember is ClassDeclaration) { |
| 30 _currentClass = unitMember.element; | 31 _currentClass = unitMember.element; |
| 31 for (ClassMember classMember in unitMember.members) { | 32 for (ClassMember classMember in unitMember.members) { |
| 32 if (classMember is MethodDeclaration) { | 33 if (classMember is MethodDeclaration) { |
| 33 SimpleIdentifier nameNode = classMember.name; | 34 SimpleIdentifier nameNode = classMember.name; |
| 34 _addOverride(nameNode.offset, nameNode.length, nameNode.name); | 35 _addOverride(nameNode.offset, nameNode.length, nameNode.name); |
| 35 } | 36 } |
| 36 if (classMember is FieldDeclaration) { | 37 if (classMember is FieldDeclaration) { |
| 37 List<VariableDeclaration> fields = classMember.fields.variables; | 38 List<VariableDeclaration> fields = classMember.fields.variables; |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 97 member = classElement.lookUpSetter(name + '=', library); | 98 member = classElement.lookUpSetter(name + '=', library); |
| 98 if (member != null) { | 99 if (member != null) { |
| 99 return member; | 100 return member; |
| 100 } | 101 } |
| 101 // not found | 102 // not found |
| 102 return null; | 103 return null; |
| 103 } | 104 } |
| 104 } | 105 } |
| 105 | 106 |
| 106 | 107 |
| 107 class Override { | 108 class Override implements HasToJson { |
| 108 final int offset; | 109 final int offset; |
| 109 final int length; | 110 final int length; |
| 110 final Element superclassElement; | 111 final Element superclassElement; |
| 111 final List<Element> interfaceElements; | 112 final List<Element> interfaceElements; |
| 112 | 113 |
| 113 Override(this.offset, this.length, this.superclassElement, | 114 Override(this.offset, this.length, this.superclassElement, |
| 114 this.interfaceElements); | 115 this.interfaceElements); |
| 115 | 116 |
| 116 factory Override.fromJson(Map<String, Object> map) { | 117 factory Override.fromJson(Map<String, Object> map) { |
| 117 int offset = map[OFFSET]; | 118 int offset = map[OFFSET]; |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 150 json[INTERFACE_ELEMENTS] = interfaceElements.map((element) { | 151 json[INTERFACE_ELEMENTS] = interfaceElements.map((element) { |
| 151 return element.toJson(); | 152 return element.toJson(); |
| 152 }).toList(); | 153 }).toList(); |
| 153 } | 154 } |
| 154 return json; | 155 return json; |
| 155 } | 156 } |
| 156 | 157 |
| 157 @override | 158 @override |
| 158 String toString() => toJson().toString(); | 159 String toString() => toJson().toString(); |
| 159 } | 160 } |
| OLD | NEW |