Skip to content

Commit

Permalink
Version 3.7.0-181.0.dev
Browse files Browse the repository at this point in the history
Merge 06111a5 into dev
  • Loading branch information
Dart CI committed Nov 22, 2024
2 parents 311f57f + 06111a5 commit eb01a04
Show file tree
Hide file tree
Showing 79 changed files with 126 additions and 155 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import 'package:analyzer/dart/element/element2.dart';
import 'package:analyzer/dart/element/nullability_suffix.dart';
import 'package:analyzer/dart/element/type.dart';
import 'package:analyzer/src/dart/element/type.dart';
import 'package:analyzer/src/utilities/extensions/collection.dart';
import 'package:analyzer_plugin/utilities/change_builder/change_builder_core.dart';
import 'package:analyzer_plugin/utilities/fixes/fixes.dart';
import 'package:analyzer_plugin/utilities/range_factory.dart';
Expand Down Expand Up @@ -58,17 +59,42 @@ class CreateMethodOrFunction extends ResolvedCorrectionProducer {
// should be argument of some invocation
// or child of an expression that is one
var parameterElement = argument.correspondingParameter;
int? recordFieldIndex;
if (argument.parent case ConditionalExpression parent) {
if (argument == parent.condition) {
return;
}
parameterElement = parent.correspondingParameter;
} else if (argument.parent case RecordLiteral record) {
parameterElement = record.correspondingParameter;
for (var (index, field)
in record.fields.whereNotType<NamedExpression>().indexed) {
if (field == argument) {
recordFieldIndex = index;
break;
}
}
}
if (parameterElement == null) {
return;
}
// should be parameter of function type
var parameterType = parameterElement.type;
if (parameterType is RecordType) {
// Finds the corresponding field for argument
if (argument is NamedExpression) {
var fieldName = argument.name.label.name;
for (var field in parameterType.namedFields) {
if (field.name == fieldName) {
parameterType = field.type;
break;
}
}
} else if (recordFieldIndex != null) {
var field = parameterType.positionalFields[recordFieldIndex];
parameterType = field.type;
}
}
if (parameterType is InterfaceType && parameterType.isDartCoreFunction) {
parameterType = FunctionTypeImpl(
typeFormals: const [],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -433,6 +433,46 @@ void f2(int p) {}
''');
}

Future<void> test_functionType_inside_record_functionType() async {
await resolveTestCode('''
void f1(int i) {
f2((0, f3));
}
void f2((int, int Function(int)) f) {}
''');
await assertHasFix('''
void f1(int i) {
f2((0, f3));
}
void f2((int, int Function(int)) f) {}
int f3(int p1) {
}
''');
}

Future<void> test_functionType_inside_record_functionType_named() async {
await resolveTestCode('''
void f1(int i) {
f2((f: f3));
}
void f2(({int Function(int) f}) f) {}
''');
await assertHasFix('''
void f1(int i) {
f2((f: f3));
}
void f2(({int Function(int) f}) f) {}
int f3(int p1) {
}
''');
}

Future<void> test_functionType_notFunctionType() async {
await resolveTestCode('''
void f(A a) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -837,6 +837,55 @@ class C {
''');
}

Future<void> test_functionType_method_inside_record_functionType() async {
await resolveTestCode('''
class C {
void m1(int i) {
m2((m3,));
}
void m2((int Function(int),) f) {}
}
''');
await assertHasFix('''
class C {
void m1(int i) {
m2((m3,));
}
void m2((int Function(int),) f) {}
int m3(int p1) {
}
}
''');
}

Future<void>
test_functionType_method_inside_record_functionType_named() async {
await resolveTestCode('''
class C {
void m1(int i) {
m2((f: m3));
}
void m2(({int Function(int) f}) f) {}
}
''');
await assertHasFix('''
class C {
void m1(int i) {
m2((f: m3));
}
void m2(({int Function(int) f}) f) {}
int m3(int p1) {
}
}
''');
}

Future<void> test_functionType_method_targetClass() async {
await resolveTestCode('''
void f(A a) {
Expand Down
8 changes: 0 additions & 8 deletions pkg/analysis_server/tool/spec/codegen_java_types.dart
Original file line number Diff line number Diff line change
Expand Up @@ -311,14 +311,6 @@ class CodegenJavaType extends CodegenJavaVisitor {
//
// fields
//
//
// public static final "EMPTY_ARRAY" field
//
publicField(javaName('EMPTY_ARRAY'), () {
writeln(
'public static final $className[] EMPTY_ARRAY = new $className[0];',
);
});

//
// public static final "EMPTY_LIST" field
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,6 @@
@SuppressWarnings("unused")
public class AddContentOverlay {

public static final AddContentOverlay[] EMPTY_ARRAY = new AddContentOverlay[0];

public static final List<AddContentOverlay> EMPTY_LIST = List.of();

private final String type;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,6 @@
@SuppressWarnings("unused")
public class AnalysisError {

public static final AnalysisError[] EMPTY_ARRAY = new AnalysisError[0];

public static final List<AnalysisError> EMPTY_LIST = List.of();

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,6 @@
@SuppressWarnings("unused")
public class AnalysisErrorFixes {

public static final AnalysisErrorFixes[] EMPTY_ARRAY = new AnalysisErrorFixes[0];

public static final List<AnalysisErrorFixes> EMPTY_LIST = List.of();

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,6 @@
@SuppressWarnings("unused")
public class AnalysisOptions {

public static final AnalysisOptions[] EMPTY_ARRAY = new AnalysisOptions[0];

public static final List<AnalysisOptions> EMPTY_LIST = List.of();

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,6 @@
@SuppressWarnings("unused")
public class AnalysisStatus {

public static final AnalysisStatus[] EMPTY_ARRAY = new AnalysisStatus[0];

public static final List<AnalysisStatus> EMPTY_LIST = List.of();

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,6 @@
@SuppressWarnings("unused")
public class BulkFix {

public static final BulkFix[] EMPTY_ARRAY = new BulkFix[0];

public static final List<BulkFix> EMPTY_LIST = List.of();

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,6 @@
@SuppressWarnings("unused")
public class BulkFixDetail {

public static final BulkFixDetail[] EMPTY_ARRAY = new BulkFixDetail[0];

public static final List<BulkFixDetail> EMPTY_LIST = List.of();

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,6 @@
@SuppressWarnings("unused")
public class ChangeContentOverlay {

public static final ChangeContentOverlay[] EMPTY_ARRAY = new ChangeContentOverlay[0];

public static final List<ChangeContentOverlay> EMPTY_LIST = List.of();

private final String type;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,6 @@
@SuppressWarnings("unused")
public class ClosingLabel {

public static final ClosingLabel[] EMPTY_ARRAY = new ClosingLabel[0];

public static final List<ClosingLabel> EMPTY_LIST = List.of();

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,6 @@
@SuppressWarnings("unused")
public class CompletionSuggestion {

public static final CompletionSuggestion[] EMPTY_ARRAY = new CompletionSuggestion[0];

public static final List<CompletionSuggestion> EMPTY_LIST = List.of();

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,6 @@
@SuppressWarnings("unused")
public class ContextData {

public static final ContextData[] EMPTY_ARRAY = new ContextData[0];

public static final List<ContextData> EMPTY_LIST = List.of();

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,6 @@
@SuppressWarnings("unused")
public class DiagnosticMessage {

public static final DiagnosticMessage[] EMPTY_ARRAY = new DiagnosticMessage[0];

public static final List<DiagnosticMessage> EMPTY_LIST = List.of();

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,6 @@
@SuppressWarnings("unused")
public class Element {

public static final Element[] EMPTY_ARRAY = new Element[0];

public static final List<Element> EMPTY_LIST = List.of();

private static final int ABSTRACT = 0x01;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,6 @@
@SuppressWarnings("unused")
public class ElementDeclaration {

public static final ElementDeclaration[] EMPTY_ARRAY = new ElementDeclaration[0];

public static final List<ElementDeclaration> EMPTY_LIST = List.of();

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,6 @@
@SuppressWarnings("unused")
public class ExecutableFile {

public static final ExecutableFile[] EMPTY_ARRAY = new ExecutableFile[0];

public static final List<ExecutableFile> EMPTY_LIST = List.of();

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,6 @@
@SuppressWarnings("unused")
public class ExistingImport {

public static final ExistingImport[] EMPTY_ARRAY = new ExistingImport[0];

public static final List<ExistingImport> EMPTY_LIST = List.of();

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,6 @@
@SuppressWarnings("unused")
public class ExistingImports {

public static final ExistingImports[] EMPTY_ARRAY = new ExistingImports[0];

public static final List<ExistingImports> EMPTY_LIST = List.of();

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,6 @@
@SuppressWarnings("unused")
public class ExtractLocalVariableFeedback extends RefactoringFeedback {

public static final ExtractLocalVariableFeedback[] EMPTY_ARRAY = new ExtractLocalVariableFeedback[0];

public static final List<ExtractLocalVariableFeedback> EMPTY_LIST = List.of();

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,6 @@
@SuppressWarnings("unused")
public class ExtractLocalVariableOptions extends RefactoringOptions {

public static final ExtractLocalVariableOptions[] EMPTY_ARRAY = new ExtractLocalVariableOptions[0];

public static final List<ExtractLocalVariableOptions> EMPTY_LIST = List.of();

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,6 @@
@SuppressWarnings("unused")
public class ExtractMethodFeedback extends RefactoringFeedback {

public static final ExtractMethodFeedback[] EMPTY_ARRAY = new ExtractMethodFeedback[0];

public static final List<ExtractMethodFeedback> EMPTY_LIST = List.of();

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,6 @@
@SuppressWarnings("unused")
public class ExtractMethodOptions extends RefactoringOptions {

public static final ExtractMethodOptions[] EMPTY_ARRAY = new ExtractMethodOptions[0];

public static final List<ExtractMethodOptions> EMPTY_LIST = List.of();

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,6 @@
@SuppressWarnings("unused")
public class ExtractWidgetFeedback extends RefactoringFeedback {

public static final ExtractWidgetFeedback[] EMPTY_ARRAY = new ExtractWidgetFeedback[0];

public static final List<ExtractWidgetFeedback> EMPTY_LIST = List.of();

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,6 @@
@SuppressWarnings("unused")
public class ExtractWidgetOptions extends RefactoringOptions {

public static final ExtractWidgetOptions[] EMPTY_ARRAY = new ExtractWidgetOptions[0];

public static final List<ExtractWidgetOptions> EMPTY_LIST = List.of();

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,6 @@
@SuppressWarnings("unused")
public class FlutterOutline {

public static final FlutterOutline[] EMPTY_ARRAY = new FlutterOutline[0];

public static final List<FlutterOutline> EMPTY_LIST = List.of();

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,6 @@
@SuppressWarnings("unused")
public class FlutterOutlineAttribute {

public static final FlutterOutlineAttribute[] EMPTY_ARRAY = new FlutterOutlineAttribute[0];

public static final List<FlutterOutlineAttribute> EMPTY_LIST = List.of();

/**
Expand Down
Loading

0 comments on commit eb01a04

Please sign in to comment.