mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[jvm-lang] refactor & cleanup action utils
- add and use JvmSubstitutor.toPsiSubstitutor(); - rename JvmModifier.toPsi to toPsiModifier, make it internal; - make toJavaClassOrNull() internal.
This commit is contained in:
@@ -140,10 +140,10 @@ private fun extractRenderData(targetClass: PsiClass, request: CreateFieldRequest
|
||||
targetClass,
|
||||
fieldName,
|
||||
extractExpectedTypes(project, request.fieldType).toTypedArray(),
|
||||
JvmPsiConversionHelper.getInstance(project).convertSubstitutor(request.targetSubstitutor),
|
||||
request.targetSubstitutor.toPsiSubstitutor(project),
|
||||
javaUsage?.reference,
|
||||
javaUsage?.anchor,
|
||||
modifiersToRender.map(JvmModifier::toPsi),
|
||||
modifiersToRender.map(JvmModifier::toPsiModifier),
|
||||
renderConstant
|
||||
)
|
||||
}
|
||||
|
||||
@@ -134,7 +134,7 @@ private class JavaMethodRenderer(
|
||||
}
|
||||
|
||||
for (modifier in modifiersToRender) {
|
||||
setModifierProperty(method, modifier.toPsi(), true)
|
||||
setModifierProperty(method, modifier.toPsiModifier(), true)
|
||||
}
|
||||
|
||||
for (annotation in request.annotations) {
|
||||
@@ -159,7 +159,7 @@ private class JavaMethodRenderer(
|
||||
|
||||
private fun setupTemplate(method: PsiMethod): TemplateBuilderImpl {
|
||||
val builder = TemplateBuilderImpl(method)
|
||||
val substitutor = JvmPsiConversionHelper.getInstance(project).convertSubstitutor(request.targetSubstitutor)
|
||||
val substitutor = request.targetSubstitutor.toPsiSubstitutor(project)
|
||||
val guesser = GuessTypeParameters(project, factory, builder, substitutor)
|
||||
setupTypeElement(guesser, method.returnTypeElement, request.returnType)
|
||||
builder.setupParameters(guesser, method)
|
||||
|
||||
@@ -24,16 +24,14 @@ import com.intellij.lang.jvm.JvmClass
|
||||
import com.intellij.lang.jvm.JvmModifier
|
||||
import com.intellij.lang.jvm.actions.ExpectedType
|
||||
import com.intellij.lang.jvm.actions.ExpectedTypes
|
||||
import com.intellij.lang.jvm.types.JvmSubstitutor
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.JvmPsiConversionHelper
|
||||
import com.intellij.psi.PsiClass
|
||||
import com.intellij.psi.PsiModifier
|
||||
import com.intellij.psi.*
|
||||
import com.intellij.psi.PsiModifier.ModifierConstant
|
||||
import com.intellij.psi.PsiTypeParameter
|
||||
import com.intellij.psi.impl.compiled.ClsClassImpl
|
||||
|
||||
@ModifierConstant
|
||||
fun JvmModifier.toPsi(): String = when (this) {
|
||||
internal fun JvmModifier.toPsiModifier(): String = when (this) {
|
||||
JvmModifier.PUBLIC -> PsiModifier.PUBLIC
|
||||
JvmModifier.PROTECTED -> PsiModifier.PROTECTED
|
||||
JvmModifier.PRIVATE -> PsiModifier.PRIVATE
|
||||
@@ -55,7 +53,7 @@ fun JvmModifier.toPsi(): String = when (this) {
|
||||
*
|
||||
* @return Java PsiClass or `null` if the receiver is not a Java PsiClass
|
||||
*/
|
||||
fun JvmClass.toJavaClassOrNull(): PsiClass? {
|
||||
internal fun JvmClass.toJavaClassOrNull(): PsiClass? {
|
||||
if (this !is PsiClass) return null
|
||||
if (this is PsiTypeParameter) return null
|
||||
if (this is ClsClassImpl) return null
|
||||
@@ -91,3 +89,7 @@ private fun ExpectedType.Kind.infoKind(): Int {
|
||||
ExpectedType.Kind.SUBTYPE -> ExpectedTypeInfo.TYPE_OR_SUBTYPE
|
||||
}
|
||||
}
|
||||
|
||||
internal fun JvmSubstitutor.toPsiSubstitutor(project: Project): PsiSubstitutor {
|
||||
return JvmPsiConversionHelper.getInstance(project).convertSubstitutor(this)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user