| 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 import 'dart:io'; | 5 import 'dart:io'; |
| 6 import 'dart:convert'; | 6 import 'dart:convert'; |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 | 8 |
| 9 import 'package:path/path.dart' as path; | 9 import 'package:path/path.dart' as path; |
| 10 import 'package:expect/expect.dart'; | 10 import 'package:expect/expect.dart'; |
| 11 import 'package:source_maps/source_maps.dart'; | 11 import 'package:source_maps/source_maps.dart'; |
| 12 import 'package:compiler/src/apiimpl.dart'; | 12 import 'package:compiler/src/apiimpl.dart'; |
| 13 import 'package:compiler/src/elements/elements.dart' | 13 import 'package:compiler/src/elements/elements.dart' |
| 14 show | 14 show |
| 15 AstElement, | 15 AstElement, |
| 16 ClassElement, | 16 ClassElement, |
| 17 CompilationUnitElement, | 17 CompilationUnitElement, |
| 18 Element, | 18 Element, |
| 19 FunctionElement, | 19 FunctionElement, |
| 20 LibraryElement, | 20 LibraryElement, |
| 21 MemberElement; | 21 MemberElement; |
| 22 import 'package:compiler/src/io/source_file.dart' show SourceFile; | 22 import 'package:compiler/src/io/source_file.dart' show SourceFile; |
| 23 import 'package:compiler/src/io/source_information.dart' | 23 import 'package:compiler/src/io/source_information.dart' |
| 24 show computeElementNameForSourceMaps; | 24 show computeElementNameForSourceMaps; |
| 25 import 'package:kernel/ast.dart' show Location; |
| 25 | 26 |
| 26 validateSourceMap(Uri targetUri, | 27 validateSourceMap(Uri targetUri, |
| 27 {Uri mainUri, Position mainPosition, CompilerImpl compiler}) { | 28 {Uri mainUri, Position mainPosition, CompilerImpl compiler}) { |
| 28 Uri mapUri = getMapUri(targetUri); | 29 Uri mapUri = getMapUri(targetUri); |
| 29 List<String> targetLines = new File.fromUri(targetUri).readAsLinesSync(); | 30 List<String> targetLines = new File.fromUri(targetUri).readAsLinesSync(); |
| 30 SingleMapping sourceMap = getSourceMap(mapUri); | 31 SingleMapping sourceMap = getSourceMap(mapUri); |
| 31 checkFileReferences(targetUri, mapUri, sourceMap); | 32 checkFileReferences(targetUri, mapUri, sourceMap); |
| 32 checkIndexReferences(targetLines, mapUri, sourceMap); | 33 checkIndexReferences(targetLines, mapUri, sourceMap); |
| 33 checkRedundancy(sourceMap); | 34 checkRedundancy(sourceMap); |
| 34 if (compiler != null) { | 35 if (compiler != null) { |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 125 new Position(entry.sourceLine, entry.sourceColumn); | 126 new Position(entry.sourceLine, entry.sourceColumn); |
| 126 String name = sourceMap.names[entry.sourceNameId]; | 127 String name = sourceMap.names[entry.sourceNameId]; |
| 127 | 128 |
| 128 CompilationUnitElement compilationUnit = compilationUnitMap[uri]; | 129 CompilationUnitElement compilationUnit = compilationUnitMap[uri]; |
| 129 Expect.isNotNull( | 130 Expect.isNotNull( |
| 130 compilationUnit, "No compilation unit found for $uri."); | 131 compilationUnit, "No compilation unit found for $uri."); |
| 131 | 132 |
| 132 SourceFile sourceFile = compilationUnit.script.file; | 133 SourceFile sourceFile = compilationUnit.script.file; |
| 133 | 134 |
| 134 Position positionFromOffset(int offset) { | 135 Position positionFromOffset(int offset) { |
| 135 int line = sourceFile.getLine(offset); | 136 Location location = sourceFile.getLocation(offset); |
| 136 int column = sourceFile.getColumn(line, offset); | 137 int line = location.line - 1; |
| 138 int column = location.column - 1; |
| 137 return new Position(line, column); | 139 return new Position(line, column); |
| 138 } | 140 } |
| 139 | 141 |
| 140 Interval intervalFromElement(AstElement element) { | 142 Interval intervalFromElement(AstElement element) { |
| 141 if (!element.hasNode) return null; | 143 if (!element.hasNode) return null; |
| 142 | 144 |
| 143 var begin = element.node.getBeginToken().charOffset; | 145 var begin = element.node.getBeginToken().charOffset; |
| 144 var end = element.node.getEndToken(); | 146 var end = element.node.getEndToken(); |
| 145 end = end.charOffset + end.charCount; | 147 end = end.charOffset + end.charCount; |
| 146 return new Interval( | 148 return new Interval( |
| (...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 315 final Position end; | 317 final Position end; |
| 316 | 318 |
| 317 Interval(this.begin, this.end); | 319 Interval(this.begin, this.end); |
| 318 | 320 |
| 319 bool contains(Position other) { | 321 bool contains(Position other) { |
| 320 return begin <= other && other <= end; | 322 return begin <= other && other <= end; |
| 321 } | 323 } |
| 322 | 324 |
| 323 String toString() => '$begin-$end'; | 325 String toString() => '$begin-$end'; |
| 324 } | 326 } |
| OLD | NEW |