diff --git a/plugins/gradle/java/src/service/resolve/GradleExtensionsContributor.kt b/plugins/gradle/java/src/service/resolve/GradleExtensionsContributor.kt index 302cb6eccdba..3ce704d8e5bf 100644 --- a/plugins/gradle/java/src/service/resolve/GradleExtensionsContributor.kt +++ b/plugins/gradle/java/src/service/resolve/GradleExtensionsContributor.kt @@ -140,7 +140,7 @@ class GradleExtensionsContributor : GradleMethodContextContributor { if (parent is GrMethodCallExpressionImpl && parent.argumentList.namedArguments.isNotEmpty()) { addOptionalParameter("args", JAVA_UTIL_MAP) } - val closureParam = addAndGetParameter("configuration", GROOVY_LANG_CLOSURE, true) + val closureParam = addAndGetOptionalParameter("configuration", GROOVY_LANG_CLOSURE) closureParam.putUserData(DELEGATES_TO_KEY, gradleTask.typeFqn) closureParam.putUserData(DELEGATES_TO_STRATEGY_KEY, Closure.OWNER_FIRST) } diff --git a/plugins/gradle/java/src/service/resolve/GradleIdeaSettingsContributor.kt b/plugins/gradle/java/src/service/resolve/GradleIdeaSettingsContributor.kt index b4bb26dff53a..f773c5481f57 100644 --- a/plugins/gradle/java/src/service/resolve/GradleIdeaSettingsContributor.kt +++ b/plugins/gradle/java/src/service/resolve/GradleIdeaSettingsContributor.kt @@ -48,7 +48,7 @@ class GradleIdeaSettingsContributor : GradleMethodContextContributor { val projectSettingsMethodBuilder = GrLightMethodBuilder(place.manager, "settings").apply { containingClass = ideaProjectClass returnType = projectSettingsType - addAndGetParameter("configuration", GroovyCommonClassNames.GROOVY_LANG_CLOSURE, false).apply { + addAndGetParameter("configuration", GroovyCommonClassNames.GROOVY_LANG_CLOSURE).apply { putUserData(DELEGATES_TO_KEY, PROJECT_SETTINGS_FQN) putUserData(DELEGATES_TO_STRATEGY_KEY, Closure.DELEGATE_FIRST) } @@ -65,7 +65,7 @@ class GradleIdeaSettingsContributor : GradleMethodContextContributor { val moduleSettingsMethodBuilder = GrLightMethodBuilder(place.manager, "settings").apply { containingClass = ideaModuleClass returnType = moduleSettingsType - addAndGetParameter("configuration", GroovyCommonClassNames.GROOVY_LANG_CLOSURE, false).apply { + addAndGetParameter("configuration", GroovyCommonClassNames.GROOVY_LANG_CLOSURE).apply { putUserData(DELEGATES_TO_KEY, MODULE_SETTINGS_FQN) putUserData(DELEGATES_TO_STRATEGY_KEY, Closure.DELEGATE_FIRST) } diff --git a/plugins/gradle/java/src/service/resolve/GradleMiscContributor.kt b/plugins/gradle/java/src/service/resolve/GradleMiscContributor.kt index e654e2fa8d13..81eeb7aaecfa 100644 --- a/plugins/gradle/java/src/service/resolve/GradleMiscContributor.kt +++ b/plugins/gradle/java/src/service/resolve/GradleMiscContributor.kt @@ -91,7 +91,7 @@ class GradleMiscContributor : GradleMethodContextContributor { containingClass = pluginsDependenciesClass returnType = returnClass } - methodBuilder.addAndGetParameter("configuration", GROOVY_LANG_CLOSURE, false).putUserData(DELEGATES_TO_KEY, pluginDependenciesSpecFqn) + methodBuilder.addAndGetParameter("configuration", GROOVY_LANG_CLOSURE).putUserData(DELEGATES_TO_KEY, pluginDependenciesSpecFqn) place.putUserData(RESOLVED_CODE, true) if (!processor.execute(methodBuilder, state)) return false } diff --git a/plugins/gradle/java/src/service/resolve/GradleNonCodeMembersContributor.kt b/plugins/gradle/java/src/service/resolve/GradleNonCodeMembersContributor.kt index f24d11732900..d160f72414c0 100644 --- a/plugins/gradle/java/src/service/resolve/GradleNonCodeMembersContributor.kt +++ b/plugins/gradle/java/src/service/resolve/GradleNonCodeMembersContributor.kt @@ -142,7 +142,7 @@ class GradleNonCodeMembersContributor : NonCodeMembersContributor() { val wrappedBase = GrLightMethodBuilder(place.manager, propCandidate).apply { returnType = domainObjectType containingClass = aClass - val closureParam = addAndGetParameter("configuration", GROOVY_LANG_CLOSURE, true) + val closureParam = addAndGetOptionalParameter("configuration", GROOVY_LANG_CLOSURE) closureParam.putUserData(DELEGATES_TO_KEY, domainObjectFqn) closureParam.putUserData(DELEGATES_TO_STRATEGY_KEY, Closure.DELEGATE_FIRST) diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/builder/JsonBuilderContributor.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/builder/JsonBuilderContributor.java index f340dcf2d49c..4a2ecb5700c5 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/builder/JsonBuilderContributor.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/builder/JsonBuilderContributor.java @@ -41,7 +41,7 @@ public class JsonBuilderContributor extends BuilderMethodsContributor { // (Closure) method = createMethod(name, clazz, place); - method.addAndGetParameter("c", GROOVY_LANG_CLOSURE, false).putUserData(DELEGATES_TO_KEY, DELEGATE_FQN); + method.addAndGetParameter("c", GROOVY_LANG_CLOSURE).putUserData(DELEGATES_TO_KEY, DELEGATE_FQN); if (!processor.process(method)) return false; // (Map) @@ -52,19 +52,19 @@ public class JsonBuilderContributor extends BuilderMethodsContributor { // (Map, Closure) method = createMethod(name, clazz, place); method.addParameter("map", JAVA_UTIL_MAP); - method.addAndGetParameter("c", GROOVY_LANG_CLOSURE, false).putUserData(DELEGATES_TO_KEY, DELEGATE_FQN); + method.addAndGetParameter("c", GROOVY_LANG_CLOSURE).putUserData(DELEGATES_TO_KEY, DELEGATE_FQN); if (!processor.process(method)) return false; // (Iterable, Closure) method = createMethod(name, clazz, place); method.addParameter("value", TypesUtil.createIterableType(place, null)); - method.addAndGetParameter("c", GROOVY_LANG_CLOSURE, false).putUserData(DELEGATES_TO_KEY, DELEGATE_FQN); + method.addAndGetParameter("c", GROOVY_LANG_CLOSURE).putUserData(DELEGATES_TO_KEY, DELEGATE_FQN); if (!processor.process(method)) return false; // (Object[], Closure) method = createMethod(name, clazz, place); method.addParameter("value", TypesUtil.getJavaLangObject(place).createArrayType()); - method.addAndGetParameter("c", GROOVY_LANG_CLOSURE, false).putUserData(DELEGATES_TO_KEY, DELEGATE_FQN); + method.addAndGetParameter("c", GROOVY_LANG_CLOSURE).putUserData(DELEGATES_TO_KEY, DELEGATE_FQN); return processor.process(method); } diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/builder/JsonDelegateContributor.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/builder/JsonDelegateContributor.java index 3005f24184c1..f46bd5804330 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/builder/JsonDelegateContributor.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/builder/JsonDelegateContributor.java @@ -48,7 +48,7 @@ public class JsonDelegateContributor extends BuilderMethodsContributor { method = createMethod(name, clazz, place); genericType = facade.getElementFactory().createType(method.addTypeParameter("T")); method.addParameter("values", genericType.createArrayType()); - method.addAndGetParameter("c", GROOVY_LANG_CLOSURE, false).putUserData(DELEGATES_TO_KEY, DELEGATE_FQN); + method.addAndGetParameter("c", GROOVY_LANG_CLOSURE).putUserData(DELEGATES_TO_KEY, DELEGATE_FQN); method.setReturnType(TypesUtil.createListType(place, genericType)); if (!processor.process(method)) return false; @@ -56,7 +56,7 @@ public class JsonDelegateContributor extends BuilderMethodsContributor { method = createMethod(name, clazz, place); genericType = facade.getElementFactory().createType(method.addTypeParameter("T")); method.addParameter("values", TypesUtil.createIterableType(place, genericType)); - method.addAndGetParameter("c", GROOVY_LANG_CLOSURE, false).putUserData(DELEGATES_TO_KEY, DELEGATE_FQN); + method.addAndGetParameter("c", GROOVY_LANG_CLOSURE).putUserData(DELEGATES_TO_KEY, DELEGATE_FQN); method.setReturnType(TypesUtil.createListType(place, genericType)); if (!processor.process(method)) return false; diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/builder/XmlMarkupBuilderNonCodeMemberContributor.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/builder/XmlMarkupBuilderNonCodeMemberContributor.java index 397e68ab93a5..1ed731538b1f 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/builder/XmlMarkupBuilderNonCodeMemberContributor.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/builder/XmlMarkupBuilderNonCodeMemberContributor.java @@ -39,19 +39,19 @@ public class XmlMarkupBuilderNonCodeMemberContributor extends BuilderMethodsCont // (Closure) res = createMethod(name, clazz, place); - res.addAndGetParameter("body", GROOVY_LANG_CLOSURE, false).putUserData(DELEGATES_TO_KEY, FQN); + res.addAndGetParameter("body", GROOVY_LANG_CLOSURE).putUserData(DELEGATES_TO_KEY, FQN); if (!processor.process(res)) return false; // (Object, Closure) res = createMethod(name, clazz, place); res.addParameter("value", JAVA_LANG_OBJECT); - res.addAndGetParameter("body", GROOVY_LANG_CLOSURE, false).putUserData(DELEGATES_TO_KEY, FQN); + res.addAndGetParameter("body", GROOVY_LANG_CLOSURE).putUserData(DELEGATES_TO_KEY, FQN); if (!processor.process(res)) return false; // (Map, Closure) res = createMethod(name, clazz, place); res.addParameter("attributes", JAVA_UTIL_MAP); - res.addAndGetParameter("body", GROOVY_LANG_CLOSURE, false).putUserData(DELEGATES_TO_KEY, FQN); + res.addAndGetParameter("body", GROOVY_LANG_CLOSURE).putUserData(DELEGATES_TO_KEY, FQN); if (!processor.process(res)) return false; // (Map) @@ -60,7 +60,7 @@ public class XmlMarkupBuilderNonCodeMemberContributor extends BuilderMethodsCont res = createMethod(name, clazz, place); res.addParameter("attributes", JAVA_UTIL_MAP); res.addOptionalParameter("value", JAVA_LANG_OBJECT); - res.addAndGetParameter("body", GROOVY_LANG_CLOSURE, true).putUserData(DELEGATES_TO_KEY, FQN); + res.addAndGetOptionalParameter("body", GROOVY_LANG_CLOSURE).putUserData(DELEGATES_TO_KEY, FQN); for (GrReflectedMethod method : res.getReflectedMethods()) { if (!processor.process(method)) return false; } @@ -71,7 +71,7 @@ public class XmlMarkupBuilderNonCodeMemberContributor extends BuilderMethodsCont res = createMethod(name, clazz, place); res.addParameter("value", JAVA_LANG_OBJECT); res.addOptionalParameter("attributes", JAVA_UTIL_MAP); - res.addAndGetParameter("body", GROOVY_LANG_CLOSURE, true).putUserData(DELEGATES_TO_KEY, FQN); + res.addAndGetOptionalParameter("body", GROOVY_LANG_CLOSURE).putUserData(DELEGATES_TO_KEY, FQN); for (GrReflectedMethod method : res.getReflectedMethods()) { if (!processor.process(method)) return false; } diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/synthetic/GrLightMethodBuilder.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/synthetic/GrLightMethodBuilder.java index ad134bee64f3..375c76dfbed1 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/synthetic/GrLightMethodBuilder.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/synthetic/GrLightMethodBuilder.java @@ -275,7 +275,12 @@ public class GrLightMethodBuilder extends LightElement implements GrMethod, Orig } @NotNull - public GrLightParameter addAndGetParameter(@NotNull String name, @NotNull String type, boolean isOptional) { + public GrLightParameter addAndGetOptionalParameter(@NotNull String name, @NotNull String type) { + return addAndGetParameter(name, type, true); + } + + @NotNull + private GrLightParameter addAndGetParameter(@NotNull String name, @NotNull String type, boolean isOptional) { return addAndGetParameter(name, JavaPsiFacade.getElementFactory(getProject()).createTypeFromText(type, this), isOptional); } diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/ext/logback/LogbackDelegateMemberContributor.kt b/plugins/groovy/src/org/jetbrains/plugins/groovy/ext/logback/LogbackDelegateMemberContributor.kt index d0d33902a739..a48190cf67ec 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/ext/logback/LogbackDelegateMemberContributor.kt +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/ext/logback/LogbackDelegateMemberContributor.kt @@ -107,7 +107,7 @@ class LogbackDelegateMemberContributor : NonCodeMembersContributor() { // (clazz, configuration) wrappedBase.copy().apply { addParameter("clazz", classType) - addAndGetParameter("configuration", GROOVY_LANG_CLOSURE, true).apply { + addAndGetOptionalParameter("configuration", GROOVY_LANG_CLOSURE).apply { putUserData(DELEGATES_TO_KEY, componentDelegateFqn) putUserData(DELEGATES_TO_STRATEGY_KEY, DELEGATE_FIRST) }