Create function/property from usage: added "member" when appropriate + changed order

This commit is contained in:
Valentin Kipyatkov
2015-06-23 17:04:37 +03:00
parent b691ed2494
commit 2bd1362be6
216 changed files with 246 additions and 230 deletions
@@ -176,7 +176,6 @@ map.platform.class.to.kotlin.multiple=Change all usages of ''{0}'' in this file
map.platform.class.to.kotlin.advertisement=Choose an appropriate Kotlin class map.platform.class.to.kotlin.advertisement=Choose an appropriate Kotlin class
map.platform.class.to.kotlin.family=Change to Kotlin class map.platform.class.to.kotlin.family=Change to Kotlin class
create.from.usage.family=Create from usage create.from.usage.family=Create from usage
create.0.from.usage=Create {0}
create.local.variable.from.usage=Create local variable ''{0}'' create.local.variable.from.usage=Create local variable ''{0}''
create.parameter.from.usage=Create parameter ''{0}'' create.parameter.from.usage=Create parameter ''{0}''
surround.with=Surround with surround.with=Surround with
@@ -16,11 +16,11 @@
package org.jetbrains.kotlin.idea.quickfix.createFromUsage.createCallable package org.jetbrains.kotlin.idea.quickfix.createFromUsage.createCallable
import com.intellij.codeInsight.intention.LowPriorityAction
import com.intellij.openapi.editor.Editor import com.intellij.openapi.editor.Editor
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.psi.PsiClass import com.intellij.psi.PsiClass
import com.intellij.psi.PsiElement import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.idea.JetBundle
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
import org.jetbrains.kotlin.idea.core.refactoring.canRefactor import org.jetbrains.kotlin.idea.core.refactoring.canRefactor
import org.jetbrains.kotlin.idea.core.refactoring.chooseContainerElementIfNecessary import org.jetbrains.kotlin.idea.core.refactoring.chooseContainerElementIfNecessary
@@ -32,14 +32,21 @@ import org.jetbrains.kotlin.psi.psiUtil.getElementTextWithContext
import java.util.Collections import java.util.Collections
import java.util.HashSet import java.util.HashSet
public class CreateCallableFromUsageFix( public class CreateCallableFromUsageFix(originalElement: JetElement, callableInfos: List<CallableInfo>)
: CreateCallableFromUsageFixBase(originalElement, callableInfos, false) {
constructor(originalExpression: JetElement, callableInfo: CallableInfo) : this(originalExpression, Collections.singletonList(callableInfo))
}
public class CreateExtensionCallableFromUsageFix(originalElement: JetElement, callableInfos: List<CallableInfo>)
: CreateCallableFromUsageFixBase(originalElement, callableInfos, true), LowPriorityAction {
constructor(originalExpression: JetElement, callableInfo: CallableInfo) : this(originalExpression, Collections.singletonList(callableInfo))
}
public abstract class CreateCallableFromUsageFixBase(
originalElement: JetElement, originalElement: JetElement,
val callableInfos: List<CallableInfo>, val callableInfos: List<CallableInfo>,
val isExtension: Boolean val isExtension: Boolean
) : CreateFromUsageFixBase(originalElement) { ) : CreateFromUsageFixBase(originalElement) {
constructor(originalExpression: JetElement,
callableInfo: CallableInfo,
isExtension: Boolean) : this(originalExpression, Collections.singletonList(callableInfo), isExtension) { }
init { init {
assert (callableInfos.isNotEmpty()) { "No CallableInfos: ${originalElement.getElementTextWithContext()}" } assert (callableInfos.isNotEmpty()) { "No CallableInfos: ${originalElement.getElementTextWithContext()}" }
@@ -69,15 +76,24 @@ public class CreateCallableFromUsageFix(
} }
if (it.name.isNotEmpty()) "$kind '${it.name}'" else kind if (it.name.isNotEmpty()) "$kind '${it.name}'" else kind
} }
return JetBundle.message(
"create.0.from.usage", return StringBuilder {
renderedCallables.joinToString(prefix = if (isExtension) "extension " else "") append("Create ")
)
val receiverInfo = callableInfos.first().receiverTypeInfo
if (isExtension) {
append("extension ")
}
else if (receiverInfo !is TypeInfo.Empty) {
append("member ")
}
renderedCallables.joinTo(this)
}.toString()
} }
fun isAvailable(): Boolean { fun isAvailable(): Boolean {
val callableInfo = callableInfos.first() val receiverInfo = callableInfos.first().receiverTypeInfo
val receiverInfo = callableInfo.receiverTypeInfo
if (receiverInfo is TypeInfo.Empty) return !isExtension if (receiverInfo is TypeInfo.Empty) return !isExtension
// TODO: Remove after companion object extensions are supported // TODO: Remove after companion object extensions are supported
@@ -147,16 +163,16 @@ public class CreateCallableFromUsageFix(
public fun CreateCallableFromUsageFixes( public fun CreateCallableFromUsageFixes(
originalExpression: JetExpression, originalExpression: JetExpression,
callableInfos: List<CallableInfo> callableInfos: List<CallableInfo>
) : List<CreateCallableFromUsageFix> { ) : List<CreateCallableFromUsageFixBase> {
return listOf( return listOf(
CreateCallableFromUsageFix(originalExpression, callableInfos, false), CreateCallableFromUsageFix(originalExpression, callableInfos),
CreateCallableFromUsageFix(originalExpression, callableInfos, true) CreateExtensionCallableFromUsageFix(originalExpression, callableInfos)
).filter { it.isAvailable() } ).filter { it.isAvailable() }
} }
public fun CreateCallableFromUsageFixes( public fun CreateCallableFromUsageFixes(
originalExpression: JetExpression, originalExpression: JetExpression,
callableInfo: CallableInfo callableInfo: CallableInfo
) : List<CreateCallableFromUsageFix> { ) : List<CreateCallableFromUsageFixBase> {
return CreateCallableFromUsageFixes(originalExpression, Collections.singletonList(callableInfo)) return CreateCallableFromUsageFixes(originalExpression, Collections.singletonList(callableInfo))
} }
@@ -63,6 +63,6 @@ object CreateConstructorFromDelegationCallActionFactory : JetSingleIntentionActi
) )
} }
return CreateCallableFromUsageFix(delegationCall, SecondaryConstructorInfo(parameters, targetClass), false) return CreateCallableFromUsageFix(delegationCall, SecondaryConstructorInfo(parameters, targetClass))
} }
} }
@@ -59,6 +59,6 @@ object CreateConstructorFromDelegatorToSuperCallActionFactory : JetSingleIntenti
) )
} }
return CreateCallableFromUsageFix(delegationCall, SecondaryConstructorInfo(parameters, targetClass), false) return CreateCallableFromUsageFix(delegationCall, SecondaryConstructorInfo(parameters, targetClass))
} }
} }
@@ -66,8 +66,8 @@ public class CreateClassFromUsageFix(
element: JetElement, element: JetElement,
val classInfo: ClassInfo val classInfo: ClassInfo
): CreateFromUsageFixBase(element) { ): CreateFromUsageFixBase(element) {
override fun getText(): String =
JetBundle.message("create.0.from.usage", "${classInfo.kind.description} '${classInfo.name}'") override fun getText() = "Create ${classInfo.kind.description} '${classInfo.name}'"
override fun isAvailable(project: Project, editor: Editor?, file: PsiFile): Boolean { override fun isAvailable(project: Project, editor: Editor?, file: PsiFile): Boolean {
if (!super.isAvailable(project, editor, file)) return false if (!super.isAvailable(project, editor, file)) return false
@@ -131,6 +131,6 @@ private fun JetSimpleNameExpression.getCreatePackageFixIfApplicable(targetParent
return object: DelegatingIntentionAction(javaFix) { return object: DelegatingIntentionAction(javaFix) {
override fun getFamilyName(): String = JetBundle.message("create.from.usage.family") override fun getFamilyName(): String = JetBundle.message("create.from.usage.family")
override fun getText(): String = JetBundle.message("create.0.from.usage", "package '${fullName}'") override fun getText(): String = "Create package '${fullName}'"
} }
} }
@@ -1,6 +1,6 @@
// "Import" "false" // "Import" "false"
// ACTION: Create extension function 'inc' // ACTION: Create extension function 'inc'
// ACTION: Create function 'inc' // ACTION: Create member function 'inc'
// ACTION: Create local variable '++' // ACTION: Create local variable '++'
// ACTION: Create parameter '++' // ACTION: Create parameter '++'
// ACTION: Replace overloaded operator with function call // ACTION: Replace overloaded operator with function call
@@ -1,6 +1,6 @@
// "Create class 'A'" "false" // "Create class 'A'" "false"
// ACTION: Create extension property 'A' // ACTION: Create extension property 'A'
// ACTION: Create property 'A' // ACTION: Create member property 'A'
// ERROR: Unresolved reference: A // ERROR: Unresolved reference: A
package p package p
@@ -1,4 +1,4 @@
// "Create enum constant 'A'" "false" // "Create enum constant 'A'" "false"
// ACTION: Create property 'A' // ACTION: Create member property 'A'
// ERROR: Unresolved reference: A // ERROR: Unresolved reference: A
fun foo() = J.<caret>A fun foo() = J.<caret>A
@@ -1,5 +1,5 @@
// "Create enum constant 'A'" "false" // "Create enum constant 'A'" "false"
// ACTION: Convert to block body // ACTION: Convert to block body
// ACTION: Create property 'A' // ACTION: Create member property 'A'
// ERROR: Unresolved reference: A // ERROR: Unresolved reference: A
fun foo(): J = J.<caret>A fun foo(): J = J.<caret>A
@@ -1,4 +1,4 @@
// "Create enum constant 'A'" "false" // "Create enum constant 'A'" "false"
// ACTION: Create property 'A' // ACTION: Create member property 'A'
// ERROR: Unresolved reference: A // ERROR: Unresolved reference: A
fun foo() = J.<caret>A fun foo() = J.<caret>A
@@ -1,5 +1,5 @@
// "Create enum constant 'A'" "false" // "Create enum constant 'A'" "false"
// ACTION: Convert to block body // ACTION: Convert to block body
// ACTION: Create property 'A' // ACTION: Create member property 'A'
// ERROR: Unresolved reference: A // ERROR: Unresolved reference: A
fun foo(): X = E.<caret>A fun foo(): X = E.<caret>A
@@ -1,6 +1,6 @@
// "Create enum constant 'A'" "false" // "Create enum constant 'A'" "false"
// ACTION: Create extension property 'A' // ACTION: Create extension property 'A'
// ACTION: Create property 'A' // ACTION: Create member property 'A'
// ERROR: Unresolved reference: A // ERROR: Unresolved reference: A
package p package p
@@ -1,4 +1,4 @@
// "Create object 'A'" "false" // "Create object 'A'" "false"
// ACTION: Create property 'A' // ACTION: Create member property 'A'
// ERROR: Unresolved reference: A // ERROR: Unresolved reference: A
fun foo() = J.<caret>A fun foo() = J.<caret>A
@@ -1,6 +1,6 @@
// "Create object 'A'" "false" // "Create object 'A'" "false"
// ACTION: Create extension property 'A' // ACTION: Create extension property 'A'
// ACTION: Create property 'A' // ACTION: Create member property 'A'
// ERROR: Unresolved reference: A // ERROR: Unresolved reference: A
package p package p
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
class A<T>(val n: T) class A<T>(val n: T)
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
class A<T>(val n: T) { class A<T>(val n: T) {
fun foo(t: T): A<T> { fun foo(t: T): A<T> {
@@ -1,4 +1,4 @@
// "Create function 'compareTo'" "true" // "Create member function 'compareTo'" "true"
class A<T>(val n: T) class A<T>(val n: T)
@@ -1,4 +1,4 @@
// "Create function 'compareTo'" "true" // "Create member function 'compareTo'" "true"
class A<T>(val n: T) { class A<T>(val n: T) {
fun compareTo(t: T): Int { fun compareTo(t: T): Int {
@@ -1,4 +1,4 @@
// "Create function 'contains'" "true" // "Create member function 'contains'" "true"
class A<T>(val n: T) class A<T>(val n: T)
@@ -1,4 +1,4 @@
// "Create function 'contains'" "true" // "Create member function 'contains'" "true"
class A<T>(val n: T) { class A<T>(val n: T) {
fun contains(t: T): Boolean { fun contains(t: T): Boolean {
@@ -1,4 +1,4 @@
// "Create function 'compareTo'" "true" // "Create member function 'compareTo'" "true"
class A<T>(val n: T) class A<T>(val n: T)
@@ -1,4 +1,4 @@
// "Create function 'compareTo'" "true" // "Create member function 'compareTo'" "true"
class A<T>(val n: T) { class A<T>(val n: T) {
fun compareTo(t: T): Int { fun compareTo(t: T): Int {
@@ -1,4 +1,4 @@
// "Create function 'contains'" "true" // "Create member function 'contains'" "true"
class A<T>(val n: T) class A<T>(val n: T)
@@ -1,4 +1,4 @@
// "Create function 'contains'" "true" // "Create member function 'contains'" "true"
class A<T>(val n: T) { class A<T>(val n: T) {
fun contains(t: T): Boolean { fun contains(t: T): Boolean {
@@ -1,4 +1,4 @@
// "Create function 'plusAssign'" "true" // "Create member function 'plusAssign'" "true"
class A<T>(val n: T) class A<T>(val n: T)
@@ -1,4 +1,4 @@
// "Create function 'plusAssign'" "true" // "Create member function 'plusAssign'" "true"
class A<T>(val n: T) { class A<T>(val n: T) {
fun plusAssign(t: T) { fun plusAssign(t: T) {
@@ -1,4 +1,4 @@
// "Create function 'plus'" "true" // "Create member function 'plus'" "true"
class A<T>(val n: T) { class A<T>(val n: T) {
fun plus(): A<T> = throw Exception() fun plus(): A<T> = throw Exception()
@@ -1,4 +1,4 @@
// "Create function 'plus'" "true" // "Create member function 'plus'" "true"
class A<T>(val n: T) { class A<T>(val n: T) {
fun plus(): A<T> = throw Exception() fun plus(): A<T> = throw Exception()
@@ -1,4 +1,4 @@
// "Create function 'plus'" "true" // "Create member function 'plus'" "true"
class A<T>(val n: T) class A<T>(val n: T)
@@ -1,4 +1,4 @@
// "Create function 'plus'" "true" // "Create member function 'plus'" "true"
class A<T>(val n: T) { class A<T>(val n: T) {
fun plus(t: T): A<T> { fun plus(t: T): A<T> {
@@ -1,4 +1,4 @@
// "Create function 'plus'" "true" // "Create member function 'plus'" "true"
class A<T>(val n: T) { class A<T>(val n: T) {
fun plus(i: Int, s: String): A<T> = throw Exception() fun plus(i: Int, s: String): A<T> = throw Exception()
@@ -1,4 +1,4 @@
// "Create function 'plus'" "true" // "Create member function 'plus'" "true"
class A<T>(val n: T) { class A<T>(val n: T) {
fun plus(i: Int, s: String): A<T> = throw Exception() fun plus(i: Int, s: String): A<T> = throw Exception()
@@ -1,4 +1,4 @@
// "Create function 'plus'" "true" // "Create member function 'plus'" "true"
class A<T>(val n: T) class A<T>(val n: T)
@@ -1,4 +1,4 @@
// "Create function 'plus'" "true" // "Create member function 'plus'" "true"
class A<T>(val n: T) { class A<T>(val n: T) {
fun plus(t: T): A<T> { fun plus(t: T): A<T> {
@@ -1,4 +1,4 @@
// "Create function 'plus'" "true" // "Create member function 'plus'" "true"
class A<T>(val n: T) class A<T>(val n: T)
@@ -1,4 +1,4 @@
// "Create function 'plus'" "true" // "Create member function 'plus'" "true"
class A<T>(val n: T) { class A<T>(val n: T) {
fun plus(i: Int): A<T> { fun plus(i: Int): A<T> {
@@ -1,4 +1,4 @@
// "Create function 'contains'" "true" // "Create member function 'contains'" "true"
class A<T>(val n: T) class A<T>(val n: T)
@@ -1,4 +1,4 @@
// "Create function 'contains'" "true" // "Create member function 'contains'" "true"
class A<T>(val n: T) { class A<T>(val n: T) {
fun contains(t: T): Boolean { fun contains(t: T): Boolean {
@@ -1,4 +1,4 @@
// "Create function 'contains'" "true" // "Create member function 'contains'" "true"
class A<T>(val n: T) class A<T>(val n: T)
@@ -1,4 +1,4 @@
// "Create function 'contains'" "true" // "Create member function 'contains'" "true"
class A<T>(val n: T) { class A<T>(val n: T) {
fun contains(t: T): Boolean { fun contains(t: T): Boolean {
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
class A<T>(val n: T) { class A<T>(val n: T) {
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
class A<T>(val n: T) { class A<T>(val n: T) {
fun foo(t: T, s: String, function: Function1<T, T>): A<T> { fun foo(t: T, s: String, function: Function1<T, T>): A<T> {
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
class A<T>(val n: T) { class A<T>(val n: T) {
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
class A<T>(val n: T) { class A<T>(val n: T) {
fun foo(function: Function1<T, T>): A<T> { fun foo(function: Function1<T, T>): A<T> {
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
class Settings class Settings
fun isModified(settings: Settings, c: C) = c.<caret>foo(settings) fun isModified(settings: Settings, c: C) = c.<caret>foo(settings)
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
class Settings class Settings
fun isModified(settings: Settings, c: C) = c.foo(settings) fun isModified(settings: Settings, c: C) = c.foo(settings)
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
class A<T>(val n: T) { class A<T>(val n: T) {
fun foo(a: Int): A<T> = throw Exception() fun foo(a: Int): A<T> = throw Exception()
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
class A<T>(val n: T) { class A<T>(val n: T) {
fun foo(a: Int): A<T> = throw Exception() fun foo(a: Int): A<T> = throw Exception()
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
class A<T>(val n: T) { class A<T>(val n: T) {
fun foo(i: Int, s: String): A<T> = throw Exception() fun foo(i: Int, s: String): A<T> = throw Exception()
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
class A<T>(val n: T) { class A<T>(val n: T) {
fun foo(i: Int, s: String): A<T> = throw Exception() fun foo(i: Int, s: String): A<T> = throw Exception()
@@ -1,4 +1,4 @@
// "Create function 'foo'" "false" // "Create member function 'foo'" "false"
// ERROR: Unresolved reference: foo // ERROR: Unresolved reference: foo
class A<T>(val n: T) class A<T>(val n: T)
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
class A<T>(val n: T) { class A<T>(val n: T) {
companion object { companion object {
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
class A<T>(val n: T) { class A<T>(val n: T) {
companion object { companion object {
@@ -1,4 +1,4 @@
// "Create function 'foo'" "false" // "Create member function 'foo'" "false"
// ACTION: Convert to expression body // ACTION: Convert to expression body
// ACTION: Create extension function 'foo' // ACTION: Create extension function 'foo'
// ERROR: Unresolved reference: foo // ERROR: Unresolved reference: foo
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
// ERROR: Unresolved reference: foo // ERROR: Unresolved reference: foo
fun test(a: A): Int? { fun test(a: A): Int? {
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
// ERROR: Unresolved reference: foo // ERROR: Unresolved reference: foo
fun test(a: A): Int? { fun test(a: A): Int? {
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
// ERROR: Unresolved reference: foo // ERROR: Unresolved reference: foo
fun test(): Int? { fun test(): Int? {
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
// ERROR: Unresolved reference: foo // ERROR: Unresolved reference: foo
fun test(): Int? { fun test(): Int? {
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
interface T interface T
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
interface T { interface T {
fun foo(s: String, i: Int): Boolean fun foo(s: String, i: Int): Boolean
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
object A object A
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
object A { object A {
fun foo(i: Int): Int { fun foo(i: Int): Int {
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
class A<T>(val n: T) class A<T>(val n: T)
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
class A<T>(val n: T) { class A<T>(val n: T) {
fun foo(t: T): A<T> { fun foo(t: T): A<T> {
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
class F { class F {
fun bar() { fun bar() {
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
class F { class F {
fun bar() { fun bar() {
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
class A<T>(val n: T) class A<T>(val n: T)
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
class A<T>(val n: T) { class A<T>(val n: T) {
fun foo(u: T): A<T> { fun foo(u: T): A<T> {
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
class A<T>(val n: T) class A<T>(val n: T)
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
class A<T>(val n: T) { class A<T>(val n: T) {
fun foo(abc: T, ghi: A<T>, def: String): A<T> { fun foo(abc: T, ghi: A<T>, def: String): A<T> {
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
class A<T>(val n: T) class A<T>(val n: T)
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
class A<T>(val n: T) { class A<T>(val n: T) {
fun foo(t: T?): A<Int> { fun foo(t: T?): A<Int> {
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
class A<T>(val n: T) class A<T>(val n: T)
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
class A<T>(val n: T) { class A<T>(val n: T) {
fun foo(t: T): A<T>? { fun foo(t: T): A<T>? {
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
class A<T>(val n: T) class A<T>(val n: T)
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
class A<T>(val n: T) { class A<T>(val n: T) {
fun foo(t: T): A<String> { fun foo(t: T): A<String> {
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
// ERROR: Unresolved reference: foo // ERROR: Unresolved reference: foo
fun test(): Int { fun test(): Int {
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
// ERROR: Unresolved reference: foo // ERROR: Unresolved reference: foo
fun test(): Int { fun test(): Int {
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
// ERROR: <html>Type mismatch.<table><tr><td>Required:</td><td>kotlin.Int</td></tr><tr><td>Found:</td><td>A&lt;kotlin.Int&gt;</td></tr></table></html> // ERROR: <html>Type mismatch.<table><tr><td>Required:</td><td>kotlin.Int</td></tr><tr><td>Found:</td><td>A&lt;kotlin.Int&gt;</td></tr></table></html>
class A<T>(val n: T) class A<T>(val n: T)
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
// ERROR: <html>Type mismatch.<table><tr><td>Required:</td><td>kotlin.Int</td></tr><tr><td>Found:</td><td>A&lt;kotlin.Int&gt;</td></tr></table></html> // ERROR: <html>Type mismatch.<table><tr><td>Required:</td><td>kotlin.Int</td></tr><tr><td>Found:</td><td>A&lt;kotlin.Int&gt;</td></tr></table></html>
class A<T>(val n: T) { class A<T>(val n: T) {
@@ -1,4 +1,4 @@
// "Create function 'foo'" "false" // "Create member function 'foo'" "false"
// ACTION: Convert to expression body // ACTION: Convert to expression body
// ACTION: Replace with infix function call // ACTION: Replace with infix function call
// ERROR: Unresolved reference: x // ERROR: Unresolved reference: x
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
class A class A
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
class A { class A {
fun foo(): String { fun foo(): String {
@@ -1,5 +1,5 @@
// "Create extension function 'foo'" "false" // "Create extension function 'foo'" "false"
// ACTION: Create function 'foo' // ACTION: Create member function 'foo'
// ERROR: Unresolved reference: foo // ERROR: Unresolved reference: foo
fun test() { fun test() {
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
// ERROR: Unresolved reference: foo // ERROR: Unresolved reference: foo
fun test() { fun test() {
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
// ERROR: Unresolved reference: foo // ERROR: Unresolved reference: foo
fun test() { fun test() {
@@ -1,4 +1,5 @@
// "Create function 'foo'" "false" // "Create function 'foo'" "false"
// "Create member function 'foo'" "false"
// ERROR: Unresolved reference: foo // ERROR: Unresolved reference: foo
fun test() { fun test() {
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
class SetOptions class SetOptions
fun isModified(setOptions: SetOptions, c: C) = c.<caret>foo(setOptions) fun isModified(setOptions: SetOptions, c: C) = c.<caret>foo(setOptions)
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
class SetOptions class SetOptions
fun isModified(setOptions: SetOptions, c: C) = c.foo(setOptions) fun isModified(setOptions: SetOptions, c: C) = c.foo(setOptions)
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
class A<T>(val n: T) { class A<T>(val n: T) {
fun test(): A<Int> { fun test(): A<Int> {
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
class A<T>(val n: T) { class A<T>(val n: T) {
fun test(): A<Int> { fun test(): A<Int> {
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
class A<T>(val n: T) class A<T>(val n: T)
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
class A<T>(val n: T) { class A<T>(val n: T) {
fun foo(i: Int, s: String): A<Int> { fun foo(i: Int, s: String): A<Int> {
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
class A<T>(val n: T) { class A<T>(val n: T) {
inner class B<U>(val m: U) { inner class B<U>(val m: U) {
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
class A<T>(val n: T) { class A<T>(val n: T) {
inner class B<U>(val m: U) { inner class B<U>(val m: U) {
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
class A<T>(val n: T) { class A<T>(val n: T) {
inner class B<U>(val m: U) { inner class B<U>(val m: U) {
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
class A<T>(val n: T) { class A<T>(val n: T) {
inner class B<U>(val m: U) { inner class B<U>(val m: U) {
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
class B<T>(val t: T) { class B<T>(val t: T) {
@@ -1,4 +1,4 @@
// "Create function 'foo'" "true" // "Create member function 'foo'" "true"
class B<T>(val t: T) { class B<T>(val t: T) {
fun <U, V> foo(u: U, v: V): U { fun <U, V> foo(u: U, v: V): U {

Some files were not shown because too many files have changed in this diff Show More