Synthetic properties: fixed completion and inspection for generic class

+ fixed KT-8539 No completion of generic extension function for <*> type arguments

 #KT-8539 Fixed
This commit is contained in:
Valentin Kipyatkov
2015-07-17 19:57:01 +03:00
parent d2fb7381ce
commit e0e7044032
15 changed files with 103 additions and 31 deletions
@@ -75,13 +75,14 @@ public class ReferenceVariantsHelper(
if (filterOutJavaGettersAndSetters) {
val accessorMethodsToRemove = HashSet<FunctionDescriptor>()
for (variant in variants) {
if (variant is SyntheticJavaPropertyDescriptor) {
accessorMethodsToRemove.add(variant.getMethod)
accessorMethodsToRemove.addIfNotNull(variant.setMethod)
val original = variant.original
if (original is SyntheticJavaPropertyDescriptor) {
accessorMethodsToRemove.add(original.getMethod)
accessorMethodsToRemove.addIfNotNull(original.setMethod)
}
}
variants = variants.filter { it !in accessorMethodsToRemove }
variants = variants.filter { it.original !in accessorMethodsToRemove }
}
return variants
@@ -108,8 +108,8 @@ class FuzzyType(
constraintSystem.registerTypeVariables(freeParameters, { Variance.INVARIANT })
when (matchKind) {
MatchKind.IS_SUBTYPE -> constraintSystem.addSubtypeConstraint(type, otherType, ConstraintPositionKind.SPECIAL.position())
MatchKind.IS_SUPERTYPE -> constraintSystem.addSubtypeConstraint(otherType, type, ConstraintPositionKind.SPECIAL.position())
MatchKind.IS_SUBTYPE -> constraintSystem.addSubtypeConstraint(type, otherType, ConstraintPositionKind.RECEIVER_POSITION.position())
MatchKind.IS_SUPERTYPE -> constraintSystem.addSubtypeConstraint(otherType, type, ConstraintPositionKind.RECEIVER_POSITION.position())
}
constraintSystem.fixVariables()