Issue 56413. Consider prefer_int_literals in 'Wrap with Padding'.

Bug: https://github.com/dart-lang/sdk/issues/56413
Change-Id: I0e4aa2a53a2387caa4ad451e7033767c1b180436
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/384100
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
diff --git a/pkg/analysis_server/lib/src/services/correction/dart/flutter_wrap.dart b/pkg/analysis_server/lib/src/services/correction/dart/flutter_wrap.dart
index 347c93f..fe52584 100644
--- a/pkg/analysis_server/lib/src/services/correction/dart/flutter_wrap.dart
+++ b/pkg/analysis_server/lib/src/services/correction/dart/flutter_wrap.dart
@@ -158,7 +158,9 @@
   @override
   List<String> get _leadingLines {
     var keyword = widgetExpr.inConstantContext ? '' : ' const';
-    return ['padding:$keyword EdgeInsets.all(8.0),'];
+    var codeStyleOptions = getCodeStyleOptions(unitResult.file);
+    var paddingStr = codeStyleOptions.preferIntLiterals ? '8' : '8.0';
+    return ['padding:$keyword EdgeInsets.all($paddingStr),'];
   }
 
   @override
diff --git a/pkg/analysis_server/test/src/services/correction/assist/flutter_wrap_padding_test.dart b/pkg/analysis_server/test/src/services/correction/assist/flutter_wrap_padding_test.dart
index 7e676fc..05c24d8 100644
--- a/pkg/analysis_server/test/src/services/correction/assist/flutter_wrap_padding_test.dart
+++ b/pkg/analysis_server/test/src/services/correction/assist/flutter_wrap_padding_test.dart
@@ -3,6 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:analysis_server/src/services/correction/assist.dart';
+import 'package:analysis_server/src/services/linter/lint_names.dart';
 import 'package:analyzer_plugin/utilities/assist/assist.dart';
 import 'package:test_reflective_loader/test_reflective_loader.dart';
 
@@ -30,21 +31,46 @@
   Future<void> test_aroundContainer() async {
     await resolveTestCode('''
 import 'package:flutter/widgets.dart';
-class FakeFlutter {
-  Widget f() {
-    return /*caret*/Container();
-  }
+
+void f() {
+  /*caret*/Container();
 }
 ''');
     await assertHasAssist('''
 import 'package:flutter/widgets.dart';
-class FakeFlutter {
-  Widget f() {
-    return Padding(
-      padding: const EdgeInsets.all(8.0),
-      child: Container(),
-    );
+
+void f() {
+  Padding(
+    padding: const EdgeInsets.all(8.0),
+    child: Container(),
+  );
+}
+''');
   }
+
+  Future<void> test_aroundContainer_preferIntLiterals() async {
+    createAnalysisOptionsFile(
+      lints: [
+        LintNames.prefer_int_literals,
+      ],
+    );
+
+    await resolveTestCode('''
+import 'package:flutter/widgets.dart';
+
+void f() {
+  /*caret*/Container();
+}
+''');
+
+    await assertHasAssist('''
+import 'package:flutter/widgets.dart';
+
+void f() {
+  Padding(
+    padding: const EdgeInsets.all(8),
+    child: Container(),
+  );
 }
 ''');
   }
@@ -52,13 +78,12 @@
   Future<void> test_aroundPadding() async {
     await resolveTestCode('''
 import 'package:flutter/widgets.dart';
-class FakeFlutter {
-  Widget f() {
-    return Padding(
-      padding: const EdgeInsets.all(8.0),
-      child: Container(),
-    );
-  }
+
+void f() {
+  Padding(
+    padding: const EdgeInsets.all(8.0),
+    child: Container(),
+  );
 }
 ''');
     await assertNoAssist();
@@ -67,25 +92,23 @@
   Future<void> test_inConstantContext() async {
     await resolveTestCode('''
 import 'package:flutter/widgets.dart';
-class FakeFlutter {
-  Widget build() {
-    return const Center(
-      child: /*caret*/Text('x'),
-    );
-  }
+
+void f() {
+  const Center(
+    child: /*caret*/Text('x'),
+  );
 }
 ''');
     await assertHasAssist('''
 import 'package:flutter/widgets.dart';
-class FakeFlutter {
-  Widget build() {
-    return const Center(
-      child: Padding(
-        padding: EdgeInsets.all(8.0),
-        child: Text('x'),
-      ),
-    );
-  }
+
+void f() {
+  const Center(
+    child: Padding(
+      padding: EdgeInsets.all(8.0),
+      child: Text('x'),
+    ),
+  );
 }
 ''');
   }
diff --git a/pkg/analyzer/lib/dart/analysis/code_style_options.dart b/pkg/analyzer/lib/dart/analysis/code_style_options.dart
index 81cbee5..b72c3b5 100644
--- a/pkg/analyzer/lib/dart/analysis/code_style_options.dart
+++ b/pkg/analyzer/lib/dart/analysis/code_style_options.dart
@@ -16,6 +16,9 @@
   /// Return `true` if local variables should be `final` whenever possible.
   bool get makeLocalsFinal;
 
+  /// Return `true` if `prefer_int_literals` is enabled.
+  bool get preferIntLiterals;
+
   /// Return the preferred quote based on the enabled lints, otherwise a single
   /// quote.
   String get preferredQuoteForStrings;
diff --git a/pkg/analyzer/lib/src/analysis_options/code_style_options.dart b/pkg/analyzer/lib/src/analysis_options/code_style_options.dart
index a9cb118..27c294f 100644
--- a/pkg/analyzer/lib/src/analysis_options/code_style_options.dart
+++ b/pkg/analyzer/lib/src/analysis_options/code_style_options.dart
@@ -24,6 +24,9 @@
   bool get makeLocalsFinal => _isLintEnabled('prefer_final_locals');
 
   @override
+  bool get preferIntLiterals => _isLintEnabled('prefer_int_literals');
+
+  @override
   String get preferredQuoteForStrings => _lintQuote() ?? "'";
 
   @override