[AA] Add some tests for synthetic properties

KT-72301
diff --git a/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/components/resolver/Fe10IdeNormalAnalysisSourceModuleResolveCallTestGenerated.java b/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/components/resolver/Fe10IdeNormalAnalysisSourceModuleResolveCallTestGenerated.java
index ec99371..daefc8e 100644
--- a/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/components/resolver/Fe10IdeNormalAnalysisSourceModuleResolveCallTestGenerated.java
+++ b/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/components/resolver/Fe10IdeNormalAnalysisSourceModuleResolveCallTestGenerated.java
@@ -3255,6 +3255,30 @@
       runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticProperty.kt");
     }
 
+    @Test
+    @TestMetadata("SyntheticPropertyJavaOverride.kt")
+    public void testSyntheticPropertyJavaOverride() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverride.kt");
+    }
+
+    @Test
+    @TestMetadata("SyntheticPropertyJavaOverrideGeneric.kt")
+    public void testSyntheticPropertyJavaOverrideGeneric() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverrideGeneric.kt");
+    }
+
+    @Test
+    @TestMetadata("SyntheticPropertyKotlinOverride.kt")
+    public void testSyntheticPropertyKotlinOverride() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverride.kt");
+    }
+
+    @Test
+    @TestMetadata("SyntheticPropertyKotlinOverrideGeneric.kt")
+    public void testSyntheticPropertyKotlinOverrideGeneric() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverrideGeneric.kt");
+    }
+
     @Nested
     @TestMetadata("analysis/analysis-api/testData/components/resolver/singleByPsi/java/enumWithCustomGetName")
     @TestDataPath("$PROJECT_ROOT")
diff --git a/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/components/resolver/Fe10IdeNormalAnalysisSourceModuleResolveCandidatesTestGenerated.java b/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/components/resolver/Fe10IdeNormalAnalysisSourceModuleResolveCandidatesTestGenerated.java
index df72592..05368f0 100644
--- a/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/components/resolver/Fe10IdeNormalAnalysisSourceModuleResolveCandidatesTestGenerated.java
+++ b/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/components/resolver/Fe10IdeNormalAnalysisSourceModuleResolveCandidatesTestGenerated.java
@@ -3255,6 +3255,30 @@
       runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticProperty.kt");
     }
 
+    @Test
+    @TestMetadata("SyntheticPropertyJavaOverride.kt")
+    public void testSyntheticPropertyJavaOverride() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverride.kt");
+    }
+
+    @Test
+    @TestMetadata("SyntheticPropertyJavaOverrideGeneric.kt")
+    public void testSyntheticPropertyJavaOverrideGeneric() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverrideGeneric.kt");
+    }
+
+    @Test
+    @TestMetadata("SyntheticPropertyKotlinOverride.kt")
+    public void testSyntheticPropertyKotlinOverride() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverride.kt");
+    }
+
+    @Test
+    @TestMetadata("SyntheticPropertyKotlinOverrideGeneric.kt")
+    public void testSyntheticPropertyKotlinOverrideGeneric() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverrideGeneric.kt");
+    }
+
     @Nested
     @TestMetadata("analysis/analysis-api/testData/components/resolver/singleByPsi/java/enumWithCustomGetName")
     @TestDataPath("$PROJECT_ROOT")
diff --git a/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/components/resolver/Fe10IdeNormalAnalysisSourceModuleResolveReferenceTestGenerated.java b/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/components/resolver/Fe10IdeNormalAnalysisSourceModuleResolveReferenceTestGenerated.java
index 0bd30ab..08874a5 100644
--- a/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/components/resolver/Fe10IdeNormalAnalysisSourceModuleResolveReferenceTestGenerated.java
+++ b/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/components/resolver/Fe10IdeNormalAnalysisSourceModuleResolveReferenceTestGenerated.java
@@ -3255,6 +3255,30 @@
       runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticProperty.kt");
     }
 
+    @Test
+    @TestMetadata("SyntheticPropertyJavaOverride.kt")
+    public void testSyntheticPropertyJavaOverride() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverride.kt");
+    }
+
+    @Test
+    @TestMetadata("SyntheticPropertyJavaOverrideGeneric.kt")
+    public void testSyntheticPropertyJavaOverrideGeneric() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverrideGeneric.kt");
+    }
+
+    @Test
+    @TestMetadata("SyntheticPropertyKotlinOverride.kt")
+    public void testSyntheticPropertyKotlinOverride() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverride.kt");
+    }
+
+    @Test
+    @TestMetadata("SyntheticPropertyKotlinOverrideGeneric.kt")
+    public void testSyntheticPropertyKotlinOverrideGeneric() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverrideGeneric.kt");
+    }
+
     @Nested
     @TestMetadata("analysis/analysis-api/testData/components/resolver/singleByPsi/java/enumWithCustomGetName")
     @TestDataPath("$PROJECT_ROOT")
diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/containingDeclarationProvider/FirIdeDependentAnalysisSourceModuleContainingDeclarationProviderByReferenceTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/containingDeclarationProvider/FirIdeDependentAnalysisSourceModuleContainingDeclarationProviderByReferenceTestGenerated.java
index bd80962..f5c0d3c 100644
--- a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/containingDeclarationProvider/FirIdeDependentAnalysisSourceModuleContainingDeclarationProviderByReferenceTestGenerated.java
+++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/containingDeclarationProvider/FirIdeDependentAnalysisSourceModuleContainingDeclarationProviderByReferenceTestGenerated.java
@@ -113,6 +113,42 @@
   }
 
   @Test
+  @TestMetadata("syntheticProperty.kt")
+  public void testSyntheticProperty() {
+    runTest("analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticProperty.kt");
+  }
+
+  @Test
+  @TestMetadata("syntheticPropertyJavaOverride.kt")
+  public void testSyntheticPropertyJavaOverride() {
+    runTest("analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyJavaOverride.kt");
+  }
+
+  @Test
+  @TestMetadata("syntheticPropertyJavaOverrideIntersection.kt")
+  public void testSyntheticPropertyJavaOverrideIntersection() {
+    runTest("analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyJavaOverrideIntersection.kt");
+  }
+
+  @Test
+  @TestMetadata("syntheticPropertyJavaOverrideSmartcast.kt")
+  public void testSyntheticPropertyJavaOverrideSmartcast() {
+    runTest("analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyJavaOverrideSmartcast.kt");
+  }
+
+  @Test
+  @TestMetadata("syntheticPropertyKotlinOverride.kt")
+  public void testSyntheticPropertyKotlinOverride() {
+    runTest("analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyKotlinOverride.kt");
+  }
+
+  @Test
+  @TestMetadata("syntheticPropertyKotlinOverrideSmartcast.kt")
+  public void testSyntheticPropertyKotlinOverrideSmartcast() {
+    runTest("analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyKotlinOverrideSmartcast.kt");
+  }
+
+  @Test
   @TestMetadata("topLevelFunctionFromInside.kt")
   public void testTopLevelFunctionFromInside() {
     runTest("analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/topLevelFunctionFromInside.kt");
diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/containingDeclarationProvider/FirIdeNormalAnalysisSourceModuleContainingDeclarationProviderByReferenceTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/containingDeclarationProvider/FirIdeNormalAnalysisSourceModuleContainingDeclarationProviderByReferenceTestGenerated.java
index caf7b13..324962c 100644
--- a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/containingDeclarationProvider/FirIdeNormalAnalysisSourceModuleContainingDeclarationProviderByReferenceTestGenerated.java
+++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/containingDeclarationProvider/FirIdeNormalAnalysisSourceModuleContainingDeclarationProviderByReferenceTestGenerated.java
@@ -113,6 +113,42 @@
   }
 
   @Test
+  @TestMetadata("syntheticProperty.kt")
+  public void testSyntheticProperty() {
+    runTest("analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticProperty.kt");
+  }
+
+  @Test
+  @TestMetadata("syntheticPropertyJavaOverride.kt")
+  public void testSyntheticPropertyJavaOverride() {
+    runTest("analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyJavaOverride.kt");
+  }
+
+  @Test
+  @TestMetadata("syntheticPropertyJavaOverrideIntersection.kt")
+  public void testSyntheticPropertyJavaOverrideIntersection() {
+    runTest("analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyJavaOverrideIntersection.kt");
+  }
+
+  @Test
+  @TestMetadata("syntheticPropertyJavaOverrideSmartcast.kt")
+  public void testSyntheticPropertyJavaOverrideSmartcast() {
+    runTest("analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyJavaOverrideSmartcast.kt");
+  }
+
+  @Test
+  @TestMetadata("syntheticPropertyKotlinOverride.kt")
+  public void testSyntheticPropertyKotlinOverride() {
+    runTest("analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyKotlinOverride.kt");
+  }
+
+  @Test
+  @TestMetadata("syntheticPropertyKotlinOverrideSmartcast.kt")
+  public void testSyntheticPropertyKotlinOverrideSmartcast() {
+    runTest("analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyKotlinOverrideSmartcast.kt");
+  }
+
+  @Test
   @TestMetadata("topLevelFunctionFromInside.kt")
   public void testTopLevelFunctionFromInside() {
     runTest("analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/topLevelFunctionFromInside.kt");
diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/resolver/FirIdeNormalAnalysisLibrarySourceModuleResolveCallTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/resolver/FirIdeNormalAnalysisLibrarySourceModuleResolveCallTestGenerated.java
index 515c28a..63695cb 100644
--- a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/resolver/FirIdeNormalAnalysisLibrarySourceModuleResolveCallTestGenerated.java
+++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/resolver/FirIdeNormalAnalysisLibrarySourceModuleResolveCallTestGenerated.java
@@ -3133,6 +3133,30 @@
       runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticProperty.kt");
     }
 
+    @Test
+    @TestMetadata("SyntheticPropertyJavaOverride.kt")
+    public void testSyntheticPropertyJavaOverride() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverride.kt");
+    }
+
+    @Test
+    @TestMetadata("SyntheticPropertyJavaOverrideGeneric.kt")
+    public void testSyntheticPropertyJavaOverrideGeneric() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverrideGeneric.kt");
+    }
+
+    @Test
+    @TestMetadata("SyntheticPropertyKotlinOverride.kt")
+    public void testSyntheticPropertyKotlinOverride() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverride.kt");
+    }
+
+    @Test
+    @TestMetadata("SyntheticPropertyKotlinOverrideGeneric.kt")
+    public void testSyntheticPropertyKotlinOverrideGeneric() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverrideGeneric.kt");
+    }
+
     @Nested
     @TestMetadata("analysis/analysis-api/testData/components/resolver/singleByPsi/java/enumWithCustomGetName")
     @TestDataPath("$PROJECT_ROOT")
diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/resolver/FirIdeNormalAnalysisLibrarySourceModuleResolveCandidatesTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/resolver/FirIdeNormalAnalysisLibrarySourceModuleResolveCandidatesTestGenerated.java
index d7317c7..6395a86 100644
--- a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/resolver/FirIdeNormalAnalysisLibrarySourceModuleResolveCandidatesTestGenerated.java
+++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/resolver/FirIdeNormalAnalysisLibrarySourceModuleResolveCandidatesTestGenerated.java
@@ -3133,6 +3133,30 @@
       runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticProperty.kt");
     }
 
