From cb339bf590a3a2b38f18557fb9147e0851db00ee Mon Sep 17 00:00:00 2001 From: "Anna.Kozlova" Date: Tue, 19 Apr 2016 19:00:46 +0200 Subject: [PATCH] extract parameter object: warn if existing class doesn't contain compatible constructor though method calls to modify are found --- .../JavaIntroduceParameterObjectDelegate.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/java/java-impl/src/com/intellij/refactoring/introduceparameterobject/JavaIntroduceParameterObjectDelegate.java b/java/java-impl/src/com/intellij/refactoring/introduceparameterobject/JavaIntroduceParameterObjectDelegate.java index adb864c95a62..c049c27b8ad5 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceparameterobject/JavaIntroduceParameterObjectDelegate.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceparameterobject/JavaIntroduceParameterObjectDelegate.java @@ -279,6 +279,7 @@ public class JavaIntroduceParameterObjectDelegate } if (moveDestination != null) { + boolean constructorMiss = false; for (UsageInfo info : infos) { if (info instanceof IntroduceParameterObjectProcessor.ChangeSignatureUsageWrapper) { final UsageInfo usageInfo = ((IntroduceParameterObjectProcessor.ChangeSignatureUsageWrapper)info).getInfo(); @@ -289,6 +290,10 @@ public class JavaIntroduceParameterObjectDelegate conflicts.putValue(overridingMethod, "Created class won't be accessible"); } } + if (!constructorMiss && classDescriptor.isUseExistingClass() && usageInfo instanceof MethodCallUsageInfo && classDescriptor.getExistingClassCompatibleConstructor() == null) { + conflicts.putValue(classDescriptor.getExistingClass(), "Existing class misses compatible constructor"); + constructorMiss = true; + } } } }