From 260b9b18f55a7e0e2ee88eb38ff613dfd1fbb706 Mon Sep 17 00:00:00 2001 From: Danny Tuppeny Date: Mon, 9 Oct 2023 18:58:40 +0000 Subject: [PATCH] [analysis_server] Fix location of ignore comments on getters with dartdocs Fixes https://github.com/Dart-Code/Dart-Code/issues/4775 Change-Id: I7fd049f2f58ed677c5c4a8e5ab7450e54ae61c9c Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/329740 Reviewed-by: Phil Quitslund Reviewed-by: Brian Wilkerson --- .../services/correction/dart/ignore_diagnostic.dart | 3 ++- .../correction/fix/ignore_diagnostic_test.dart | 12 ++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/pkg/analysis_server/lib/src/services/correction/dart/ignore_diagnostic.dart b/pkg/analysis_server/lib/src/services/correction/dart/ignore_diagnostic.dart index 751d305d68f..7ce6b4b7dcd 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/ignore_diagnostic.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/ignore_diagnostic.dart @@ -97,8 +97,9 @@ class IgnoreDiagnosticOnLine extends AbstractIgnoreDiagnostic { Future compute(ChangeBuilder builder) async { if (_isCodeUnignorable()) return; + final diagnostic = this.diagnostic!; // Enforced by _isCodeUnignorable final insertDesc = CorrectionUtils_InsertDesc(); - insertDesc.offset = node.offset; + insertDesc.offset = diagnostic.problemMessage.offset; await _computeEdit( builder, insertDesc, diff --git a/pkg/analysis_server/test/src/services/correction/fix/ignore_diagnostic_test.dart b/pkg/analysis_server/test/src/services/correction/fix/ignore_diagnostic_test.dart index fb9e946bc9b..f86c8e4a230 100644 --- a/pkg/analysis_server/test/src/services/correction/fix/ignore_diagnostic_test.dart +++ b/pkg/analysis_server/test/src/services/correction/fix/ignore_diagnostic_test.dart @@ -148,6 +148,18 @@ void f() { '''); } + Future test_dartdoc_getter() async { + await resolveTestCode(''' +/// AA +String get _AA => ''; +'''); + await assertHasFix(''' +/// AA +// ignore: unused_element +String get _AA => ''; +'''); + } + Future test_existingIgnore() async { await resolveTestCode(''' void f() {