+    @Test
+    @TestMetadata("SyntheticPropertyJavaOverride.kt")
+    public void testSyntheticPropertyJavaOverride() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverride.kt");
+    }
+
+    @Test
+    @TestMetadata("SyntheticPropertyJavaOverrideGeneric.kt")
+    public void testSyntheticPropertyJavaOverrideGeneric() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverrideGeneric.kt");
+    }
+
+    @Test
+    @TestMetadata("SyntheticPropertyKotlinOverride.kt")
+    public void testSyntheticPropertyKotlinOverride() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverride.kt");
+    }
+
+    @Test
+    @TestMetadata("SyntheticPropertyKotlinOverrideGeneric.kt")
+    public void testSyntheticPropertyKotlinOverrideGeneric() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverrideGeneric.kt");
+    }
+
     @Nested
     @TestMetadata("analysis/analysis-api/testData/components/resolver/singleByPsi/java/enumWithCustomGetName")
     @TestDataPath("$PROJECT_ROOT")
diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/resolver/FirIdeNormalAnalysisLibrarySourceModuleResolveReferenceTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/resolver/FirIdeNormalAnalysisLibrarySourceModuleResolveReferenceTestGenerated.java
index 80a3cda..967318a 100644
--- a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/resolver/FirIdeNormalAnalysisLibrarySourceModuleResolveReferenceTestGenerated.java
+++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/resolver/FirIdeNormalAnalysisLibrarySourceModuleResolveReferenceTestGenerated.java
@@ -3133,6 +3133,30 @@
       runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticProperty.kt");
     }
 
+    @Test
+    @TestMetadata("SyntheticPropertyJavaOverride.kt")
+    public void testSyntheticPropertyJavaOverride() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverride.kt");
+    }
+
+    @Test
+    @TestMetadata("SyntheticPropertyJavaOverrideGeneric.kt")
+    public void testSyntheticPropertyJavaOverrideGeneric() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverrideGeneric.kt");
+    }
+
+    @Test
+    @TestMetadata("SyntheticPropertyKotlinOverride.kt")
+    public void testSyntheticPropertyKotlinOverride() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverride.kt");
+    }
+
+    @Test
+    @TestMetadata("SyntheticPropertyKotlinOverrideGeneric.kt")
+    public void testSyntheticPropertyKotlinOverrideGeneric() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverrideGeneric.kt");
+    }
+
     @Nested
     @TestMetadata("analysis/analysis-api/testData/components/resolver/singleByPsi/java/enumWithCustomGetName")
     @TestDataPath("$PROJECT_ROOT")
diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/resolver/FirIdeNormalAnalysisSourceModuleResolveCallTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/resolver/FirIdeNormalAnalysisSourceModuleResolveCallTestGenerated.java
index ebccb92..5875091 100644
--- a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/resolver/FirIdeNormalAnalysisSourceModuleResolveCallTestGenerated.java
+++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/resolver/FirIdeNormalAnalysisSourceModuleResolveCallTestGenerated.java
@@ -3255,6 +3255,30 @@
       runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticProperty.kt");
     }
 
+    @Test
+    @TestMetadata("SyntheticPropertyJavaOverride.kt")
+    public void testSyntheticPropertyJavaOverride() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverride.kt");
+    }
+
+    @Test
+    @TestMetadata("SyntheticPropertyJavaOverrideGeneric.kt")
+    public void testSyntheticPropertyJavaOverrideGeneric() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverrideGeneric.kt");
+    }
+
+    @Test
+    @TestMetadata("SyntheticPropertyKotlinOverride.kt")
+    public void testSyntheticPropertyKotlinOverride() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverride.kt");
+    }
+
+    @Test
+    @TestMetadata("SyntheticPropertyKotlinOverrideGeneric.kt")
+    public void testSyntheticPropertyKotlinOverrideGeneric() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverrideGeneric.kt");
+    }
+
     @Nested
     @TestMetadata("analysis/analysis-api/testData/components/resolver/singleByPsi/java/enumWithCustomGetName")
     @TestDataPath("$PROJECT_ROOT")
diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/resolver/FirIdeNormalAnalysisSourceModuleResolveCandidatesTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/resolver/FirIdeNormalAnalysisSourceModuleResolveCandidatesTestGenerated.java
index f303a50..d380526 100644
--- a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/resolver/FirIdeNormalAnalysisSourceModuleResolveCandidatesTestGenerated.java
+++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/resolver/FirIdeNormalAnalysisSourceModuleResolveCandidatesTestGenerated.java
@@ -3255,6 +3255,30 @@
       runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticProperty.kt");
     }
 
+    @Test
+    @TestMetadata("SyntheticPropertyJavaOverride.kt")
+    public void testSyntheticPropertyJavaOverride() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverride.kt");
+    }
+
+    @Test
+    @TestMetadata("SyntheticPropertyJavaOverrideGeneric.kt")
+    public void testSyntheticPropertyJavaOverrideGeneric() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverrideGeneric.kt");
+    }
+
+    @Test
+    @TestMetadata("SyntheticPropertyKotlinOverride.kt")
+    public void testSyntheticPropertyKotlinOverride() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverride.kt");
+    }
+
+    @Test
+    @TestMetadata("SyntheticPropertyKotlinOverrideGeneric.kt")
+    public void testSyntheticPropertyKotlinOverrideGeneric() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverrideGeneric.kt");
+    }
+
     @Nested
     @TestMetadata("analysis/analysis-api/testData/components/resolver/singleByPsi/java/enumWithCustomGetName")
     @TestDataPath("$PROJECT_ROOT")
diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/resolver/FirIdeNormalAnalysisSourceModuleResolveReferenceTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/resolver/FirIdeNormalAnalysisSourceModuleResolveReferenceTestGenerated.java
index d05980e..b01df26 100644
--- a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/resolver/FirIdeNormalAnalysisSourceModuleResolveReferenceTestGenerated.java
+++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/resolver/FirIdeNormalAnalysisSourceModuleResolveReferenceTestGenerated.java
@@ -3255,6 +3255,30 @@
       runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticProperty.kt");
     }
 
+    @Test
+    @TestMetadata("SyntheticPropertyJavaOverride.kt")
+    public void testSyntheticPropertyJavaOverride() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverride.kt");
+    }
+
+    @Test
+    @TestMetadata("SyntheticPropertyJavaOverrideGeneric.kt")
+    public void testSyntheticPropertyJavaOverrideGeneric() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverrideGeneric.kt");
+    }
+
+    @Test
+    @TestMetadata("SyntheticPropertyKotlinOverride.kt")
+    public void testSyntheticPropertyKotlinOverride() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverride.kt");
+    }
+
+    @Test
+    @TestMetadata("SyntheticPropertyKotlinOverrideGeneric.kt")
+    public void testSyntheticPropertyKotlinOverrideGeneric() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverrideGeneric.kt");
+    }
+
     @Nested
     @TestMetadata("analysis/analysis-api/testData/components/resolver/singleByPsi/java/enumWithCustomGetName")
     @TestDataPath("$PROJECT_ROOT")
diff --git a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/containingDeclarationProvider/FirStandaloneNormalAnalysisSourceModuleContainingDeclarationProviderByReferenceTestGenerated.java b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/containingDeclarationProvider/FirStandaloneNormalAnalysisSourceModuleContainingDeclarationProviderByReferenceTestGenerated.java
index 5c69635..f1bede3 100644
--- a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/containingDeclarationProvider/FirStandaloneNormalAnalysisSourceModuleContainingDeclarationProviderByReferenceTestGenerated.java
+++ b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/containingDeclarationProvider/FirStandaloneNormalAnalysisSourceModuleContainingDeclarationProviderByReferenceTestGenerated.java
@@ -113,6 +113,42 @@
   }
 
   @Test
+  @TestMetadata("syntheticProperty.kt")
+  public void testSyntheticProperty() {
+    runTest("analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticProperty.kt");
+  }
+
+  @Test
+  @TestMetadata("syntheticPropertyJavaOverride.kt")
+  public void testSyntheticPropertyJavaOverride() {
+    runTest("analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyJavaOverride.kt");
+  }
+
+  @Test
+  @TestMetadata("syntheticPropertyJavaOverrideIntersection.kt")
+  public void testSyntheticPropertyJavaOverrideIntersection() {
+    runTest("analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyJavaOverrideIntersection.kt");
+  }
+
+  @Test
+  @TestMetadata("syntheticPropertyJavaOverrideSmartcast.kt")
+  public void testSyntheticPropertyJavaOverrideSmartcast() {
+    runTest("analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyJavaOverrideSmartcast.kt");
+  }
+
+  @Test
+  @TestMetadata("syntheticPropertyKotlinOverride.kt")
+  public void testSyntheticPropertyKotlinOverride() {
+    runTest("analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyKotlinOverride.kt");
+  }
+
+  @Test
+  @TestMetadata("syntheticPropertyKotlinOverrideSmartcast.kt")
+  public void testSyntheticPropertyKotlinOverrideSmartcast() {
+    runTest("analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyKotlinOverrideSmartcast.kt");
+  }
+
+  @Test
   @TestMetadata("topLevelFunctionFromInside.kt")
   public void testTopLevelFunctionFromInside() {
     runTest("analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/topLevelFunctionFromInside.kt");
diff --git a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/resolver/FirStandaloneNormalAnalysisSourceModuleResolveCallTestGenerated.java b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/resolver/FirStandaloneNormalAnalysisSourceModuleResolveCallTestGenerated.java
index ba9ae45..0bc561b 100644
--- a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/resolver/FirStandaloneNormalAnalysisSourceModuleResolveCallTestGenerated.java
+++ b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/resolver/FirStandaloneNormalAnalysisSourceModuleResolveCallTestGenerated.java
@@ -3255,6 +3255,30 @@
       runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticProperty.kt");
     }
 
+    @Test
+    @TestMetadata("SyntheticPropertyJavaOverride.kt")
+    public void testSyntheticPropertyJavaOverride() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverride.kt");
+    }
+
+    @Test
+    @TestMetadata("SyntheticPropertyJavaOverrideGeneric.kt")
+    public void testSyntheticPropertyJavaOverrideGeneric() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverrideGeneric.kt");
+    }
+
+    @Test
+    @TestMetadata("SyntheticPropertyKotlinOverride.kt")
+    public void testSyntheticPropertyKotlinOverride() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverride.kt");
+    }
+
+    @Test
+    @TestMetadata("SyntheticPropertyKotlinOverrideGeneric.kt")
+    public void testSyntheticPropertyKotlinOverrideGeneric() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverrideGeneric.kt");
+    }
+
     @Nested
     @TestMetadata("analysis/analysis-api/testData/components/resolver/singleByPsi/java/enumWithCustomGetName")
     @TestDataPath("$PROJECT_ROOT")
