// !DIAGNOSTICS: -UNUSED_EXPRESSION -UNUSED_PARAMETER -UNUSED_VARIABLE -NOTHING_TO_INLINE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -NON_LOCAL_RETURN_NOT_ALLOWED fun Function1.minusAssign(p: Function1) {} inline fun Function1.modAssign(p: Function1) = { this += p p += this } inline fun Function1.plusAssign(p: Function1) { this -= p p -= this } fun @Extension Function2.minusAssign(ext : @Extension Function2) {} inline fun @Extension Function2.modAssign(ext : @Extension Function2) = { this += ext ext += this } inline fun @Extension Function2.plusAssign(ext : @Extension Function2) { this -= ext ext -= this } inline fun inlineFunWithInvoke(s: (p: T) -> U, ext: T.(p: U) -> V) { s += s ext += ext }