[java-intentions] IDEA-365192 Use Object type for lambda type during creation field form usages

GitOrigin-RevId: f7532789d8aa7f3dcf17e1de3238a4a3847e5f42
This commit is contained in:
Mikhail Pyltsin
2024-12-26 15:47:15 +00:00
committed by intellij-monorepo-bot
parent e1eef60530
commit 9f03565ed9
4 changed files with 33 additions and 1 deletions
@@ -68,7 +68,10 @@ internal class JavaFieldRenderer(
}
fun renderField(): PsiField {
val fieldType = if (expectedTypes.isNotEmpty()) expectedTypes[0].type else PsiTypes.intType()
var fieldType = if (expectedTypes.isNotEmpty()) expectedTypes[0].type else PsiTypes.intType()
//something completely broken in this file, let's propose default value - Object
if (fieldType is PsiLambdaParameterType ||
fieldType is PsiLambdaExpressionType) fieldType = PsiType.getJavaLangObject(targetClass.manager, targetClass.getResolveScope())
val field = JavaPsiFacade.getElementFactory(project).createField(request.fieldName, fieldType)
// clean template modifiers
@@ -0,0 +1,15 @@
// "Create constant field 'MODULE' in 'Usage'" "true"
class Usage {
private static final MODULE = ;
void usage() {
var type = ()-> System.out.println("");
switch (type) {
case CLASS -> symbols.add(1);
case INTERFACE -> symbols.add(2);
case MODULE -> symbols.add(42);
}
}
}
@@ -0,0 +1,13 @@
// "Create constant field 'MODULE' in 'Usage'" "true"
class Usage {
void usage() {
var type = ()-> System.out.println("");
switch (type) {
case CLASS -> symbols.add(1);
case INTERFACE -> symbols.add(2);
case <caret>MODULE -> symbols.add(42);
}
}
}
@@ -42,6 +42,7 @@ public class CreateFieldFromUsageTest extends LightQuickFixTestCase {
public void testCreateFromEqualsToPrimitiveType() { doSingleTest(); }
public void testInsideInterface() { doSingleTest(); }
public void testReferenceInCall() { doSingleTest(); }
public void testReferenceLambdaType() { doSingleTest(); }
public void testWithAlignment() {
final CommonCodeStyleSettings settings = CodeStyle.getSettings(getProject()).getCommonSettings(JavaLanguage.INSTANCE);
boolean old = settings.ALIGN_GROUP_FIELD_DECLARATIONS;