diff --git a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/resolver/FirStandaloneNormalAnalysisSourceModuleResolveCandidatesTestGenerated.java b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/resolver/FirStandaloneNormalAnalysisSourceModuleResolveCandidatesTestGenerated.java
index f653914..95937e7 100644
--- a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/resolver/FirStandaloneNormalAnalysisSourceModuleResolveCandidatesTestGenerated.java
+++ b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/resolver/FirStandaloneNormalAnalysisSourceModuleResolveCandidatesTestGenerated.java
@@ -3255,6 +3255,30 @@
       runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticProperty.kt");
     }
 
+    @Test
+    @TestMetadata("SyntheticPropertyJavaOverride.kt")
+    public void testSyntheticPropertyJavaOverride() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverride.kt");
+    }
+
+    @Test
+    @TestMetadata("SyntheticPropertyJavaOverrideGeneric.kt")
+    public void testSyntheticPropertyJavaOverrideGeneric() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverrideGeneric.kt");
+    }
+
+    @Test
+    @TestMetadata("SyntheticPropertyKotlinOverride.kt")
+    public void testSyntheticPropertyKotlinOverride() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverride.kt");
+    }
+
+    @Test
+    @TestMetadata("SyntheticPropertyKotlinOverrideGeneric.kt")
+    public void testSyntheticPropertyKotlinOverrideGeneric() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverrideGeneric.kt");
+    }
+
     @Nested
     @TestMetadata("analysis/analysis-api/testData/components/resolver/singleByPsi/java/enumWithCustomGetName")
     @TestDataPath("$PROJECT_ROOT")
diff --git a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/resolver/FirStandaloneNormalAnalysisSourceModuleResolveReferenceTestGenerated.java b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/resolver/FirStandaloneNormalAnalysisSourceModuleResolveReferenceTestGenerated.java
index 152b638..758e55d 100644
--- a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/resolver/FirStandaloneNormalAnalysisSourceModuleResolveReferenceTestGenerated.java
+++ b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/resolver/FirStandaloneNormalAnalysisSourceModuleResolveReferenceTestGenerated.java
@@ -3255,6 +3255,30 @@
       runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticProperty.kt");
     }
 
+    @Test
+    @TestMetadata("SyntheticPropertyJavaOverride.kt")
+    public void testSyntheticPropertyJavaOverride() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverride.kt");
+    }
+
+    @Test
+    @TestMetadata("SyntheticPropertyJavaOverrideGeneric.kt")
+    public void testSyntheticPropertyJavaOverrideGeneric() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverrideGeneric.kt");
+    }
+
+    @Test
+    @TestMetadata("SyntheticPropertyKotlinOverride.kt")
+    public void testSyntheticPropertyKotlinOverride() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverride.kt");
+    }
+
+    @Test
+    @TestMetadata("SyntheticPropertyKotlinOverrideGeneric.kt")
+    public void testSyntheticPropertyKotlinOverrideGeneric() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverrideGeneric.kt");
+    }
+
     @Nested
     @TestMetadata("analysis/analysis-api/testData/components/resolver/singleByPsi/java/enumWithCustomGetName")
     @TestDataPath("$PROJECT_ROOT")
diff --git a/analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticProperty.kt b/analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticProperty.kt
new file mode 100644
index 0000000..2d072f8
--- /dev/null
+++ b/analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticProperty.kt
@@ -0,0 +1,9 @@
+// FILE: J.java
+public abstract class J {
+    public abstract String getString();
+}
+
+// FILE: test.kt
+fun test(j: J) {
+    j.strin<caret>g
+}
diff --git a/analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticProperty.txt b/analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticProperty.txt
new file mode 100644
index 0000000..25731a1
--- /dev/null
+++ b/analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticProperty.txt
@@ -0,0 +1,2 @@
+/J.string
+/J
\ No newline at end of file
diff --git a/analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyJavaOverride.kt b/analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyJavaOverride.kt
new file mode 100644
index 0000000..3db29a0
--- /dev/null
+++ b/analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyJavaOverride.kt
@@ -0,0 +1,14 @@
+// FILE: J.java
+public class J extends K {
+    @Override
+    public String getString() { return ""; }
+}
+
+// FILE: test.kt
+abstract class K {
+    abstract val string: String
+}
+
+fun test(j: J) {
+    j.strin<caret>g
+}
diff --git a/analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyJavaOverride.txt b/analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyJavaOverride.txt
new file mode 100644
index 0000000..25731a1
--- /dev/null
+++ b/analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyJavaOverride.txt
@@ -0,0 +1,2 @@
+/J.string
+/J
\ No newline at end of file
diff --git a/analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyJavaOverrideIntersection.kt b/analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyJavaOverrideIntersection.kt
new file mode 100644
index 0000000..21a2744
--- /dev/null
+++ b/analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyJavaOverrideIntersection.kt
@@ -0,0 +1,18 @@
+// FILE: J.java
+public class J extends K<String> {
+    @Override
+    public Foo<String> getFoo() { return null; }
+}
+
+// FILE: test.kt
+abstract class K<T> {
+    abstract val foo: Foo<T>
+}
+
+class Foo<T>
+
+fun <T> test(c: K<T>) {
+    if (c is J) {
+        c.fo<caret>o
+    }
+}
diff --git a/analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyJavaOverrideIntersection.txt b/analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyJavaOverrideIntersection.txt
new file mode 100644
index 0000000..c39fbcc
--- /dev/null
+++ b/analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyJavaOverrideIntersection.txt
@@ -0,0 +1,2 @@
+/J.foo
+/J
\ No newline at end of file
diff --git a/analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyJavaOverrideSmartcast.kt b/analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyJavaOverrideSmartcast.kt
new file mode 100644
index 0000000..951d4e7
--- /dev/null
+++ b/analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyJavaOverrideSmartcast.kt
@@ -0,0 +1,16 @@
+// FILE: J.java
+public class J extends K {
+    @Override
+    public String getString() { return ""; }
+}
+
+// FILE: test.kt
+abstract class K {
+    abstract val string: String
+}
+
+fun test(c: K) {
+    if (c is J) {
+        c.strin<caret>g
+    }
+}
diff --git a/analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyJavaOverrideSmartcast.txt b/analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyJavaOverrideSmartcast.txt
new file mode 100644
index 0000000..25731a1
--- /dev/null
+++ b/analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyJavaOverrideSmartcast.txt
@@ -0,0 +1,2 @@
+/J.string
+/J
\ No newline at end of file
diff --git a/analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyKotlinOverride.kt b/analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyKotlinOverride.kt
new file mode 100644
index 0000000..88d296e
--- /dev/null
+++ b/analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyKotlinOverride.kt
@@ -0,0 +1,13 @@
+// FILE: J.java
+public abstract class J {
+    public abstract String getString();
+}
+
+// FILE: test.kt
+fun test(k: K) {
+    k.strin<caret>g
+}
+
+class K : J() {
+    override fun getString() = ""
+}
diff --git a/analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyKotlinOverride.txt b/analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyKotlinOverride.txt
new file mode 100644
index 0000000..7e6d80f
--- /dev/null
+++ b/analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyKotlinOverride.txt
@@ -0,0 +1,2 @@
+/K.string
+/K
\ No newline at end of file
diff --git a/analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyKotlinOverrideSmartcast.kt b/analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyKotlinOverrideSmartcast.kt
new file mode 100644
index 0000000..776485b
--- /dev/null
+++ b/analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyKotlinOverrideSmartcast.kt
@@ -0,0 +1,15 @@
+// FILE: J.java
+public abstract class J {
+    public abstract String getString();
+}
+
+// FILE: test.kt
+fun test(c: J) {
+    if (c is K) {
+        c.strin<caret>g
+    }
+}
+
+class K : J() {
+    override fun getString() = ""
+}
diff --git a/analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyKotlinOverrideSmartcast.txt b/analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyKotlinOverrideSmartcast.txt
new file mode 100644
index 0000000..7e6d80f
--- /dev/null
+++ b/analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByReference/syntheticPropertyKotlinOverrideSmartcast.txt
@@ -0,0 +1,2 @@
+/K.string
+/K
\ No newline at end of file
diff --git a/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverride.call.txt b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverride.call.txt
new file mode 100644
index 0000000..6f59256
--- /dev/null
+++ b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverride.call.txt
@@ -0,0 +1,256 @@
+<caret_1>:
+  KtNameReferenceExpression(147,156): 'something'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = javaClass
+            isSafeNavigation = false
+            type = JavaClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /JavaClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+
+<caret_2>:
+  KtNameReferenceExpression(172,181): 'something'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = javaClass
+            isSafeNavigation = false
+            type = JavaClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /JavaClass.something
+        simpleAccess = Write:
+          value = 1
+        typeArgumentsMapping = {}
+
+<caret_3>:
+  KtNameReferenceExpression(200,209): 'something'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = javaClass
+            isSafeNavigation = false
+            type = JavaClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /JavaClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+
+<caret_4>:
+  KtNameReferenceExpression(229,238): 'something'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = javaClass
+            isSafeNavigation = false
+            type = JavaClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /JavaClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+
+<caret_5>:
+  KtNameReferenceExpression(257,266): 'something'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = javaClass
+            isSafeNavigation = false
+            type = JavaClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /JavaClass.something
+        simpleAccess = Write:
+          value = --
+        typeArgumentsMapping = {}
+
+<caret_6>:
+  KtNameReferenceExpression(271,280): 'something'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaImplicitReceiverValue:
+            symbol = KaReceiverParameterSymbol:
+              annotations: []
+              callableId: null
+              compilerVisibility: Public
+              contextReceivers: []
+              isActual: false
+              isExpect: false
+              isExtension: false
+              isVal: true
+              location: LOCAL
+              modality: FINAL
+              name: <receiver>
+              origin: SOURCE
+              owningCallableSymbol: KaNamedFunctionSymbol(/foo)
+              receiverParameter: null
+              returnType: KaUsualClassType:
+                annotations: []
+                typeArguments: []
+                type: JavaClass
+              visibility: PUBLIC
+            type = JavaClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /JavaClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+
+<caret_7>:
+  KtNameReferenceExpression(384,393): 'something'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaSmartCastedReceiverValue:
+            original = KaExplicitReceiverValue:
+              expression = kotlinClass
+              isSafeNavigation = false
+              type = KotlinClass
+            type = JavaClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /JavaClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+
+<caret_8>:
+  KtNameReferenceExpression(415,424): 'something'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaSmartCastedReceiverValue:
+            original = KaExplicitReceiverValue:
+              expression = kotlinClass
+              isSafeNavigation = false
+              type = KotlinClass
+            type = JavaClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /JavaClass.something
+        simpleAccess = Write:
+          value = 1
+        typeArgumentsMapping = {}
+
+<caret_9>:
+  KtNameReferenceExpression(449,458): 'something'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = JavaClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /JavaClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+
+<caret_10>:
+  KtNameReferenceExpression(484,493): 'something'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = JavaClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /JavaClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+
+<caret_11>:
+  KtNameReferenceExpression(518,527): 'something'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = JavaClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /JavaClass.something
+        simpleAccess = Write:
+          value = --
+        typeArgumentsMapping = {}
\ No newline at end of file
diff --git a/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverride.candidates.txt b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverride.candidates.txt
new file mode 100644
index 0000000..88e5e58
--- /dev/null
+++ b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverride.candidates.txt
@@ -0,0 +1,287 @@
+<caret_1>:
+  KtNameReferenceExpression(147,156): 'something'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = javaClass
+            isSafeNavigation = false
+            type = JavaClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /JavaClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_2>:
+  KtNameReferenceExpression(172,181): 'something'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = javaClass
+            isSafeNavigation = false
+            type = JavaClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /JavaClass.something
+        simpleAccess = Write:
+          value = 1
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_3>:
+  KtNameReferenceExpression(200,209): 'something'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = javaClass
+            isSafeNavigation = false
+            type = JavaClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /JavaClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_4>:
+  KtNameReferenceExpression(229,238): 'something'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = javaClass
+            isSafeNavigation = false
+            type = JavaClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /JavaClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_5>:
+  KtNameReferenceExpression(257,266): 'something'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = javaClass
+            isSafeNavigation = false
+            type = JavaClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /JavaClass.something
+        simpleAccess = Write:
+          value = --
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_6>:
+  KtNameReferenceExpression(271,280): 'something'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaImplicitReceiverValue:
+            symbol = KaReceiverParameterSymbol:
+              annotations: []
+              callableId: null
+              compilerVisibility: Public
+              contextReceivers: []
+              isActual: false
+              isExpect: false
+              isExtension: false
+              isVal: true
+              location: LOCAL
+              modality: FINAL
+              name: <receiver>
+              origin: SOURCE
+              owningCallableSymbol: KaNamedFunctionSymbol(/foo)
+              receiverParameter: null
+              returnType: KaUsualClassType:
+                annotations: []
+                typeArguments: []
+                type: JavaClass
+              visibility: PUBLIC
+            type = JavaClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /JavaClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_7>:
+  KtNameReferenceExpression(384,393): 'something'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+      isInBestCandidates = false
+
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaSmartCastedReceiverValue:
+            original = KaExplicitReceiverValue:
+              expression = kotlinClass
+              isSafeNavigation = false
+              type = KotlinClass
+            type = JavaClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /JavaClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_8>:
+  KtNameReferenceExpression(415,424): 'something'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaSmartCastedReceiverValue:
+            original = KaExplicitReceiverValue:
+              expression = kotlinClass
+              isSafeNavigation = false
+              type = KotlinClass
+            type = JavaClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /JavaClass.something
+        simpleAccess = Write:
+          value = 1
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_9>:
+  KtNameReferenceExpression(449,458): 'something'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = JavaClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /JavaClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_10>:
+  KtNameReferenceExpression(484,493): 'something'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = JavaClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /JavaClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_11>:
+  KtNameReferenceExpression(518,527): 'something'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = JavaClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /JavaClass.something
+        simpleAccess = Write:
+          value = --
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
\ No newline at end of file
diff --git a/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverride.descriptors.call.txt b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverride.descriptors.call.txt
new file mode 100644
index 0000000..bad2996
--- /dev/null
+++ b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverride.descriptors.call.txt
@@ -0,0 +1,250 @@
+<caret_1>:
+  KtNameReferenceExpression(147,156): 'something'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = javaClass
+            isSafeNavigation = false
+            type = JavaClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /JavaClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+
+<caret_2>:
+  KtNameReferenceExpression(172,181): 'something'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = javaClass
+            isSafeNavigation = false
+            type = JavaClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /JavaClass.something
+        simpleAccess = Write:
+          value = 1
+        typeArgumentsMapping = {}
+
+<caret_3>:
+  KtNameReferenceExpression(200,209): 'something'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = javaClass
+            isSafeNavigation = false
+            type = JavaClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /JavaClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+
+<caret_4>:
+  KtNameReferenceExpression(229,238): 'something'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = javaClass
+            isSafeNavigation = false
+            type = JavaClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /JavaClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+
+<caret_5>:
+  KtNameReferenceExpression(257,266): 'something'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = javaClass
+            isSafeNavigation = false
+            type = JavaClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /JavaClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+
+<caret_6>:
+  KtNameReferenceExpression(271,280): 'something'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaImplicitReceiverValue:
+            symbol = KaReceiverParameterSymbol:
+              annotations: []
+              callableId: null
+              compilerVisibility: Local
+              contextReceivers: []
+              isActual: false
+              isExpect: false
+              isExtension: false
+              isVal: true
+              location: LOCAL
+              modality: FINAL
+              name: <receiver>
+              origin: SOURCE
+              owningCallableSymbol: KaNamedFunctionSymbol(/foo)
+              receiverParameter: null
+              returnType: KaUsualClassType:
+                annotations: []
+                typeArguments: []
+                type: JavaClass
+              visibility: LOCAL
+            type = JavaClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /JavaClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+
+<caret_7>:
+  KtNameReferenceExpression(384,393): 'something'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+
+<caret_8>:
+  KtNameReferenceExpression(415,424): 'something'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Write:
+          value = 1
+        typeArgumentsMapping = {}
+
+<caret_9>:
+  KtNameReferenceExpression(449,458): 'something'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+
+<caret_10>:
+  KtNameReferenceExpression(484,493): 'something'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+
+<caret_11>:
+  KtNameReferenceExpression(518,527): 'something'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
\ No newline at end of file
diff --git a/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverride.descriptors.candidates.txt b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverride.descriptors.candidates.txt
new file mode 100644
index 0000000..a691ca9
--- /dev/null
+++ b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverride.descriptors.candidates.txt
@@ -0,0 +1,261 @@
+<caret_1>:
+  KtNameReferenceExpression(147,156): 'something'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = javaClass
+            isSafeNavigation = false
+            type = JavaClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /JavaClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_2>:
+  KtNameReferenceExpression(172,181): 'something'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = javaClass
+            isSafeNavigation = false
+            type = JavaClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /JavaClass.something
+        simpleAccess = Write:
+          value = 1
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_3>:
+  KtNameReferenceExpression(200,209): 'something'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = javaClass
+            isSafeNavigation = false
+            type = JavaClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /JavaClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_4>:
+  KtNameReferenceExpression(229,238): 'something'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = javaClass
+            isSafeNavigation = false
+            type = JavaClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /JavaClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_5>:
+  KtNameReferenceExpression(257,266): 'something'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = javaClass
+            isSafeNavigation = false
+            type = JavaClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /JavaClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_6>:
+  KtNameReferenceExpression(271,280): 'something'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaImplicitReceiverValue:
+            symbol = KaReceiverParameterSymbol:
+              annotations: []
+              callableId: null
+              compilerVisibility: Local
+              contextReceivers: []
+              isActual: false
+              isExpect: false
+              isExtension: false
+              isVal: true
+              location: LOCAL
+              modality: FINAL
+              name: <receiver>
+              origin: SOURCE
+              owningCallableSymbol: KaNamedFunctionSymbol(/foo)
+              receiverParameter: null
+              returnType: KaUsualClassType:
+                annotations: []
+                typeArguments: []
+                type: JavaClass
+              visibility: LOCAL
+            type = JavaClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /JavaClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_7>:
+  KtNameReferenceExpression(384,393): 'something'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_8>:
+  KtNameReferenceExpression(415,424): 'something'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Write:
+          value = 1
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_9>:
+  KtNameReferenceExpression(449,458): 'something'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_10>:
+  KtNameReferenceExpression(484,493): 'something'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_11>:
+  KtNameReferenceExpression(518,527): 'something'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
\ No newline at end of file
diff --git a/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverride.descriptors.references.txt b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverride.descriptors.references.txt
new file mode 100644
index 0000000..fa4635b
--- /dev/null
+++ b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverride.descriptors.references.txt
@@ -0,0 +1,112 @@
+<caret_1>:
+  KtNameReferenceExpression(147,156): 'something'
+    KtSimpleNameReference:
+      (in <local>: JavaClass.something) get()
+
+    SyntheticPropertyAccessorReference:
+      Nothing (Unresolved reference)
+
+<caret_2>:
+  KtNameReferenceExpression(172,181): 'something'
+    KtSimpleNameReference:
+      (in <local>: JavaClass.something) set(value: kotlin.Int)
+
+    SyntheticPropertyAccessorReference:
+      Nothing (Unresolved reference)
+
+<caret_3>:
+  KtNameReferenceExpression(200,209): 'something'
+    KtSimpleNameReference:
+      0: (in <local>: JavaClass.something) get()
+      1: (in <local>: JavaClass.something) set(value: kotlin.Int)
+
+    SyntheticPropertyAccessorReference:
+      Nothing (Unresolved reference)
+
+    SyntheticPropertyAccessorReference:
+      Nothing (Unresolved reference)
+
+<caret_4>:
+  KtNameReferenceExpression(229,238): 'something'
+    KtSimpleNameReference:
+      0: (in <local>: JavaClass.something) get()
+      1: (in <local>: JavaClass.something) set(value: kotlin.Int)
+
+    SyntheticPropertyAccessorReference:
+      Nothing (Unresolved reference)
+
+    SyntheticPropertyAccessorReference:
+      Nothing (Unresolved reference)
+
+<caret_5>:
+  KtNameReferenceExpression(257,266): 'something'
+    KtSimpleNameReference:
+      0: (in <local>: JavaClass.something) get()
+      1: (in <local>: JavaClass.something) set(value: kotlin.Int)
+
+    SyntheticPropertyAccessorReference:
+      Nothing (Unresolved reference)
+
+    SyntheticPropertyAccessorReference:
+      Nothing (Unresolved reference)
+
+<caret_6>:
+  KtNameReferenceExpression(271,280): 'something'
+    KtSimpleNameReference:
+      0: (in <local>: JavaClass.something) get()
+      1: (in <local>: JavaClass.something) set(value: kotlin.Int)
+
+    SyntheticPropertyAccessorReference:
+      Nothing (Unresolved reference)
+
+    SyntheticPropertyAccessorReference:
+      Nothing (Unresolved reference)
+
+<caret_7>:
+  KtNameReferenceExpression(384,393): 'something'
+    KtSimpleNameReference:
+      (in KotlinClass) open var something: kotlin.Int
+
+    SyntheticPropertyAccessorReference:
+      Nothing (Unresolved reference)
+
+<caret_8>:
+  KtNameReferenceExpression(415,424): 'something'
+    KtSimpleNameReference:
+      (in KotlinClass) open var something: kotlin.Int
+
+    SyntheticPropertyAccessorReference:
+      Nothing (Unresolved reference)
+
+<caret_9>:
+  KtNameReferenceExpression(449,458): 'something'
+    KtSimpleNameReference:
+      (in KotlinClass) open var something: kotlin.Int
+
+    SyntheticPropertyAccessorReference:
+      Nothing (Unresolved reference)
+
+    SyntheticPropertyAccessorReference:
+      Nothing (Unresolved reference)
+
+<caret_10>:
+  KtNameReferenceExpression(484,493): 'something'
+    KtSimpleNameReference:
+      (in KotlinClass) open var something: kotlin.Int
+
+    SyntheticPropertyAccessorReference:
+      Nothing (Unresolved reference)
+
+    SyntheticPropertyAccessorReference:
+      Nothing (Unresolved reference)
+
+<caret_11>:
+  KtNameReferenceExpression(518,527): 'something'
+    KtSimpleNameReference:
+      (in KotlinClass) open var something: kotlin.Int
+
+    SyntheticPropertyAccessorReference:
+      Nothing (Unresolved reference)
+
+    SyntheticPropertyAccessorReference:
+      Nothing (Unresolved reference)
\ No newline at end of file
diff --git a/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverride.kt b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverride.kt
new file mode 100644
index 0000000..45f3d76
--- /dev/null
+++ b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverride.kt
@@ -0,0 +1,31 @@
+// FILE: JavaClass.java
+public class JavaClass extends KotlinClass {
+    @Override
+    public int getSomething() { return 1; }
+    @Override
+    public void setSomething(int value) {}
+}
+
+// FILE: main.kt
+open class KotlinClass {
+    open var something: Int = 1
+}
+
+fun JavaClass.foo(javaClass: JavaClass) {
+    print(javaClass.<caret_1>something)
+    javaClass.<caret_2>something = 1
+    javaClass.<caret_3>something += 1
+    javaClass.<caret_4>something++
+    --javaClass.<caret_5>something
+    <caret_6>something++
+}
+
+fun bar(kotlinClass: KotlinClass) {
+    if (kotlinClass is JavaClass) {
+        print(kotlinClass.<caret_7>something)
+        kotlinClass.<caret_8>something = 1
+        kotlinClass.<caret_9>something += 1
+        kotlinClass.<caret_10>something++
+        --kotlinClass.<caret_11>something
+    }
+}
\ No newline at end of file
diff --git a/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverride.references.txt b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverride.references.txt
new file mode 100644
index 0000000..71ad927
--- /dev/null
+++ b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverride.references.txt
@@ -0,0 +1,75 @@
+<caret_1>:
+  KtNameReferenceExpression(147,156): 'something'
+    KtSimpleNameReference:
+      (in JavaClass) open var something: kotlin.Int
+
+<caret_2>:
+  KtNameReferenceExpression(172,181): 'something'
+    KtSimpleNameReference:
+      (in JavaClass) open var something: kotlin.Int
+
+<caret_3>:
+  KtNameReferenceExpression(200,209): 'something'
+    KtSimpleNameReference:
+      (in JavaClass) open var something: kotlin.Int
+
+    KtSimpleNameReference:
+      (in JavaClass) open var something: kotlin.Int
+
+<caret_4>:
+  KtNameReferenceExpression(229,238): 'something'
+    KtSimpleNameReference:
+      (in JavaClass) open var something: kotlin.Int
+
+    KtSimpleNameReference:
+      (in JavaClass) open var something: kotlin.Int
+
+<caret_5>:
+  KtNameReferenceExpression(257,266): 'something'
+    KtSimpleNameReference:
+      (in JavaClass) open var something: kotlin.Int
+
+    KtSimpleNameReference:
+      (in JavaClass) open var something: kotlin.Int
+
+<caret_6>:
+  KtNameReferenceExpression(271,280): 'something'
+    KtSimpleNameReference:
+      (in JavaClass) open var something: kotlin.Int
+
+    KtSimpleNameReference:
+      (in JavaClass) open var something: kotlin.Int
+
+<caret_7>:
+  KtNameReferenceExpression(384,393): 'something'
+    KtSimpleNameReference:
+      (in JavaClass) open var something: kotlin.Int
+
+<caret_8>:
+  KtNameReferenceExpression(415,424): 'something'
+    KtSimpleNameReference:
+      (in JavaClass) open var something: kotlin.Int
+
+<caret_9>:
+  KtNameReferenceExpression(449,458): 'something'
+    KtSimpleNameReference:
+      (in JavaClass) open var something: kotlin.Int
+
+    KtSimpleNameReference:
+      (in JavaClass) open var something: kotlin.Int
+
+<caret_10>:
+  KtNameReferenceExpression(484,493): 'something'
+    KtSimpleNameReference:
+      (in JavaClass) open var something: kotlin.Int
+
+    KtSimpleNameReference:
+      (in JavaClass) open var something: kotlin.Int
+
+<caret_11>:
+  KtNameReferenceExpression(518,527): 'something'
+    KtSimpleNameReference:
+      (in JavaClass) open var something: kotlin.Int
+
+    KtSimpleNameReference:
+      (in JavaClass) open var something: kotlin.Int
\ No newline at end of file
diff --git a/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverrideGeneric.call.txt b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverrideGeneric.call.txt
new file mode 100644
index 0000000..c3e7740
--- /dev/null
+++ b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverrideGeneric.call.txt
@@ -0,0 +1,65 @@
+<caret_1>:
+  KtNameReferenceExpression(192,195): 'foo'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = javaClass
+            isSafeNavigation = false
+            type = JavaClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = foo
+            receiverType = null
+            returnType = @EnhancedNullability Foo<kotlin.String!>
+            symbol = var foo: @EnhancedNullability Foo<kotlin.String!>
+            contextParameters = []
+            callableId = /JavaClass.foo
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+
+<caret_2>:
+  KtNameReferenceExpression(211,214): 'foo'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = javaClass
+            isSafeNavigation = false
+            type = JavaClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = foo
+            receiverType = null
+            returnType = @EnhancedNullability Foo<kotlin.String!>
+            symbol = var foo: @EnhancedNullability Foo<kotlin.String!>
+            contextParameters = []
+            callableId = /JavaClass.foo
+        simpleAccess = Write:
+          value = foo
+        typeArgumentsMapping = {}
+
+<caret_3>:
+  KtNameReferenceExpression(329,332): 'foo'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaSmartCastedReceiverValue:
+            original = KaExplicitReceiverValue:
+              expression = kotlinClass
+              isSafeNavigation = false
+              type = KotlinClass<T>
+            type = it(JavaClass & KotlinClass<T>)
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = foo
+            receiverType = null
+            returnType = @EnhancedNullability Foo<kotlin.String!>
+            symbol = var foo: @EnhancedNullability Foo<kotlin.String!>
+            contextParameters = []
+            callableId = /JavaClass.foo
+        simpleAccess = Read
+        typeArgumentsMapping = {}
\ No newline at end of file
diff --git a/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverrideGeneric.candidates.txt b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverrideGeneric.candidates.txt
new file mode 100644
index 0000000..1d54193
--- /dev/null
+++ b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverrideGeneric.candidates.txt
@@ -0,0 +1,88 @@
+<caret_1>:
+  KtNameReferenceExpression(192,195): 'foo'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = javaClass
+            isSafeNavigation = false
+            type = JavaClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = foo
+            receiverType = null
+            returnType = @EnhancedNullability Foo<kotlin.String!>
+            symbol = var foo: @EnhancedNullability Foo<kotlin.String!>
+            contextParameters = []
+            callableId = /JavaClass.foo
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_2>:
+  KtNameReferenceExpression(211,214): 'foo'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = javaClass
+            isSafeNavigation = false
+            type = JavaClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = foo
+            receiverType = null
+            returnType = @EnhancedNullability Foo<kotlin.String!>
+            symbol = var foo: @EnhancedNullability Foo<kotlin.String!>
+            contextParameters = []
+            callableId = /JavaClass.foo
+        simpleAccess = Write:
+          value = foo
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_3>:
+  KtNameReferenceExpression(329,332): 'foo'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = KotlinClass<T>
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = foo
+            receiverType = null
+            returnType = Foo<T>
+            symbol = var foo: Foo<T>
+            contextParameters = []
+            callableId = /KotlinClass.foo
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+      isInBestCandidates = false
+
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaSmartCastedReceiverValue:
+            original = KaExplicitReceiverValue:
+              expression = kotlinClass
+              isSafeNavigation = false
+              type = KotlinClass<T>
+            type = it(JavaClass & KotlinClass<T>)
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = foo
+            receiverType = null
+            returnType = @EnhancedNullability Foo<kotlin.String!>
+            symbol = var foo: @EnhancedNullability Foo<kotlin.String!>
+            contextParameters = []
+            callableId = /JavaClass.foo
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
\ No newline at end of file
diff --git a/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverrideGeneric.descriptors.call.txt b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverrideGeneric.descriptors.call.txt
new file mode 100644
index 0000000..43cd315
--- /dev/null
+++ b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverrideGeneric.descriptors.call.txt
@@ -0,0 +1,65 @@
+<caret_1>:
+  KtNameReferenceExpression(192,195): 'foo'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = javaClass
+            isSafeNavigation = false
+            type = JavaClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = foo
+            receiverType = null
+            returnType = Foo<kotlin.String!>
+            symbol = var foo: Foo<kotlin.String!>
+            contextParameters = []
+            callableId = /JavaClass.foo
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+
+<caret_2>:
+  KtNameReferenceExpression(211,214): 'foo'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = javaClass
+            isSafeNavigation = false
+            type = JavaClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = foo
+            receiverType = null
+            returnType = Foo<kotlin.String!>
+            symbol = var foo: Foo<kotlin.String!>
+            contextParameters = []
+            callableId = /JavaClass.foo
+        simpleAccess = Write:
+          value = foo
+        typeArgumentsMapping = {}
+
+<caret_3>:
+  KtNameReferenceExpression(329,332): 'foo'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaSmartCastedReceiverValue:
+            original = KaExplicitReceiverValue:
+              expression = kotlinClass
+              isSafeNavigation = false
+              type = KotlinClass<T>
+            type = JavaClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = foo
+            receiverType = null
+            returnType = Foo<kotlin.String!>
+            symbol = var foo: Foo<kotlin.String!>
+            contextParameters = []
+            callableId = /JavaClass.foo
+        simpleAccess = Read
+        typeArgumentsMapping = {}
\ No newline at end of file
diff --git a/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverrideGeneric.descriptors.candidates.txt b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverrideGeneric.descriptors.candidates.txt
new file mode 100644
index 0000000..90d8e92
--- /dev/null
+++ b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverrideGeneric.descriptors.candidates.txt
@@ -0,0 +1,68 @@
+<caret_1>:
+  KtNameReferenceExpression(192,195): 'foo'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = javaClass
+            isSafeNavigation = false
+            type = JavaClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = foo
+            receiverType = null
+            returnType = Foo<kotlin.String!>
+            symbol = var foo: Foo<kotlin.String!>
+            contextParameters = []
+            callableId = /JavaClass.foo
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_2>:
+  KtNameReferenceExpression(211,214): 'foo'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = javaClass
+            isSafeNavigation = false
+            type = JavaClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = foo
+            receiverType = null
+            returnType = Foo<kotlin.String!>
+            symbol = var foo: Foo<kotlin.String!>
+            contextParameters = []
+            callableId = /JavaClass.foo
+        simpleAccess = Write:
+          value = foo
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_3>:
+  KtNameReferenceExpression(329,332): 'foo'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaSmartCastedReceiverValue:
+            original = KaExplicitReceiverValue:
+              expression = kotlinClass
+              isSafeNavigation = false
+              type = KotlinClass<T>
+            type = JavaClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = foo
+            receiverType = null
+            returnType = Foo<kotlin.String!>
+            symbol = var foo: Foo<kotlin.String!>
+            contextParameters = []
+            callableId = /JavaClass.foo
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
\ No newline at end of file
diff --git a/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverrideGeneric.descriptors.references.txt b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverrideGeneric.descriptors.references.txt
new file mode 100644
index 0000000..c90d7ec
--- /dev/null
+++ b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverrideGeneric.descriptors.references.txt
@@ -0,0 +1,23 @@
+<caret_1>:
+  KtNameReferenceExpression(192,195): 'foo'
+    KtSimpleNameReference:
+      (in <local>: JavaClass.foo) get()
+
+    SyntheticPropertyAccessorReference:
+      Nothing (Unresolved reference)
+
+<caret_2>:
+  KtNameReferenceExpression(211,214): 'foo'
+    KtSimpleNameReference:
+      (in <local>: JavaClass.foo) set(value: (Foo<kotlin.String!>..Foo<kotlin.String!>?))
+
+    SyntheticPropertyAccessorReference:
+      Nothing (Unresolved reference)
+
+<caret_3>:
+  KtNameReferenceExpression(329,332): 'foo'
+    KtSimpleNameReference:
+      (in <local>: JavaClass.foo) get()
+
+    SyntheticPropertyAccessorReference:
+      Nothing (Unresolved reference)
\ No newline at end of file
diff --git a/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverrideGeneric.kt b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverrideGeneric.kt
new file mode 100644
index 0000000..6d803ff
--- /dev/null
+++ b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverrideGeneric.kt
@@ -0,0 +1,26 @@
+// FILE: JavaClass.java
+public class JavaClass extends KotlinClass<String> {
+    @Override
+    public Foo<String> getFoo() { return null; }
+    @Override
+    public void setFoo(Foo<String> foo) {}
+}
+
+// FILE: main.kt
+abstract class KotlinClass<T> {
+    abstract var foo: Foo<T>
+}
+
+interface Foo<T> {
+}
+
+fun JavaClass.test(javaClass: JavaClass, foo: Foo<String>) {
+    print(javaClass.<caret_1>foo)
+    javaClass.<caret_2>foo = foo
+}
+
+fun <T> bar(kotlinClass: KotlinClass<T>) {
+    if (kotlinClass is JavaClass) {
+        print(kotlinClass.<caret_3>foo)
+    }
+}
\ No newline at end of file
diff --git a/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverrideGeneric.references.txt b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverrideGeneric.references.txt
new file mode 100644
index 0000000..af65479
--- /dev/null
+++ b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverrideGeneric.references.txt
@@ -0,0 +1,14 @@
+<caret_1>:
+  KtNameReferenceExpression(192,195): 'foo'
+    KtSimpleNameReference:
+      (in JavaClass) open var foo: Foo<kotlin.String!>
+
+<caret_2>:
+  KtNameReferenceExpression(211,214): 'foo'
+    KtSimpleNameReference:
+      (in JavaClass) open var foo: Foo<kotlin.String!>
+
+<caret_3>:
+  KtNameReferenceExpression(329,332): 'foo'
+    KtSimpleNameReference:
+      (in JavaClass) override var foo: Foo<kotlin.String!>
\ No newline at end of file
diff --git a/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverride.call.txt b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverride.call.txt
new file mode 100644
index 0000000..4eceaf8
--- /dev/null
+++ b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverride.call.txt
@@ -0,0 +1,256 @@
+<caret_1>:
+  KtNameReferenceExpression(268,277): 'something'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+
+<caret_2>:
+  KtNameReferenceExpression(295,304): 'something'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Write:
+          value = 1
+        typeArgumentsMapping = {}
+
+<caret_3>:
+  KtNameReferenceExpression(325,334): 'something'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+
+<caret_4>:
+  KtNameReferenceExpression(356,365): 'something'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+
+<caret_5>:
+  KtNameReferenceExpression(386,395): 'something'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Write:
+          value = --
+        typeArgumentsMapping = {}
+
+<caret_6>:
+  KtNameReferenceExpression(400,409): 'something'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaImplicitReceiverValue:
+            symbol = KaReceiverParameterSymbol:
+              annotations: []
+              callableId: null
+              compilerVisibility: Public
+              contextReceivers: []
+              isActual: false
+              isExpect: false
+              isExtension: false
+              isVal: true
+              location: LOCAL
+              modality: FINAL
+              name: <receiver>
+              origin: SOURCE
+              owningCallableSymbol: KaNamedFunctionSymbol(/foo)
+              receiverParameter: null
+              returnType: KaUsualClassType:
+                annotations: []
+                typeArguments: []
+                type: KotlinClass
+              visibility: PUBLIC
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+
+<caret_7>:
+  KtNameReferenceExpression(507,516): 'something'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaSmartCastedReceiverValue:
+            original = KaExplicitReceiverValue:
+              expression = javaClass
+              isSafeNavigation = false
+              type = JavaClass
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+
+<caret_8>:
+  KtNameReferenceExpression(536,545): 'something'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaSmartCastedReceiverValue:
+            original = KaExplicitReceiverValue:
+              expression = javaClass
+              isSafeNavigation = false
+              type = JavaClass
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Write:
+          value = 1
+        typeArgumentsMapping = {}
+
+<caret_9>:
+  KtNameReferenceExpression(568,577): 'something'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = javaClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+
+<caret_10>:
+  KtNameReferenceExpression(601,610): 'something'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = javaClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+
+<caret_11>:
+  KtNameReferenceExpression(633,642): 'something'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = javaClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Write:
+          value = --
+        typeArgumentsMapping = {}
diff --git a/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverride.candidates.txt b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverride.candidates.txt
new file mode 100644
index 0000000..09827e3
--- /dev/null
+++ b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverride.candidates.txt
@@ -0,0 +1,267 @@
+<caret_1>:
+  KtNameReferenceExpression(268,277): 'something'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_2>:
+  KtNameReferenceExpression(295,304): 'something'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Write:
+          value = 1
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_3>:
+  KtNameReferenceExpression(325,334): 'something'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_4>:
+  KtNameReferenceExpression(356,365): 'something'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_5>:
+  KtNameReferenceExpression(386,395): 'something'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Write:
+          value = --
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_6>:
+  KtNameReferenceExpression(400,409): 'something'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaImplicitReceiverValue:
+            symbol = KaReceiverParameterSymbol:
+              annotations: []
+              callableId: null
+              compilerVisibility: Public
+              contextReceivers: []
+              isActual: false
+              isExpect: false
+              isExtension: false
+              isVal: true
+              location: LOCAL
+              modality: FINAL
+              name: <receiver>
+              origin: SOURCE
+              owningCallableSymbol: KaNamedFunctionSymbol(/foo)
+              receiverParameter: null
+              returnType: KaUsualClassType:
+                annotations: []
+                typeArguments: []
+                type: KotlinClass
+              visibility: PUBLIC
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_7>:
+  KtNameReferenceExpression(507,516): 'something'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaSmartCastedReceiverValue:
+            original = KaExplicitReceiverValue:
+              expression = javaClass
+              isSafeNavigation = false
+              type = JavaClass
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_8>:
+  KtNameReferenceExpression(536,545): 'something'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaSmartCastedReceiverValue:
+            original = KaExplicitReceiverValue:
+              expression = javaClass
+              isSafeNavigation = false
+              type = JavaClass
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Write:
+          value = 1
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_9>:
+  KtNameReferenceExpression(568,577): 'something'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = javaClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_10>:
+  KtNameReferenceExpression(601,610): 'something'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = javaClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_11>:
+  KtNameReferenceExpression(633,642): 'something'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = javaClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Write:
+          value = --
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
diff --git a/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverride.descriptors.call.txt b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverride.descriptors.call.txt
new file mode 100644
index 0000000..62426f3
--- /dev/null
+++ b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverride.descriptors.call.txt
@@ -0,0 +1,260 @@
+<caret_1>:
+  KtNameReferenceExpression(268,277): 'something'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+
+<caret_2>:
+  KtNameReferenceExpression(295,304): 'something'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Write:
+          value = 1
+        typeArgumentsMapping = {}
+
+<caret_3>:
+  KtNameReferenceExpression(325,334): 'something'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+
+<caret_4>:
+  KtNameReferenceExpression(356,365): 'something'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+
+<caret_5>:
+  KtNameReferenceExpression(386,395): 'something'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+
+<caret_6>:
+  KtNameReferenceExpression(400,409): 'something'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaImplicitReceiverValue:
+            symbol = KaReceiverParameterSymbol:
+              annotations: []
+              callableId: null
+              compilerVisibility: Local
+              contextReceivers: []
+              isActual: false
+              isExpect: false
+              isExtension: false
+              isVal: true
+              location: LOCAL
+              modality: FINAL
+              name: <receiver>
+              origin: SOURCE
+              owningCallableSymbol: KaNamedFunctionSymbol(/foo)
+              receiverParameter: null
+              returnType: KaUsualClassType:
+                annotations: []
+                typeArguments: []
+                type: KotlinClass
+              visibility: LOCAL
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+
+<caret_7>:
+  KtNameReferenceExpression(507,516): 'something'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaSmartCastedReceiverValue:
+            original = KaExplicitReceiverValue:
+              expression = javaClass
+              isSafeNavigation = false
+              type = JavaClass
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+
+<caret_8>:
+  KtNameReferenceExpression(536,545): 'something'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaSmartCastedReceiverValue:
+            original = KaExplicitReceiverValue:
+              expression = javaClass
+              isSafeNavigation = false
+              type = JavaClass
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Write:
+          value = 1
+        typeArgumentsMapping = {}
+
+<caret_9>:
+  KtNameReferenceExpression(568,577): 'something'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaSmartCastedReceiverValue:
+            original = KaExplicitReceiverValue:
+              expression = javaClass
+              isSafeNavigation = false
+              type = JavaClass
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+
+<caret_10>:
+  KtNameReferenceExpression(601,610): 'something'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaSmartCastedReceiverValue:
+            original = KaExplicitReceiverValue:
+              expression = javaClass
+              isSafeNavigation = false
+              type = JavaClass
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+
+<caret_11>:
+  KtNameReferenceExpression(633,642): 'something'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaSmartCastedReceiverValue:
+            original = KaExplicitReceiverValue:
+              expression = javaClass
+              isSafeNavigation = false
+              type = JavaClass
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
\ No newline at end of file
diff --git a/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverride.descriptors.candidates.txt b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverride.descriptors.candidates.txt
new file mode 100644
index 0000000..42aaa05
--- /dev/null
+++ b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverride.descriptors.candidates.txt
@@ -0,0 +1,271 @@
+<caret_1>:
+  KtNameReferenceExpression(268,277): 'something'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_2>:
+  KtNameReferenceExpression(295,304): 'something'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Write:
+          value = 1
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_3>:
+  KtNameReferenceExpression(325,334): 'something'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_4>:
+  KtNameReferenceExpression(356,365): 'something'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_5>:
+  KtNameReferenceExpression(386,395): 'something'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_6>:
+  KtNameReferenceExpression(400,409): 'something'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaImplicitReceiverValue:
+            symbol = KaReceiverParameterSymbol:
+              annotations: []
+              callableId: null
+              compilerVisibility: Local
+              contextReceivers: []
+              isActual: false
+              isExpect: false
+              isExtension: false
+              isVal: true
+              location: LOCAL
+              modality: FINAL
+              name: <receiver>
+              origin: SOURCE
+              owningCallableSymbol: KaNamedFunctionSymbol(/foo)
+              receiverParameter: null
+              returnType: KaUsualClassType:
+                annotations: []
+                typeArguments: []
+                type: KotlinClass
+              visibility: LOCAL
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_7>:
+  KtNameReferenceExpression(507,516): 'something'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaSmartCastedReceiverValue:
+            original = KaExplicitReceiverValue:
+              expression = javaClass
+              isSafeNavigation = false
+              type = JavaClass
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_8>:
+  KtNameReferenceExpression(536,545): 'something'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaSmartCastedReceiverValue:
+            original = KaExplicitReceiverValue:
+              expression = javaClass
+              isSafeNavigation = false
+              type = JavaClass
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Write:
+          value = 1
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_9>:
+  KtNameReferenceExpression(568,577): 'something'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaSmartCastedReceiverValue:
+            original = KaExplicitReceiverValue:
+              expression = javaClass
+              isSafeNavigation = false
+              type = JavaClass
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_10>:
+  KtNameReferenceExpression(601,610): 'something'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaSmartCastedReceiverValue:
+            original = KaExplicitReceiverValue:
+              expression = javaClass
+              isSafeNavigation = false
+              type = JavaClass
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_11>:
+  KtNameReferenceExpression(633,642): 'something'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaSmartCastedReceiverValue:
+            original = KaExplicitReceiverValue:
+              expression = javaClass
+              isSafeNavigation = false
+              type = JavaClass
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = something
+            receiverType = null
+            returnType = kotlin.Int
+            symbol = var something: kotlin.Int
+            contextParameters = []
+            callableId = /KotlinClass.something
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
\ No newline at end of file
diff --git a/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverride.descriptors.references.txt b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverride.descriptors.references.txt
new file mode 100644
index 0000000..880cc01
--- /dev/null
+++ b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverride.descriptors.references.txt
@@ -0,0 +1,108 @@
+<caret_1>:
+  KtNameReferenceExpression(268,277): 'something'
+    KtSimpleNameReference:
+      (in KotlinClass) var KotlinClass.something: kotlin.Int
+
+    SyntheticPropertyAccessorReference:
+      (in KotlinClass) override fun getSomething(): kotlin.Int
+
+<caret_2>:
+  KtNameReferenceExpression(295,304): 'something'
+    KtSimpleNameReference:
+      (in KotlinClass) var KotlinClass.something: kotlin.Int
+
+    SyntheticPropertyAccessorReference:
+      (in KotlinClass) override fun setSomething(value: kotlin.Int)
+
+<caret_3>:
+  KtNameReferenceExpression(325,334): 'something'
+    KtSimpleNameReference:
+      (in KotlinClass) var KotlinClass.something: kotlin.Int
+
+    SyntheticPropertyAccessorReference:
+      (in KotlinClass) override fun getSomething(): kotlin.Int
+
+    SyntheticPropertyAccessorReference:
+      (in KotlinClass) override fun setSomething(value: kotlin.Int)
+
+<caret_4>:
+  KtNameReferenceExpression(356,365): 'something'
+    KtSimpleNameReference:
+      (in KotlinClass) var KotlinClass.something: kotlin.Int
+
+    SyntheticPropertyAccessorReference:
+      (in KotlinClass) override fun getSomething(): kotlin.Int
+
+    SyntheticPropertyAccessorReference:
+      (in KotlinClass) override fun setSomething(value: kotlin.Int)
+
+<caret_5>:
+  KtNameReferenceExpression(386,395): 'something'
+    KtSimpleNameReference:
+      (in KotlinClass) var KotlinClass.something: kotlin.Int
+
+    SyntheticPropertyAccessorReference:
+      (in KotlinClass) override fun getSomething(): kotlin.Int
+
+    SyntheticPropertyAccessorReference:
+      (in KotlinClass) override fun setSomething(value: kotlin.Int)
+
+<caret_6>:
+  KtNameReferenceExpression(400,409): 'something'
+    KtSimpleNameReference:
+      (in KotlinClass) var KotlinClass.something: kotlin.Int
+
+    SyntheticPropertyAccessorReference:
+      (in KotlinClass) override fun getSomething(): kotlin.Int
+
+    SyntheticPropertyAccessorReference:
+      (in KotlinClass) override fun setSomething(value: kotlin.Int)
+
+<caret_7>:
+  KtNameReferenceExpression(507,516): 'something'
+    KtSimpleNameReference:
+      (in KotlinClass) var KotlinClass.something: kotlin.Int
+
+    SyntheticPropertyAccessorReference:
+      (in KotlinClass) override fun getSomething(): kotlin.Int
+
+<caret_8>:
+  KtNameReferenceExpression(536,545): 'something'
+    KtSimpleNameReference:
+      (in KotlinClass) var KotlinClass.something: kotlin.Int
+
+    SyntheticPropertyAccessorReference:
+      (in KotlinClass) override fun setSomething(value: kotlin.Int)
+
+<caret_9>:
+  KtNameReferenceExpression(568,577): 'something'
+    KtSimpleNameReference:
+      (in KotlinClass) var KotlinClass.something: kotlin.Int
+
+    SyntheticPropertyAccessorReference:
+      (in KotlinClass) override fun getSomething(): kotlin.Int
+
+    SyntheticPropertyAccessorReference:
+      (in KotlinClass) override fun setSomething(value: kotlin.Int)
+
+<caret_10>:
+  KtNameReferenceExpression(601,610): 'something'
+    KtSimpleNameReference:
+      (in KotlinClass) var KotlinClass.something: kotlin.Int
+
+    SyntheticPropertyAccessorReference:
+      (in KotlinClass) override fun getSomething(): kotlin.Int
+
+    SyntheticPropertyAccessorReference:
+      (in KotlinClass) override fun setSomething(value: kotlin.Int)
+
+<caret_11>:
+  KtNameReferenceExpression(633,642): 'something'
+    KtSimpleNameReference:
+      (in KotlinClass) var KotlinClass.something: kotlin.Int
+
+    SyntheticPropertyAccessorReference:
+      (in KotlinClass) override fun getSomething(): kotlin.Int
+
+    SyntheticPropertyAccessorReference:
+      (in KotlinClass) override fun setSomething(value: kotlin.Int)
\ No newline at end of file
diff --git a/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverride.kt b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverride.kt
new file mode 100644
index 0000000..80c1f65
--- /dev/null
+++ b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverride.kt
@@ -0,0 +1,35 @@
+// IGNORE_STABILITY_K2: candidates
+
+// FILE: main.kt
+class KotlinClass : JavaClass() {
+    override fun getSomething(): Int {
+        return 2
+    }
+
+    override fun setSomething(value: Int) {}
+}
+
+fun KotlinClass.foo(kotlinClass: KotlinClass) {
+    print(kotlinClass.<caret_1>something)
+    kotlinClass.<caret_2>something = 1
+    kotlinClass.<caret_3>something += 1
+    kotlinClass.<caret_4>something++
+    --kotlinClass.<caret_5>something
+    <caret_6>something++
+}
+
+fun bar(javaClass: JavaClass) {
+    if (javaClass is KotlinClass) {
+        print(javaClass.<caret_7>something)
+        javaClass.<caret_8>something = 1
+        javaClass.<caret_9>something += 1
+        javaClass.<caret_10>something++
+        --javaClass.<caret_11>something
+    }
+}
+
+// FILE: JavaClass.java
+public class JavaClass {
+    public int getSomething() { return 1; }
+    public void setSomething(int value) {}
+}
diff --git a/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverride.references.txt b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverride.references.txt
new file mode 100644
index 0000000..e2e7ac0
--- /dev/null
+++ b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverride.references.txt
@@ -0,0 +1,75 @@
+<caret_1>:
+  KtNameReferenceExpression(268,277): 'something'
+    KtSimpleNameReference:
+      (in KotlinClass) override var something: kotlin.Int
+
+<caret_2>:
+  KtNameReferenceExpression(295,304): 'something'
+    KtSimpleNameReference:
+      (in KotlinClass) override var something: kotlin.Int
+
+<caret_3>:
+  KtNameReferenceExpression(325,334): 'something'
+    KtSimpleNameReference:
+      (in KotlinClass) override var something: kotlin.Int
+
+    KtSimpleNameReference:
+      (in KotlinClass) override var something: kotlin.Int
+
+<caret_4>:
+  KtNameReferenceExpression(356,365): 'something'
+    KtSimpleNameReference:
+      (in KotlinClass) override var something: kotlin.Int
+
+    KtSimpleNameReference:
+      (in KotlinClass) override var something: kotlin.Int
+
+<caret_5>:
+  KtNameReferenceExpression(386,395): 'something'
+    KtSimpleNameReference:
+      (in KotlinClass) override var something: kotlin.Int
+
+    KtSimpleNameReference:
+      (in KotlinClass) override var something: kotlin.Int
+
+<caret_6>:
+  KtNameReferenceExpression(400,409): 'something'
+    KtSimpleNameReference:
+      (in KotlinClass) override var something: kotlin.Int
+
+    KtSimpleNameReference:
+      (in KotlinClass) override var something: kotlin.Int
+
+<caret_7>:
+  KtNameReferenceExpression(507,516): 'something'
+    KtSimpleNameReference:
+      (in KotlinClass) override var something: kotlin.Int
+
+<caret_8>:
+  KtNameReferenceExpression(536,545): 'something'
+    KtSimpleNameReference:
+      (in KotlinClass) override var something: kotlin.Int
+
+<caret_9>:
+  KtNameReferenceExpression(568,577): 'something'
+    KtSimpleNameReference:
+      (in KotlinClass) override var something: kotlin.Int
+
+    KtSimpleNameReference:
+      (in KotlinClass) override var something: kotlin.Int
+
+<caret_10>:
+  KtNameReferenceExpression(601,610): 'something'
+    KtSimpleNameReference:
+      (in KotlinClass) override var something: kotlin.Int
+
+    KtSimpleNameReference:
+      (in KotlinClass) override var something: kotlin.Int
+
+<caret_11>:
+  KtNameReferenceExpression(633,642): 'something'
+    KtSimpleNameReference:
+      (in KotlinClass) override var something: kotlin.Int
+
+    KtSimpleNameReference:
+      (in KotlinClass) override var something: kotlin.Int
diff --git a/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverrideGeneric.call.txt b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverrideGeneric.call.txt
new file mode 100644
index 0000000..2c89091
--- /dev/null
+++ b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverrideGeneric.call.txt
@@ -0,0 +1,65 @@
+<caret_1>:
+  KtNameReferenceExpression(309,312): 'foo'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = foo
+            receiverType = null
+            returnType = Foo<kotlin.Any>
+            symbol = var foo: Foo<kotlin.Any>
+            contextParameters = []
+            callableId = /KotlinClass.foo
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+
+<caret_2>:
+  KtNameReferenceExpression(330,333): 'foo'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = foo
+            receiverType = null
+            returnType = Foo<kotlin.Any>
+            symbol = var foo: Foo<kotlin.Any>
+            contextParameters = []
+            callableId = /KotlinClass.foo
+        simpleAccess = Write:
+          value = foo
+        typeArgumentsMapping = {}
+
+<caret_3>:
+  KtNameReferenceExpression(442,445): 'foo'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaSmartCastedReceiverValue:
+            original = KaExplicitReceiverValue:
+              expression = javaClass
+              isSafeNavigation = false
+              type = JavaClass<T>
+            type = it(KotlinClass & JavaClass<T>)
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = foo
+            receiverType = null
+            returnType = it(Foo<kotlin.Any> & Foo<T!>)
+            symbol = var foo: it(Foo<kotlin.Any> & Foo<T!>)
+            contextParameters = []
+            callableId = /KotlinClass.foo
+        simpleAccess = Read
+        typeArgumentsMapping = {}
\ No newline at end of file
diff --git a/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverrideGeneric.candidates.txt b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverrideGeneric.candidates.txt
new file mode 100644
index 0000000..2ba3894
--- /dev/null
+++ b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverrideGeneric.candidates.txt
@@ -0,0 +1,68 @@
+<caret_1>:
+  KtNameReferenceExpression(309,312): 'foo'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = foo
+            receiverType = null
+            returnType = Foo<kotlin.Any>
+            symbol = var foo: Foo<kotlin.Any>
+            contextParameters = []
+            callableId = /KotlinClass.foo
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_2>:
+  KtNameReferenceExpression(330,333): 'foo'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = foo
+            receiverType = null
+            returnType = Foo<kotlin.Any>
+            symbol = var foo: Foo<kotlin.Any>
+            contextParameters = []
+            callableId = /KotlinClass.foo
+        simpleAccess = Write:
+          value = foo
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_3>:
+  KtNameReferenceExpression(442,445): 'foo'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaSmartCastedReceiverValue:
+            original = KaExplicitReceiverValue:
+              expression = javaClass
+              isSafeNavigation = false
+              type = JavaClass<T>
+            type = it(KotlinClass & JavaClass<T>)
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = foo
+            receiverType = null
+            returnType = it(Foo<kotlin.Any> & Foo<T!>)
+            symbol = var foo: it(Foo<kotlin.Any> & Foo<T!>)
+            contextParameters = []
+            callableId = /KotlinClass.foo
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
\ No newline at end of file
diff --git a/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverrideGeneric.descriptors.call.txt b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverrideGeneric.descriptors.call.txt
new file mode 100644
index 0000000..b1136f7
--- /dev/null
+++ b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverrideGeneric.descriptors.call.txt
@@ -0,0 +1,65 @@
+<caret_1>:
+  KtNameReferenceExpression(309,312): 'foo'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = foo
+            receiverType = null
+            returnType = Foo<kotlin.Any>
+            symbol = var foo: Foo<kotlin.Any>
+            contextParameters = []
+            callableId = /KotlinClass.foo
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+
+<caret_2>:
+  KtNameReferenceExpression(330,333): 'foo'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = foo
+            receiverType = null
+            returnType = Foo<kotlin.Any>
+            symbol = var foo: Foo<kotlin.Any>
+            contextParameters = []
+            callableId = /KotlinClass.foo
+        simpleAccess = Write:
+          value = foo
+        typeArgumentsMapping = {}
+
+<caret_3>:
+  KtNameReferenceExpression(442,445): 'foo'
+    KaSuccessCallInfo:
+      call = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaSmartCastedReceiverValue:
+            original = KaExplicitReceiverValue:
+              expression = javaClass
+              isSafeNavigation = false
+              type = JavaClass<T>
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = foo
+            receiverType = null
+            returnType = Foo<kotlin.Any>
+            symbol = var foo: Foo<kotlin.Any>
+            contextParameters = []
+            callableId = /KotlinClass.foo
+        simpleAccess = Read
+        typeArgumentsMapping = {}
\ No newline at end of file
diff --git a/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverrideGeneric.descriptors.candidates.txt b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverrideGeneric.descriptors.candidates.txt
new file mode 100644
index 0000000..0c6fec4
--- /dev/null
+++ b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverrideGeneric.descriptors.candidates.txt
@@ -0,0 +1,68 @@
+<caret_1>:
+  KtNameReferenceExpression(309,312): 'foo'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = foo
+            receiverType = null
+            returnType = Foo<kotlin.Any>
+            symbol = var foo: Foo<kotlin.Any>
+            contextParameters = []
+            callableId = /KotlinClass.foo
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_2>:
+  KtNameReferenceExpression(330,333): 'foo'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaExplicitReceiverValue:
+            expression = kotlinClass
+            isSafeNavigation = false
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = foo
+            receiverType = null
+            returnType = Foo<kotlin.Any>
+            symbol = var foo: Foo<kotlin.Any>
+            contextParameters = []
+            callableId = /KotlinClass.foo
+        simpleAccess = Write:
+          value = foo
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
+
+<caret_3>:
+  KtNameReferenceExpression(442,445): 'foo'
+    KaApplicableCallCandidateInfo:
+      candidate = KaSimpleVariableAccessCall:
+        partiallyAppliedSymbol = KaPartiallyAppliedSymbol:
+          contextArguments = []
+          dispatchReceiver = KaSmartCastedReceiverValue:
+            original = KaExplicitReceiverValue:
+              expression = javaClass
+              isSafeNavigation = false
+              type = JavaClass<T>
+            type = KotlinClass
+          extensionReceiver = null
+          signature = KaVariableSignature:
+            name = foo
+            receiverType = null
+            returnType = Foo<kotlin.Any>
+            symbol = var foo: Foo<kotlin.Any>
+            contextParameters = []
+            callableId = /KotlinClass.foo
+        simpleAccess = Read
+        typeArgumentsMapping = {}
+      isInBestCandidates = true
\ No newline at end of file
diff --git a/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverrideGeneric.descriptors.references.txt b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverrideGeneric.descriptors.references.txt
new file mode 100644
index 0000000..8fec211
--- /dev/null
+++ b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverrideGeneric.descriptors.references.txt
@@ -0,0 +1,23 @@
+<caret_1>:
+  KtNameReferenceExpression(309,312): 'foo'
+    KtSimpleNameReference:
+      (in KotlinClass) var KotlinClass.foo: Foo<kotlin.Any>
+
+    SyntheticPropertyAccessorReference:
+      (in KotlinClass) override fun getFoo(): Foo<kotlin.Any>
+
+<caret_2>:
+  KtNameReferenceExpression(330,333): 'foo'
+    KtSimpleNameReference:
+      (in KotlinClass) var KotlinClass.foo: Foo<kotlin.Any>
+
+    SyntheticPropertyAccessorReference:
+      (in KotlinClass) override fun setFoo(foo: Foo<kotlin.Any>)
+
+<caret_3>:
+  KtNameReferenceExpression(442,445): 'foo'
+    KtSimpleNameReference:
+      (in KotlinClass) var KotlinClass.foo: Foo<kotlin.Any>
+
+    SyntheticPropertyAccessorReference:
+      (in KotlinClass) override fun getFoo(): Foo<kotlin.Any>
\ No newline at end of file
diff --git a/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverrideGeneric.kt b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverrideGeneric.kt
new file mode 100644
index 0000000..420a4aa
--- /dev/null
+++ b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverrideGeneric.kt
@@ -0,0 +1,32 @@
+// IGNORE_STABILITY_K2: candidates
+
+// FILE: main.kt
+class KotlinClass : JavaClass<Any>() {
+    override fun getFoo(): Foo<Any> {
+        TODO("Not yet implemented")
+    }
+
+    override fun setFoo(foo: Foo<Any>) {
+    }
+}
+
+fun KotlinClass.test(kotlinClass: KotlinClass, foo: Foo<Any>) {
+    print(kotlinClass.<caret_1>foo)
+    kotlinClass.<caret_2>foo = foo
+}
+
+fun <T> bar(javaClass: JavaClass<T>) {
+    if (javaClass is KotlinClass) {
+        print(javaClass.<caret_3>foo)
+    }
+}
+
+// FILE: JavaClass.java
+public abstract class JavaClass<T> {
+    public abstract Foo<T> getFoo();
+    public abstract void setFoo(Foo<T> foo);
+}
+
+// FILE: Foo.java
+public interface Foo<T> {
+}
diff --git a/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverrideGeneric.references.txt b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverrideGeneric.references.txt
new file mode 100644
index 0000000..20806d4
--- /dev/null
+++ b/analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverrideGeneric.references.txt
@@ -0,0 +1,14 @@
+<caret_1>:
+  KtNameReferenceExpression(309,312): 'foo'
+    KtSimpleNameReference:
+      (in KotlinClass) override var foo: Foo<kotlin.Any>
+
+<caret_2>:
+  KtNameReferenceExpression(330,333): 'foo'
+    KtSimpleNameReference:
+      (in KotlinClass) override var foo: Foo<kotlin.Any>
+
+<caret_3>:
+  KtNameReferenceExpression(442,445): 'foo'
+    KtSimpleNameReference:
+      (in KotlinClass) override var foo: Foo<kotlin.Any> & Foo<T!>
\ No newline at end of file
diff --git a/analysis/low-level-api-fir/tests-gen/org/jetbrains/kotlin/analysis/low/level/api/fir/resolve/SourceResolveCandidatesFirTreeConsistencyTestGenerated.java b/analysis/low-level-api-fir/tests-gen/org/jetbrains/kotlin/analysis/low/level/api/fir/resolve/SourceResolveCandidatesFirTreeConsistencyTestGenerated.java
index 69a0b77..341ac46 100644
--- a/analysis/low-level-api-fir/tests-gen/org/jetbrains/kotlin/analysis/low/level/api/fir/resolve/SourceResolveCandidatesFirTreeConsistencyTestGenerated.java
+++ b/analysis/low-level-api-fir/tests-gen/org/jetbrains/kotlin/analysis/low/level/api/fir/resolve/SourceResolveCandidatesFirTreeConsistencyTestGenerated.java
@@ -3233,6 +3233,30 @@
       runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticProperty.kt");
     }
 
+    @Test
+    @TestMetadata("SyntheticPropertyJavaOverride.kt")
+    public void testSyntheticPropertyJavaOverride() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverride.kt");
+    }
+
+    @Test
+    @TestMetadata("SyntheticPropertyJavaOverrideGeneric.kt")
+    public void testSyntheticPropertyJavaOverrideGeneric() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyJavaOverrideGeneric.kt");
+    }
+
+    @Test
+    @TestMetadata("SyntheticPropertyKotlinOverride.kt")
+    public void testSyntheticPropertyKotlinOverride() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverride.kt");
+    }
+
+    @Test
+    @TestMetadata("SyntheticPropertyKotlinOverrideGeneric.kt")
+    public void testSyntheticPropertyKotlinOverrideGeneric() {
+      runTest("analysis/analysis-api/testData/components/resolver/singleByPsi/java/SyntheticPropertyKotlinOverrideGeneric.kt");
+    }
+
     @Nested
     @TestMetadata("analysis/analysis-api/testData/components/resolver/singleByPsi/java/enumWithCustomGetName")
     @TestDataPath("$PROJECT_ROOT")