Skip to content

Instantly share code, notes, and snippets.

@yyYank
Last active June 25, 2017 17:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yyYank/02d6c7f64532bb30cd0e63563d90feb2 to your computer and use it in GitHub Desktop.
Save yyYank/02d6c7f64532bb30cd0e63563d90feb2 to your computer and use it in GitHub Desktop.
fun main(args: Array<String>) {
val f : (() -> Unit)? = null
f() // コンパイル通る
}
operator fun <R> Function0<R>?.invoke() = this?.invoke()
operator fun <P1,R> Function1<P1,R>?.invoke() : R? = this?.invoke()
operator fun <P1, P2, R> Function2<P1, P2, R>?.invoke() : R? = this?.invoke()
operator fun <P1, P2, P3, R> Function3<P1, P2, P3, R>?.invoke() : R? = this?.invoke()
operator fun <P1, P2, P3, P4, R> Function4<P1, P2, P3, P4, R>?.invoke() : R? = this?.invoke()
operator fun <P1, P2, P3, P4, P5, R> Function5<P1, P2, P3, P4, P5, R>?.invoke() : R? = this?.invoke()
operator fun <P1, P2, P3, P4, P5, P6, R> Function6<P1, P2, P3, P4, P5, P6, R>?.invoke() : R? = this?.invoke()
operator fun <P1, P2, P3, P4, P5, P6, P7, R> Function7<P1, P2, P3, P4, P5, P6, P7, R>?.invoke() : R? = this?.invoke()
operator fun <P1, P2, P3, P4, P5, P6, P7, P8, R> Function8<P1, P2, P3, P4, P5, P6, P7, P8, R>?.invoke() : R? = this?.invoke()
operator fun <P1, P2, P3, P4, P5, P6, P7, P8, P9, R> Function9<P1, P2, P3, P4, P5, P6, P7, P8, P9, R>?.invoke() : R? = this?.invoke()
operator fun <P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, R> Function10<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, R>?.invoke() : R? = this?.invoke()
operator fun <P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11,R> Function11<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, R>?.invoke() : R? = this?.invoke()
operator fun <P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, R> Function12<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, R>?.invoke() : R? = this?.invoke()
operator fun <P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, R> Function13<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, R>?.invoke() : R? = this?.invoke()
operator fun <P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, R> Function14<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, R>?.invoke() : R? = this?.invoke()
operator fun <P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, R> Function15<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, R>?.invoke() : R? = this?.invoke()
operator fun <P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, R> Function16<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, R>?.invoke() : R? = this?.invoke()
operator fun <P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, R> Function17<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, R>?.invoke() : R? = this?.invoke()
operator fun <P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, R> Function18<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, R>?.invoke() : R? = this?.invoke()
operator fun <P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19, R> Function19<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19, R>?.invoke() : R? = this?.invoke()
operator fun <P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19, P20, R> Function20<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19, P20, R>?.invoke() : R? = this?.invoke()
operator fun <P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19, P20, P21, R> Function21<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19, P20, P21, R>?.invoke() : R? = this?.invoke()
operator fun <P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19, P20, P21, P22, R> Function22<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19, P20, P21, P22, R>?.invoke() : R? = this?.invoke()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment