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 1e338142e34e..8bc9656a4b22 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 @@ -27,8 +27,8 @@ import org.jetbrains.plugins.groovy.lang.psi.impl.synthetic.GrLightMethodBuilder import static com.intellij.psi.CommonClassNames.JAVA_UTIL_MAP; import static org.jetbrains.plugins.groovy.builder.JsonDelegateContributor.DELEGATE_FQN; -import static org.jetbrains.plugins.groovy.lang.psi.impl.statements.blocks.GrDelegatesToUtil.DELEGATES_TO_KEY; import static org.jetbrains.plugins.groovy.lang.psi.util.GroovyCommonClassNames.GROOVY_LANG_CLOSURE; +import static org.jetbrains.plugins.groovy.lang.resolve.delegatesTo.GrDelegatesToUtilKt.DELEGATES_TO_KEY; public class JsonBuilderContributor extends BuilderMethodsContributor { 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 92ab376449f7..b534275203d4 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 @@ -22,8 +22,8 @@ import org.jetbrains.annotations.Nullable; import org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.TypesUtil; import org.jetbrains.plugins.groovy.lang.psi.impl.synthetic.GrLightMethodBuilder; -import static org.jetbrains.plugins.groovy.lang.psi.impl.statements.blocks.GrDelegatesToUtil.DELEGATES_TO_KEY; import static org.jetbrains.plugins.groovy.lang.psi.util.GroovyCommonClassNames.GROOVY_LANG_CLOSURE; +import static org.jetbrains.plugins.groovy.lang.resolve.delegatesTo.GrDelegatesToUtilKt.DELEGATES_TO_KEY; public class JsonDelegateContributor extends BuilderMethodsContributor { diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/builder/StreamingJsonBuilderContributor.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/builder/StreamingJsonBuilderContributor.java index e36f9c83d7fb..953b6f647e0f 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/builder/StreamingJsonBuilderContributor.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/builder/StreamingJsonBuilderContributor.java @@ -28,9 +28,9 @@ import org.jetbrains.plugins.groovy.lang.psi.impl.synthetic.GrLightMethodBuilder import org.jetbrains.plugins.groovy.lang.psi.impl.synthetic.GrLightParameter; import static com.intellij.psi.CommonClassNames.JAVA_UTIL_MAP; -import static org.jetbrains.plugins.groovy.lang.psi.impl.statements.blocks.GrDelegatesToUtil.DELEGATES_TO_KEY; -import static org.jetbrains.plugins.groovy.lang.psi.impl.statements.blocks.GrDelegatesToUtil.DELEGATES_TO_STRATEGY_KEY; import static org.jetbrains.plugins.groovy.lang.psi.util.GroovyCommonClassNames.GROOVY_LANG_CLOSURE; +import static org.jetbrains.plugins.groovy.lang.resolve.delegatesTo.GrDelegatesToUtilKt.DELEGATES_TO_KEY; +import static org.jetbrains.plugins.groovy.lang.resolve.delegatesTo.GrDelegatesToUtilKt.DELEGATES_TO_STRATEGY_KEY; public class StreamingJsonBuilderContributor extends BuilderMethodsContributor { 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 e5c8398ceb11..29970f14bb28 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 @@ -25,8 +25,8 @@ import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.members.GrRe import org.jetbrains.plugins.groovy.lang.psi.impl.synthetic.GrLightMethodBuilder; import static com.intellij.psi.CommonClassNames.*; -import static org.jetbrains.plugins.groovy.lang.psi.impl.statements.blocks.GrDelegatesToUtil.DELEGATES_TO_KEY; import static org.jetbrains.plugins.groovy.lang.psi.util.GroovyCommonClassNames.GROOVY_LANG_CLOSURE; +import static org.jetbrains.plugins.groovy.lang.resolve.delegatesTo.GrDelegatesToUtilKt.DELEGATES_TO_KEY; public class XmlMarkupBuilderNonCodeMemberContributor extends BuilderMethodsContributor { diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/blocks/GrClosableBlockImpl.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/blocks/GrClosableBlockImpl.java index 34a082e4c020..cc116ddc0950 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/blocks/GrClosableBlockImpl.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/blocks/GrClosableBlockImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2015 JetBrains s.r.o. + * Copyright 2000-2016 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -50,6 +50,8 @@ import org.jetbrains.plugins.groovy.lang.psi.impl.synthetic.GrLightVariable; import org.jetbrains.plugins.groovy.lang.psi.util.GroovyCommonClassNames; import org.jetbrains.plugins.groovy.lang.resolve.MethodTypeInferencer; import org.jetbrains.plugins.groovy.lang.resolve.ResolveUtil; +import org.jetbrains.plugins.groovy.lang.resolve.delegatesTo.DelegatesToInfo; +import org.jetbrains.plugins.groovy.lang.resolve.delegatesTo.GrDelegatesToUtilKt; import org.jetbrains.plugins.groovy.lang.resolve.processors.ClassHint; /** @@ -114,7 +116,7 @@ public class GrClosableBlockImpl extends GrBlockImpl implements GrClosableBlock private Boolean processDelegatesTo(@NotNull PsiScopeProcessor processor, @NotNull ResolveState state, @NotNull PsiElement place) { - GrDelegatesToUtil.DelegatesToInfo info = GrDelegatesToUtil.getDelegatesToInfo(this); + DelegatesToInfo info = GrDelegatesToUtilKt.getDelegatesToInfo(this); if (info == null) { return null; } diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/path/GrClosureDelegateTypeCalculator.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/path/GrClosureDelegateTypeCalculator.java index fd9f1a8cbc87..a23d0b531ea4 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/path/GrClosureDelegateTypeCalculator.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/path/GrClosureDelegateTypeCalculator.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2015 JetBrains s.r.o. + * Copyright 2000-2016 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -26,9 +26,10 @@ import org.jetbrains.plugins.groovy.lang.psi.api.statements.blocks.GrClosableBlo import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrExpression; import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrReferenceExpression; import org.jetbrains.plugins.groovy.lang.psi.impl.GroovyPsiManager; -import org.jetbrains.plugins.groovy.lang.psi.impl.statements.blocks.GrDelegatesToUtil; import org.jetbrains.plugins.groovy.lang.psi.typeEnhancers.GrExpressionTypeCalculator; import org.jetbrains.plugins.groovy.lang.psi.util.GroovyCommonClassNames; +import org.jetbrains.plugins.groovy.lang.resolve.delegatesTo.DelegatesToInfo; +import org.jetbrains.plugins.groovy.lang.resolve.delegatesTo.GrDelegatesToUtilKt; public class GrClosureDelegateTypeCalculator extends GrExpressionTypeCalculator { @@ -53,7 +54,7 @@ public class GrClosureDelegateTypeCalculator extends GrExpressionTypeCalculator ); if (closureClass == null || !closureClass.equals(method.getContainingClass())) return null; - final GrDelegatesToUtil.DelegatesToInfo info = GrDelegatesToUtil.getDelegatesToInfo(closure); + final DelegatesToInfo info = GrDelegatesToUtilKt.getDelegatesToInfo(closure); if (info == null) return null; return info.getTypeToDelegate(); diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/resolve/delegatesTo/DelegatesToInfo.kt b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/resolve/delegatesTo/DelegatesToInfo.kt new file mode 100644 index 000000000000..d0bc9004d081 --- /dev/null +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/resolve/delegatesTo/DelegatesToInfo.kt @@ -0,0 +1,20 @@ +/* + * Copyright 2000-2016 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jetbrains.plugins.groovy.lang.resolve.delegatesTo + +import com.intellij.psi.PsiType + +class DelegatesToInfo(val typeToDelegate: PsiType?, val strategy: Int) diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/blocks/GrDelegatesToUtil.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/resolve/delegatesTo/GrDelegatesToUtil.java similarity index 94% rename from plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/blocks/GrDelegatesToUtil.java rename to plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/resolve/delegatesTo/GrDelegatesToUtil.java index 6a8c28c1dbaa..76c94971a386 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/blocks/GrDelegatesToUtil.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/resolve/delegatesTo/GrDelegatesToUtil.java @@ -13,9 +13,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.jetbrains.plugins.groovy.lang.psi.impl.statements.blocks; +package org.jetbrains.plugins.groovy.lang.resolve.delegatesTo; -import com.intellij.openapi.util.Key; import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.*; import com.intellij.psi.util.*; @@ -45,15 +44,14 @@ import org.jetbrains.plugins.groovy.lang.psi.util.GroovyCommonClassNames; import org.jetbrains.plugins.groovy.lang.resolve.ResolveUtil; import static org.jetbrains.plugins.groovy.lang.psi.util.PsiUtil.getArgumentTypes; +import static org.jetbrains.plugins.groovy.lang.resolve.delegatesTo.GrDelegatesToUtilKt.DELEGATES_TO_KEY; +import static org.jetbrains.plugins.groovy.lang.resolve.delegatesTo.GrDelegatesToUtilKt.DELEGATES_TO_STRATEGY_KEY; /** * @author Max Medvedev */ public class GrDelegatesToUtil { - public static final Key DELEGATES_TO_KEY = Key.create("groovy.closure.delegatesTo"); - public static final Key DELEGATES_TO_STRATEGY_KEY = Key.create("groovy.closure.delegatesTo.strategy"); - @Nullable public static DelegatesToInfo getDelegatesToInfo(@NotNull final GrClosableBlock closableBlock) { GrCall call = getContainingCall(closableBlock); @@ -318,22 +316,4 @@ public class GrDelegatesToUtil { GroovyResolveResult[] calls = ResolveUtil.getMethodCandidates(type, "call", expression, getArgumentTypes(expression, false)); return PsiImplUtil.extractUniqueResult(calls); } - - public static class DelegatesToInfo { - final PsiType myClassToDelegate; - final int myStrategy; - - private DelegatesToInfo(@Nullable PsiType classToDelegate, int strategy) { - myClassToDelegate = classToDelegate; - myStrategy = strategy; - } - - public PsiType getTypeToDelegate() { - return myClassToDelegate; - } - - public int getStrategy() { - return myStrategy; - } - } } diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/resolve/delegatesTo/grDelegatesToUtil.kt b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/resolve/delegatesTo/grDelegatesToUtil.kt new file mode 100644 index 000000000000..6ce6187190a9 --- /dev/null +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/resolve/delegatesTo/grDelegatesToUtil.kt @@ -0,0 +1,24 @@ +/* + * Copyright 2000-2016 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jetbrains.plugins.groovy.lang.resolve.delegatesTo + +import com.intellij.openapi.util.Key +import org.jetbrains.plugins.groovy.lang.psi.api.statements.blocks.GrClosableBlock + +@JvmField val DELEGATES_TO_KEY = Key.create("groovy.closure.delegatesTo.type") +@JvmField val DELEGATES_TO_STRATEGY_KEY = Key.create("groovy.closure.delegatesTo.strategy") + +fun getDelegatesToInfo(closure: GrClosableBlock): DelegatesToInfo? = GrDelegatesToUtil.getDelegatesToInfo(closure)