From cc034472bbcd3c2b6ce754e28cac4e1ba7f2bd7b Mon Sep 17 00:00:00 2001 From: Konstantin Shcheglov Date: Tue, 8 May 2018 20:28:07 +0000 Subject: [PATCH] Fix LineInfo.getOffsetOfLineAfter(). Or we could remove it altogether. It is not used outside of analyzer/analysis_server/analyzer_plugin. R=brianwilkerson@google.com Change-Id: I89c90fc0881f2b1602128f8aacdda2762c4e7920 Reviewed-on: https://dart-review.googlesource.com/54306 Reviewed-by: Brian Wilkerson Commit-Queue: Konstantin Shcheglov --- pkg/analyzer/lib/source/line_info.dart | 2 +- .../test/generated/utilities_test.dart | 23 ++++++++++++++++--- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/pkg/analyzer/lib/source/line_info.dart b/pkg/analyzer/lib/source/line_info.dart index 47661a2d243..5d0dee930ac 100644 --- a/pkg/analyzer/lib/source/line_info.dart +++ b/pkg/analyzer/lib/source/line_info.dart @@ -119,6 +119,6 @@ class LineInfo { * containing the given [offset]. */ int getOffsetOfLineAfter(int offset) { - return getOffsetOfLine(getLocation(offset).lineNumber + 1); + return getOffsetOfLine(getLocation(offset).lineNumber); } } diff --git a/pkg/analyzer/test/generated/utilities_test.dart b/pkg/analyzer/test/generated/utilities_test.dart index 7781977826a..f960be0f37d 100644 --- a/pkg/analyzer/test/generated/utilities_test.dart +++ b/pkg/analyzer/test/generated/utilities_test.dart @@ -2546,26 +2546,43 @@ class LineInfoTest { }, throwsArgumentError); } - void test_firstLine() { + void test_getLocation_firstLine() { LineInfo info = new LineInfo([0, 12, 34]); CharacterLocation location = info.getLocation(4); expect(location.lineNumber, 1); expect(location.columnNumber, 5); } - void test_lastLine() { + void test_getLocation_lastLine() { LineInfo info = new LineInfo([0, 12, 34]); CharacterLocation location = info.getLocation(36); expect(location.lineNumber, 3); expect(location.columnNumber, 3); } - void test_middleLine() { + void test_getLocation_middleLine() { LineInfo info = new LineInfo([0, 12, 34]); CharacterLocation location = info.getLocation(12); expect(location.lineNumber, 2); expect(location.columnNumber, 1); } + + void test_getOffsetOfLine() { + LineInfo info = new LineInfo([0, 12, 34]); + expect(0, info.getOffsetOfLine(0)); + expect(12, info.getOffsetOfLine(1)); + expect(34, info.getOffsetOfLine(2)); + } + + void test_getOffsetOfLineAfter() { + LineInfo info = new LineInfo([0, 12, 34]); + + expect(info.getOffsetOfLineAfter(0), 12); + expect(info.getOffsetOfLineAfter(11), 12); + + expect(info.getOffsetOfLineAfter(12), 34); + expect(info.getOffsetOfLineAfter(33), 34); + } } class ListGetter_NodeReplacerTest_test_adjacentStrings