| Index: pkg/compiler/lib/src/io/source_information.dart
 | 
| diff --git a/pkg/compiler/lib/src/io/source_information.dart b/pkg/compiler/lib/src/io/source_information.dart
 | 
| index 2b01ba12b585de0ad27c5f8b65d432c5b816c4ab..a2e1a5f9b4f822fe50d22fc610940e8fccfddefe 100644
 | 
| --- a/pkg/compiler/lib/src/io/source_information.dart
 | 
| +++ b/pkg/compiler/lib/src/io/source_information.dart
 | 
| @@ -4,6 +4,7 @@
 | 
|  
 | 
|  library dart2js.source_information;
 | 
|  
 | 
| +import 'package:kernel/ast.dart' show Location;
 | 
|  import '../common.dart';
 | 
|  import '../elements/elements.dart'
 | 
|      show
 | 
| @@ -202,7 +203,7 @@ abstract class SourceLocation {
 | 
|  /// A location in a source file.
 | 
|  abstract class AbstractSourceLocation extends SourceLocation {
 | 
|    final SourceFile _sourceFile;
 | 
| -  int _line;
 | 
| +  Location _location;
 | 
|  
 | 
|    AbstractSourceLocation(this._sourceFile) {
 | 
|      assert(invariant(new SourceSpan(sourceUri, 0, 0), isValid,
 | 
| @@ -218,12 +219,15 @@ abstract class AbstractSourceLocation extends SourceLocation {
 | 
|  
 | 
|    /// The 0-based line number of the [offset].
 | 
|    int get line {
 | 
| -    if (_line == null) _line = _sourceFile.getLine(offset);
 | 
| -    return _line;
 | 
| +    _location ??= _sourceFile.getLocation(offset);
 | 
| +    return _location.line - 1;
 | 
|    }
 | 
|  
 | 
|    /// The 0-base column number of the [offset] with its line.
 | 
| -  int get column => _sourceFile.getColumn(line, offset);
 | 
| +  int get column {
 | 
| +    _location ??= _sourceFile.getLocation(offset);
 | 
| +    return _location.column - 1;
 | 
| +  }
 | 
|  
 | 
|    /// The name associated with this source location, if any.
 | 
|    String get sourceName;
 | 
| 
 |