Smart completion after "by" works for getValue/setValue in generic class

This commit is contained in:
Valentin Kipyatkov
2016-03-31 21:26:50 +03:00
parent 4dde458e84
commit e05d6a7056
7 changed files with 82 additions and 1 deletions
@@ -64,7 +64,14 @@ abstract class TypesWithOperatorDetector(
private fun MutableCollection<FunctionDescriptor>.addSuitableOperators(functions: Collection<FunctionDescriptor>): MutableCollection<FunctionDescriptor> {
for (function in functions) {
if (!function.isValidOperator()) continue
val substitutor = checkIsSuitableByType(function, function.typeParameters) ?: continue
var freeParameters = function.typeParameters
val containingClass = function.containingDeclaration as? ClassDescriptor
if (containingClass != null) {
freeParameters += containingClass.typeConstructor.parameters
}
val substitutor = checkIsSuitableByType(function, freeParameters) ?: continue
add(function.substitute(substitutor))
}
return this