Add first prototype of BindingContext implementation by FIR

Add ImportMemberIntention intention as a test.
In this commit all failed test were disabled, necessary fixes will be
added in the following commits
This commit is contained in:
Stanislav Erokhin
2021-05-07 14:40:52 +02:00
committed by teamcityserver
parent 6919f3dbb5
commit 7ac599520e
48 changed files with 1850 additions and 6 deletions
@@ -1,3 +1,4 @@
// IGNORE_FE10_BINDING_BY_FIR
fun foo() {
val c = Container()
c.cont<caret>ains(1)
@@ -1,3 +1,4 @@
// IGNORE_FE10_BINDING_BY_FIR
fun foo() {
val c = Container()
1 in c
@@ -1,3 +1,4 @@
// IGNORE_FE10_BINDING_BY_FIR
fun <T> doSomething(a: T) {}
fun test() {
@@ -1,3 +1,4 @@
// IGNORE_FE10_BINDING_BY_FIR
fun <T> doSomething(a: T) {}
fun test() {
@@ -1,3 +1,4 @@
// IGNORE_FE10_BINDING_BY_FIR
fun test() {
class Test()
operator fun Test.contains(a: Int) : Boolean = true
@@ -1,3 +1,4 @@
// IGNORE_FE10_BINDING_BY_FIR
fun test() {
class Test()
operator fun Test.contains(a: Int) : Boolean = true
@@ -1,3 +1,4 @@
// IGNORE_FE10_BINDING_BY_FIR
fun test() {
class Test{
operator fun contains(fn: () -> Boolean) : Boolean = true
@@ -1,3 +1,4 @@
// IGNORE_FE10_BINDING_BY_FIR
fun test() {
class Test{
operator fun contains(fn: () -> Boolean) : Boolean = true
@@ -1,3 +1,4 @@
// IGNORE_FE10_BINDING_BY_FIR
fun test() {
class Test{
operator fun contains(fn: () -> Boolean) : Boolean = true
@@ -1,3 +1,4 @@
// IGNORE_FE10_BINDING_BY_FIR
fun test() {
class Test{
operator fun contains(fn: () -> Boolean) : Boolean = true
@@ -1,3 +1,4 @@
// IGNORE_FE10_BINDING_BY_FIR
fun test() {
class Test{
operator fun contains(fn: () -> Boolean) : Boolean = true
@@ -1,3 +1,4 @@
// IGNORE_FE10_BINDING_BY_FIR
fun test() {
class Test{
operator fun contains(fn: () -> Boolean) : Boolean = true
@@ -1,3 +1,4 @@
// IGNORE_FE10_BINDING_BY_FIR
fun <T> doSomething(a: T) {}
fun test() {
@@ -1,3 +1,4 @@
// IGNORE_FE10_BINDING_BY_FIR
fun <T> doSomething(a: T) {}
fun test() {
@@ -1,6 +1,7 @@
// IS_APPLICABLE: false
// ERROR: Cannot find a parameter with this name: c
// ERROR: 'operator' modifier is inapplicable on this function: must have a single value parameter
// IGNORE_FE10_BINDING_BY_FIR
fun test() {
class Test{
operator fun contains(a: Int=1, b: Int=2): Boolean = true
@@ -1,6 +1,7 @@
// IS_APPLICABLE: false
// ERROR: No value passed for parameter 'b'
// ERROR: 'operator' modifier is inapplicable on this function: must have a single value parameter
// IGNORE_FE10_BINDING_BY_FIR
fun test() {
class Test{
operator fun contains(a: Int, b: Int): Boolean = true
@@ -1,5 +1,7 @@
// IS_APPLICABLE: false
// ERROR: 'operator' modifier is inapplicable on this function: must have a single value parameter
// IGNORE_FE10_BINDING_BY_FIR
fun test() {
class Test{
operator fun contains(a: Int=1, b: Int=2) : Boolean = true
@@ -1,3 +1,4 @@
// IGNORE_FE10_BINDING_BY_FIR
fun test() {
class Test{
operator fun contains(a: Int) : Boolean = true
@@ -1,3 +1,4 @@
// IGNORE_FE10_BINDING_BY_FIR
fun test() {
class Test{
operator fun contains(a: Int) : Boolean = true
@@ -1,3 +1,4 @@
// IGNORE_FE10_BINDING_BY_FIR
class C {
companion object {
operator fun contains(s: String) = true
@@ -1,3 +1,4 @@
// IGNORE_FE10_BINDING_BY_FIR
class C {
companion object {
operator fun contains(s: String) = true
@@ -1,3 +1,4 @@
// IGNORE_FE10_BINDING_BY_FIR
fun test() {
class Test{
operator fun contains(a: Int) : Boolean = true
@@ -1,3 +1,4 @@
// IGNORE_FE10_BINDING_BY_FIR
fun test() {
class Test{
operator fun contains(a: Int) : Boolean = true
@@ -1,3 +1,4 @@
// IGNORE_FE10_BINDING_BY_FIR
@Suppress("INAPPLICABLE_OPERATOR_MODIFIER")
public operator fun CharSequence.contains(other: CharSequence, ignoreCase: Boolean = false): Boolean = false
fun test() {
@@ -1,3 +1,4 @@
// IGNORE_FE10_BINDING_BY_FIR
@Suppress("INAPPLICABLE_OPERATOR_MODIFIER")
public operator fun CharSequence.contains(other: CharSequence, ignoreCase: Boolean = false): Boolean = false
fun test() {
@@ -1,3 +1,4 @@
// IGNORE_FE10_BINDING_BY_FIR
fun test() {
class Test{
operator fun <T> contains(a: T): Boolean = false
@@ -1,3 +1,4 @@
// IGNORE_FE10_BINDING_BY_FIR
fun test() {
class Test{
operator fun <T> contains(a: T): Boolean = false
@@ -1,5 +1,6 @@
// IS_APPLICABLE: false
// ERROR: 'operator' modifier is inapplicable on this function: must have a single value parameter
// IGNORE_FE10_BINDING_BY_FIR
fun test() {
class Test{
operator fun contains(vararg b: Int, c: Int = 0): Boolean = true