Stdlib compilation error fixes with new diagnostics
This commit is contained in:
@@ -75,17 +75,17 @@ public inline fun FloatArray.sort(fromIndex: Int, toIndex: Int) : Unit = Arrays
|
|||||||
public inline fun DoubleArray.sort(fromIndex: Int, toIndex: Int) : Unit = Arrays.sort(this, fromIndex, toIndex)
|
public inline fun DoubleArray.sort(fromIndex: Int, toIndex: Int) : Unit = Arrays.sort(this, fromIndex, toIndex)
|
||||||
public inline fun CharArray.sort(fromIndex: Int, toIndex: Int) : Unit = Arrays.sort(this, fromIndex, toIndex)
|
public inline fun CharArray.sort(fromIndex: Int, toIndex: Int) : Unit = Arrays.sort(this, fromIndex, toIndex)
|
||||||
|
|
||||||
public inline fun BooleanArray.copyOf(newLength: Int = this.size) : BooleanArray = Arrays.copyOf(this, newLength)
|
public fun BooleanArray.copyOf(newLength: Int = this.size) : BooleanArray = Arrays.copyOf(this, newLength)
|
||||||
public inline fun ByteArray.copyOf(newLength: Int = this.size) : ByteArray = Arrays.copyOf(this, newLength)
|
public fun ByteArray.copyOf(newLength: Int = this.size) : ByteArray = Arrays.copyOf(this, newLength)
|
||||||
public inline fun ShortArray.copyOf(newLength: Int = this.size) : ShortArray = Arrays.copyOf(this, newLength)
|
public fun ShortArray.copyOf(newLength: Int = this.size) : ShortArray = Arrays.copyOf(this, newLength)
|
||||||
public inline fun IntArray.copyOf(newLength: Int = this.size) : IntArray = Arrays.copyOf(this, newLength)
|
public fun IntArray.copyOf(newLength: Int = this.size) : IntArray = Arrays.copyOf(this, newLength)
|
||||||
public inline fun LongArray.copyOf(newLength: Int = this.size) : LongArray = Arrays.copyOf(this, newLength)
|
public fun LongArray.copyOf(newLength: Int = this.size) : LongArray = Arrays.copyOf(this, newLength)
|
||||||
public inline fun FloatArray.copyOf(newLength: Int = this.size) : FloatArray = Arrays.copyOf(this, newLength)
|
public fun FloatArray.copyOf(newLength: Int = this.size) : FloatArray = Arrays.copyOf(this, newLength)
|
||||||
public inline fun DoubleArray.copyOf(newLength: Int = this.size) : DoubleArray = Arrays.copyOf(this, newLength)
|
public fun DoubleArray.copyOf(newLength: Int = this.size) : DoubleArray = Arrays.copyOf(this, newLength)
|
||||||
public inline fun CharArray.copyOf(newLength: Int = this.size) : CharArray = Arrays.copyOf(this, newLength)
|
public fun CharArray.copyOf(newLength: Int = this.size) : CharArray = Arrays.copyOf(this, newLength)
|
||||||
|
|
||||||
// TODO: resuling array may contain nulls even if T is non-nullable
|
// TODO: resuling array may contain nulls even if T is non-nullable
|
||||||
public inline fun <T> Array<T>.copyOf(newLength: Int = this.size) : Array<T> = Arrays.copyOf(this, newLength) as Array<T>
|
public fun <T> Array<T>.copyOf(newLength: Int = this.size) : Array<T> = Arrays.copyOf(this, newLength) as Array<T>
|
||||||
|
|
||||||
public inline fun BooleanArray.copyOfRange(from: Int, to: Int) : BooleanArray = Arrays.copyOfRange(this, from, to)
|
public inline fun BooleanArray.copyOfRange(from: Int, to: Int) : BooleanArray = Arrays.copyOfRange(this, from, to)
|
||||||
public inline fun ByteArray.copyOfRange(from: Int, to: Int) : ByteArray = Arrays.copyOfRange(this, from, to)
|
public inline fun ByteArray.copyOfRange(from: Int, to: Int) : ByteArray = Arrays.copyOfRange(this, from, to)
|
||||||
|
|||||||
@@ -2,13 +2,15 @@ package kotlin
|
|||||||
|
|
||||||
|
|
||||||
private object _Assertions
|
private object _Assertions
|
||||||
private val ASSERTIONS_ENABLED = _Assertions.javaClass.desiredAssertionStatus()
|
|
||||||
|
deprecated("Must be puplic to make assert() inlinable")
|
||||||
|
public val ASSERTIONS_ENABLED: Boolean = _Assertions.javaClass.desiredAssertionStatus()
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Throws an [[AssertionError]] with an optional *message* if the *value* is false
|
* Throws an [[AssertionError]] with an optional *message* if the *value* is false
|
||||||
* and runtime assertions have been enabled on the JVM using the *-ea* JVM option.
|
* and runtime assertions have been enabled on the JVM using the *-ea* JVM option.
|
||||||
*/
|
*/
|
||||||
public inline fun assert(value: Boolean, message: Any = "Assertion failed") {
|
public fun assert(value: Boolean, message: Any = "Assertion failed") {
|
||||||
if (ASSERTIONS_ENABLED) {
|
if (ASSERTIONS_ENABLED) {
|
||||||
if (!value) {
|
if (!value) {
|
||||||
throw AssertionError(message)
|
throw AssertionError(message)
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ public fun <T> Iterable<T>.count() : Int {
|
|||||||
return number
|
return number
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun <T> countTo(n: Int): (T) -> Boolean {
|
public fun <T> countTo(n: Int): (T) -> Boolean {
|
||||||
var count = 0
|
var count = 0
|
||||||
return { ++count; count <= n }
|
return { ++count; count <= n }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import kotlin.test.assertTrue
|
|||||||
/**
|
/**
|
||||||
* Returns an iterator which invokes the function to calculate the next value on each iteration until the function returns *null*
|
* Returns an iterator which invokes the function to calculate the next value on each iteration until the function returns *null*
|
||||||
*/
|
*/
|
||||||
public inline fun <T:Any> iterate(nextFunction: () -> T?) : Iterator<T> {
|
public fun <T:Any> iterate(nextFunction: () -> T?) : Iterator<T> {
|
||||||
return FunctionIterator(nextFunction)
|
return FunctionIterator(nextFunction)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -15,7 +15,7 @@ public inline fun <T:Any> iterate(nextFunction: () -> T?) : Iterator<T> {
|
|||||||
* Returns an iterator which invokes the function to calculate the next value based on the previous one on each iteration
|
* Returns an iterator which invokes the function to calculate the next value based on the previous one on each iteration
|
||||||
* until the function returns *null*
|
* until the function returns *null*
|
||||||
*/
|
*/
|
||||||
public inline fun <T: Any> iterate(initialValue: T, nextFunction: (T) -> T?): Iterator<T> =
|
public /*inline*/ fun <T: Any> iterate(initialValue: T, nextFunction: (T) -> T?): Iterator<T> =
|
||||||
iterate(nextFunction.toGenerator(initialValue))
|
iterate(nextFunction.toGenerator(initialValue))
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -26,7 +26,7 @@ public inline fun <T, S> Iterator<T>.zip(iterator: Iterator<S>): Iterator<Pair<T
|
|||||||
/**
|
/**
|
||||||
* Returns an iterator shifted to right by the given number of elements
|
* Returns an iterator shifted to right by the given number of elements
|
||||||
*/
|
*/
|
||||||
public inline fun <T> Iterator<T>.skip(n: Int): Iterator<T> = SkippingIterator(this, n)
|
public fun <T> Iterator<T>.skip(n: Int): Iterator<T> = SkippingIterator(this, n)
|
||||||
|
|
||||||
class FilterIterator<T>(val iterator : Iterator<T>, val predicate: (T)-> Boolean) : AbstractIterator<T>() {
|
class FilterIterator<T>(val iterator : Iterator<T>, val predicate: (T)-> Boolean) : AbstractIterator<T>() {
|
||||||
override protected fun computeNext(): Unit {
|
override protected fun computeNext(): Unit {
|
||||||
@@ -203,7 +203,7 @@ class SkippingIterator<T>(val iterator: Iterator<T>, val n: Int): Iterator<T> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun <T: Any> Function1<T, T?>.toGenerator(initialValue: T): Function0<T?> {
|
public fun <T: Any> Function1<T, T?>.toGenerator(initialValue: T): Function0<T?> {
|
||||||
var nextValue: T? = initialValue
|
var nextValue: T? = initialValue
|
||||||
return {
|
return {
|
||||||
nextValue?.let { result ->
|
nextValue?.let { result ->
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package kotlin
|
|||||||
import kotlin.support.*
|
import kotlin.support.*
|
||||||
|
|
||||||
/** Returns an iterator over elements that are instances of a given type *R* which is a subclass of *T* */
|
/** Returns an iterator over elements that are instances of a given type *R* which is a subclass of *T* */
|
||||||
public inline fun <T, R: T> Iterator<T>.filterIsInstance(klass: Class<R>): Iterator<R> = FilterIsIterator<T,R>(this, klass)
|
public fun <T, R: T> Iterator<T>.filterIsInstance(klass: Class<R>): Iterator<R> = FilterIsIterator<T,R>(this, klass)
|
||||||
|
|
||||||
private class FilterIsIterator<T, R :T>(val iterator : Iterator<T>, val klass: Class<R>) : AbstractIterator<R>() {
|
private class FilterIsIterator<T, R :T>(val iterator : Iterator<T>, val klass: Class<R>) : AbstractIterator<R>() {
|
||||||
override protected fun computeNext(): Unit {
|
override protected fun computeNext(): Unit {
|
||||||
|
|||||||
@@ -3,17 +3,17 @@ package kotlin
|
|||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
/** Returns the size of the collection */
|
/** Returns the size of the collection */
|
||||||
val Collection<*>.size : Int
|
public val Collection<*>.size : Int
|
||||||
get() = size()
|
get() = size()
|
||||||
|
|
||||||
/** Returns true if this collection is empty */
|
/** Returns true if this collection is empty */
|
||||||
val Collection<*>.empty : Boolean
|
public val Collection<*>.empty : Boolean
|
||||||
get() = isEmpty()
|
get() = isEmpty()
|
||||||
|
|
||||||
val Collection<*>.indices : IntRange
|
public val Collection<*>.indices : IntRange
|
||||||
get() = 0..size-1
|
get() = 0..size-1
|
||||||
|
|
||||||
val Int.indices: IntRange
|
public val Int.indices: IntRange
|
||||||
get() = 0..this-1
|
get() = 0..this-1
|
||||||
|
|
||||||
/** Returns true if the collection is not empty */
|
/** Returns true if the collection is not empty */
|
||||||
|
|||||||
@@ -6,11 +6,11 @@ import java.util.HashMap
|
|||||||
// Map APIs
|
// Map APIs
|
||||||
|
|
||||||
/** Returns the size of the map */
|
/** Returns the size of the map */
|
||||||
val Map<*,*>.size : Int
|
public val Map<*,*>.size : Int
|
||||||
get() = size()
|
get() = size()
|
||||||
|
|
||||||
/** Returns true if this map is empty */
|
/** Returns true if this map is empty */
|
||||||
val Map<*,*>.empty : Boolean
|
public val Map<*,*>.empty : Boolean
|
||||||
get() = isEmpty()
|
get() = isEmpty()
|
||||||
|
|
||||||
/** Provides [] access to maps */
|
/** Provides [] access to maps */
|
||||||
@@ -22,11 +22,11 @@ public inline fun <K,V> Map<K,V>?.orEmpty() : Map<K,V>
|
|||||||
|
|
||||||
|
|
||||||
/** Returns the key of the entry */
|
/** Returns the key of the entry */
|
||||||
val <K,V> Map.Entry<K,V>.key : K
|
public val <K,V> Map.Entry<K,V>.key : K
|
||||||
get() = getKey()
|
get() = getKey()
|
||||||
|
|
||||||
/** Returns the value of the entry */
|
/** Returns the value of the entry */
|
||||||
val <K,V> Map.Entry<K,V>.value : V
|
public val <K,V> Map.Entry<K,V>.value : V
|
||||||
get() = getValue()
|
get() = getValue()
|
||||||
|
|
||||||
/** Returns the key of the entry */
|
/** Returns the key of the entry */
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ public inline fun <K,V> Map<K,V>.toSortedMap(comparator: Comparator<K>): SortedM
|
|||||||
*
|
*
|
||||||
* @includeFunctionBody ../../test/MapTest.kt toProperties
|
* @includeFunctionBody ../../test/MapTest.kt toProperties
|
||||||
*/
|
*/
|
||||||
public inline fun Map<String, String>.toProperties(): Properties {
|
public fun Map<String, String>.toProperties(): Properties {
|
||||||
val answer = Properties()
|
val answer = Properties()
|
||||||
for (e in this) {
|
for (e in this) {
|
||||||
answer.put(e.key, e.value)
|
answer.put(e.key, e.value)
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ public inline fun <T : Comparable<*>> compareValues(a: T?, b: T?): Int {
|
|||||||
/**
|
/**
|
||||||
* Creates a comparator using the sequence of functions used to calculate a value to compare on
|
* Creates a comparator using the sequence of functions used to calculate a value to compare on
|
||||||
*/
|
*/
|
||||||
public inline fun <T> comparator(vararg functions: T.() -> Comparable<*>?): Comparator<T> {
|
public fun <T> comparator(vararg functions: T.() -> Comparable<*>?): Comparator<T> {
|
||||||
return FunctionComparator<T>(*functions)
|
return FunctionComparator<T>(*functions)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -59,7 +59,7 @@ private class FunctionComparator<T>(vararg val functions: T.() -> Comparable<*>?
|
|||||||
/**
|
/**
|
||||||
* Creates a comparator using the sequence of functions used to calculate a value to compare on
|
* Creates a comparator using the sequence of functions used to calculate a value to compare on
|
||||||
*/
|
*/
|
||||||
public inline fun <T> comparator(fn: (T,T) -> Int): Comparator<T> {
|
public fun <T> comparator(fn: (T,T) -> Int): Comparator<T> {
|
||||||
return Function2Comparator<T>(fn)
|
return Function2Comparator<T>(fn)
|
||||||
}
|
}
|
||||||
private class Function2Comparator<T>(val compareFn: (T,T) -> Int): Comparator<T> {
|
private class Function2Comparator<T>(val compareFn: (T,T) -> Int): Comparator<T> {
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import java.lang.IllegalStateException
|
|||||||
*
|
*
|
||||||
* @includeFunctionBody ../../test/PreconditionsTest.kt failingRequireWithMessage
|
* @includeFunctionBody ../../test/PreconditionsTest.kt failingRequireWithMessage
|
||||||
*/
|
*/
|
||||||
public inline fun require(value: Boolean, message: Any = "Failed requirement"): Unit {
|
public fun require(value: Boolean, message: Any = "Failed requirement"): Unit {
|
||||||
if (!value) {
|
if (!value) {
|
||||||
throw IllegalArgumentException(message.toString())
|
throw IllegalArgumentException(message.toString())
|
||||||
}
|
}
|
||||||
@@ -33,7 +33,7 @@ public inline fun require(value: Boolean, lazyMessage: () -> String): Unit {
|
|||||||
*
|
*
|
||||||
* @includeFunctionBody ../../test/PreconditionsTest.kt requireNotNull
|
* @includeFunctionBody ../../test/PreconditionsTest.kt requireNotNull
|
||||||
*/
|
*/
|
||||||
public inline fun <T:Any> requireNotNull(value: T?, message: Any = "Required value was null"): T {
|
public fun <T:Any> requireNotNull(value: T?, message: Any = "Required value was null"): T {
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
throw IllegalArgumentException(message.toString())
|
throw IllegalArgumentException(message.toString())
|
||||||
} else {
|
} else {
|
||||||
@@ -46,7 +46,7 @@ public inline fun <T:Any> requireNotNull(value: T?, message: Any = "Required val
|
|||||||
*
|
*
|
||||||
* @includeFunctionBody ../../test/PreconditionsTest.kt failingCheckWithMessage
|
* @includeFunctionBody ../../test/PreconditionsTest.kt failingCheckWithMessage
|
||||||
*/
|
*/
|
||||||
public inline fun check(value: Boolean, message: Any = "Check failed"): Unit {
|
public fun check(value: Boolean, message: Any = "Check failed"): Unit {
|
||||||
if (!value) {
|
if (!value) {
|
||||||
throw IllegalStateException(message.toString())
|
throw IllegalStateException(message.toString())
|
||||||
}
|
}
|
||||||
@@ -70,7 +70,7 @@ public inline fun check(value: Boolean, lazyMessage: () -> String): Unit {
|
|||||||
*
|
*
|
||||||
* @includeFunctionBody ../../test/PreconditionsTest.kt checkNotNull
|
* @includeFunctionBody ../../test/PreconditionsTest.kt checkNotNull
|
||||||
*/
|
*/
|
||||||
public inline fun <T:Any> checkNotNull(value: T?, message: String = "Required value was null"): T {
|
public fun <T:Any> checkNotNull(value: T?, message: String = "Required value was null"): T {
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
throw IllegalStateException(message)
|
throw IllegalStateException(message)
|
||||||
} else {
|
} else {
|
||||||
@@ -78,4 +78,4 @@ public inline fun <T:Any> checkNotNull(value: T?, message: String = "Required va
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public inline fun error(message: String): Nothing = throw RuntimeException(message)
|
public fun error(message: String): Nothing = throw RuntimeException(message)
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ public inline fun Throwable.printStackTrace(stream: PrintStream): Unit {
|
|||||||
/**
|
/**
|
||||||
* A helper method for creating a [[Callable]] from a function
|
* A helper method for creating a [[Callable]] from a function
|
||||||
*/
|
*/
|
||||||
public inline fun <T> callable(action: ()-> T): Callable<T> {
|
public /*inline*/ fun <T> callable(action: ()-> T): Callable<T> {
|
||||||
return object: Callable<T> {
|
return object: Callable<T> {
|
||||||
public override fun call() = action()
|
public override fun call() = action()
|
||||||
}
|
}
|
||||||
@@ -51,7 +51,7 @@ public inline fun <T> callable(action: ()-> T): Callable<T> {
|
|||||||
/**
|
/**
|
||||||
* A helper method for creating a [[Runnable]] from a function
|
* A helper method for creating a [[Runnable]] from a function
|
||||||
*/
|
*/
|
||||||
public inline fun runnable(action: ()-> Unit): Runnable {
|
public /*inline*/ fun runnable(action: ()-> Unit): Runnable {
|
||||||
return object: Runnable {
|
return object: Runnable {
|
||||||
public override fun run() {
|
public override fun run() {
|
||||||
action()
|
action()
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ public inline fun String?.isNotEmpty() : Boolean = this != null && this.length()
|
|||||||
/**
|
/**
|
||||||
Iterator for characters of given CharSequence
|
Iterator for characters of given CharSequence
|
||||||
*/
|
*/
|
||||||
public inline fun CharSequence.iterator() : CharIterator = object: jet.CharIterator() {
|
public fun CharSequence.iterator() : CharIterator = object: jet.CharIterator() {
|
||||||
private var index = 0
|
private var index = 0
|
||||||
|
|
||||||
public override fun nextChar(): Char = get(index++)
|
public override fun nextChar(): Char = get(index++)
|
||||||
|
|||||||
@@ -147,7 +147,7 @@ public inline fun CharSequence.toString() : String? = (this as java.lang.CharSeq
|
|||||||
public inline fun CharSequence.length() : Int = (this as java.lang.CharSequence).length()
|
public inline fun CharSequence.length() : Int = (this as java.lang.CharSequence).length()
|
||||||
|
|
||||||
|
|
||||||
public inline fun String.toByteArray(encoding: String = Charset.defaultCharset().name()): ByteArray = (this as java.lang.String).getBytes(encoding)
|
public fun String.toByteArray(encoding: String = Charset.defaultCharset().name()): ByteArray = (this as java.lang.String).getBytes(encoding)
|
||||||
public inline fun String.toByteArray(encoding: Charset): ByteArray = (this as java.lang.String).getBytes(encoding)
|
public inline fun String.toByteArray(encoding: Charset): ByteArray = (this as java.lang.String).getBytes(encoding)
|
||||||
|
|
||||||
public inline fun String.toBoolean() : Boolean = java.lang.Boolean.parseBoolean(this)
|
public inline fun String.toBoolean() : Boolean = java.lang.Boolean.parseBoolean(this)
|
||||||
@@ -162,7 +162,7 @@ public inline fun String.toDouble() : Double = java.lang.Double.parseDouble(this
|
|||||||
* with the specified flags from [[Pattern]] or'd together
|
* with the specified flags from [[Pattern]] or'd together
|
||||||
* so that strings can be split or matched on.
|
* so that strings can be split or matched on.
|
||||||
*/
|
*/
|
||||||
public inline fun String.toRegex(flags: Int=0): java.util.regex.Pattern {
|
public fun String.toRegex(flags: Int=0): java.util.regex.Pattern {
|
||||||
return java.util.regex.Pattern.compile(this, flags)
|
return java.util.regex.Pattern.compile(this, flags)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -283,7 +283,7 @@ public inline fun String.any(predicate: (Char) -> Boolean): Boolean {
|
|||||||
*
|
*
|
||||||
* @includeFunctionBody ../../test/StringTest.kt appendString
|
* @includeFunctionBody ../../test/StringTest.kt appendString
|
||||||
*/
|
*/
|
||||||
public inline fun String.appendString(buffer: Appendable, separator: String = ", ", prefix: String = "", postfix: String = "", limit: Int = -1, truncated: String = "..."): Unit {
|
public fun String.appendString(buffer: Appendable, separator: String = ", ", prefix: String = "", postfix: String = "", limit: Int = -1, truncated: String = "..."): Unit {
|
||||||
buffer.append(prefix)
|
buffer.append(prefix)
|
||||||
var count = 0
|
var count = 0
|
||||||
for (c in this) {
|
for (c in this) {
|
||||||
@@ -441,7 +441,7 @@ public inline fun <K> String.groupByTo(result: MutableMap<K, String>, toKey: (Ch
|
|||||||
*
|
*
|
||||||
* @includeFunctionBody ../../test/StringTest.kt makeString
|
* @includeFunctionBody ../../test/StringTest.kt makeString
|
||||||
*/
|
*/
|
||||||
public inline fun String.makeString(separator: String = ", ", prefix: String = "", postfix: String = "", limit: Int = -1, truncated: String = "..."): String {
|
public fun String.makeString(separator: String = ", ", prefix: String = "", postfix: String = "", limit: Int = -1, truncated: String = "..."): String {
|
||||||
val buffer = StringBuilder()
|
val buffer = StringBuilder()
|
||||||
appendString(buffer, separator, prefix, postfix, limit, truncated)
|
appendString(buffer, separator, prefix, postfix, limit, truncated)
|
||||||
return buffer.toString()
|
return buffer.toString()
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import java.beans.*
|
|||||||
/**
|
/**
|
||||||
* Creates a [[PropertyChangeListener]] for the given function for processing each [[PropertyChangeEvent]]
|
* Creates a [[PropertyChangeListener]] for the given function for processing each [[PropertyChangeEvent]]
|
||||||
*/
|
*/
|
||||||
inline fun propertyChangeListener(fn: (PropertyChangeEvent) -> Unit): PropertyChangeListener = FunctionPropertyChangeListener(fn)
|
fun propertyChangeListener(fn: (PropertyChangeEvent) -> Unit): PropertyChangeListener = FunctionPropertyChangeListener(fn)
|
||||||
|
|
||||||
private class FunctionPropertyChangeListener(val fn: (PropertyChangeEvent) -> Unit) : PropertyChangeListener {
|
private class FunctionPropertyChangeListener(val fn: (PropertyChangeEvent) -> Unit) : PropertyChangeListener {
|
||||||
public override fun propertyChange(e: PropertyChangeEvent) {
|
public override fun propertyChange(e: PropertyChangeEvent) {
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ public fun thread(start: Boolean = true, daemon: Boolean = false, contextClassLo
|
|||||||
/**
|
/**
|
||||||
* Executes the given block on the [[Executor]]
|
* Executes the given block on the [[Executor]]
|
||||||
*/
|
*/
|
||||||
public inline fun Executor.execute(action: ()->Unit) {
|
public /*inline*/ fun Executor.execute(action: ()->Unit) {
|
||||||
execute(runnable(action))
|
execute(runnable(action))
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -57,14 +57,14 @@ public inline fun Executor.execute(action: ()->Unit) {
|
|||||||
* Allows you to use the executor as a function to
|
* Allows you to use the executor as a function to
|
||||||
* execute the given block on the [[Executor]].
|
* execute the given block on the [[Executor]].
|
||||||
*/
|
*/
|
||||||
public inline fun Executor.invoke(action: ()->Unit) {
|
public /*inline*/ fun Executor.invoke(action: ()->Unit) {
|
||||||
execute(runnable(action))
|
execute(runnable(action))
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Executes the given block on the [[Executor]]
|
* Executes the given block on the [[Executor]]
|
||||||
*/
|
*/
|
||||||
public inline fun <T>ExecutorService.submit(action: ()->T):Future<T> {
|
public /*inline*/ fun <T>ExecutorService.submit(action: ()->T):Future<T> {
|
||||||
val c:Callable<T> = callable(action)
|
val c:Callable<T> = callable(action)
|
||||||
return submit(c);
|
return submit(c);
|
||||||
}
|
}
|
||||||
@@ -73,6 +73,6 @@ public inline fun <T>ExecutorService.submit(action: ()->T):Future<T> {
|
|||||||
* Allows you to use the executor as a function to
|
* Allows you to use the executor as a function to
|
||||||
* execute the given block on the [[Executor]].
|
* execute the given block on the [[Executor]].
|
||||||
*/
|
*/
|
||||||
public inline fun <T>ExecutorService.invoke(action: ()->T):Future<T> {
|
public /*inline*/ fun <T>ExecutorService.invoke(action: ()->T):Future<T> {
|
||||||
return submit(action)
|
return submit(action)
|
||||||
}
|
}
|
||||||
@@ -141,7 +141,7 @@ private val stdin : BufferedReader = BufferedReader(InputStreamReader(object : I
|
|||||||
}))
|
}))
|
||||||
|
|
||||||
/** Reads a line of input from [[System.in]] */
|
/** Reads a line of input from [[System.in]] */
|
||||||
public inline fun readLine() : String? = stdin.readLine()
|
public fun readLine() : String? = stdin.readLine()
|
||||||
|
|
||||||
/** Uses the given resource then closes it down correctly whether an exception is thrown or not */
|
/** Uses the given resource then closes it down correctly whether an exception is thrown or not */
|
||||||
public inline fun <T: Closeable, R> T.use(block: (T)-> R) : R {
|
public inline fun <T: Closeable, R> T.use(block: (T)-> R) : R {
|
||||||
@@ -178,33 +178,33 @@ object: ByteIterator() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Creates a buffered input stream */
|
/** Creates a buffered input stream */
|
||||||
public inline fun InputStream.buffered(bufferSize: Int = defaultBufferSize) : InputStream
|
public fun InputStream.buffered(bufferSize: Int = defaultBufferSize) : InputStream
|
||||||
= if (this is BufferedInputStream)
|
= if (this is BufferedInputStream)
|
||||||
this
|
this
|
||||||
else
|
else
|
||||||
BufferedInputStream(this, bufferSize)
|
BufferedInputStream(this, bufferSize)
|
||||||
|
|
||||||
public inline fun InputStream.reader(encoding: Charset = defaultCharset) : InputStreamReader = InputStreamReader(this, encoding)
|
public fun InputStream.reader(encoding: Charset = defaultCharset) : InputStreamReader = InputStreamReader(this, encoding)
|
||||||
|
|
||||||
public inline fun InputStream.reader(encoding: String) : InputStreamReader = InputStreamReader(this, encoding)
|
public inline fun InputStream.reader(encoding: String) : InputStreamReader = InputStreamReader(this, encoding)
|
||||||
|
|
||||||
public inline fun InputStream.reader(encoding: CharsetDecoder) : InputStreamReader = InputStreamReader(this, encoding)
|
public inline fun InputStream.reader(encoding: CharsetDecoder) : InputStreamReader = InputStreamReader(this, encoding)
|
||||||
|
|
||||||
|
|
||||||
public inline fun OutputStream.buffered(bufferSize: Int = defaultBufferSize) : BufferedOutputStream
|
public fun OutputStream.buffered(bufferSize: Int = defaultBufferSize) : BufferedOutputStream
|
||||||
= if (this is BufferedOutputStream) this else BufferedOutputStream(this, bufferSize)
|
= if (this is BufferedOutputStream) this else BufferedOutputStream(this, bufferSize)
|
||||||
|
|
||||||
public inline fun OutputStream.writer(encoding: Charset = defaultCharset) : OutputStreamWriter = OutputStreamWriter(this, encoding)
|
public fun OutputStream.writer(encoding: Charset = defaultCharset) : OutputStreamWriter = OutputStreamWriter(this, encoding)
|
||||||
|
|
||||||
public inline fun OutputStream.writer(encoding: String) : OutputStreamWriter = OutputStreamWriter(this, encoding)
|
public fun OutputStream.writer(encoding: String) : OutputStreamWriter = OutputStreamWriter(this, encoding)
|
||||||
|
|
||||||
public inline fun OutputStream.writer(encoding: CharsetEncoder) : OutputStreamWriter = OutputStreamWriter(this, encoding)
|
public fun OutputStream.writer(encoding: CharsetEncoder) : OutputStreamWriter = OutputStreamWriter(this, encoding)
|
||||||
|
|
||||||
|
|
||||||
public inline fun Reader.buffered(bufferSize: Int = defaultBufferSize): BufferedReader
|
public fun Reader.buffered(bufferSize: Int = defaultBufferSize): BufferedReader
|
||||||
= if(this is BufferedReader) this else BufferedReader(this, bufferSize)
|
= if(this is BufferedReader) this else BufferedReader(this, bufferSize)
|
||||||
|
|
||||||
public inline fun Writer.buffered(bufferSize: Int = defaultBufferSize): BufferedWriter
|
public fun Writer.buffered(bufferSize: Int = defaultBufferSize): BufferedWriter
|
||||||
= if(this is BufferedWriter) this else BufferedWriter(this, bufferSize)
|
= if(this is BufferedWriter) this else BufferedWriter(this, bufferSize)
|
||||||
|
|
||||||
|
|
||||||
@@ -231,7 +231,7 @@ public inline fun <T> Reader.useLines(block: (Iterator<String>) -> T): T = this.
|
|||||||
* <br>
|
* <br>
|
||||||
* We suggest you try the method useLines() instead which closes the stream when the processing is complete.
|
* We suggest you try the method useLines() instead which closes the stream when the processing is complete.
|
||||||
*/
|
*/
|
||||||
public inline fun BufferedReader.lineIterator() : Iterator<String> = LineIterator(this)
|
public fun BufferedReader.lineIterator() : Iterator<String> = LineIterator(this)
|
||||||
|
|
||||||
class LineIterator(val reader: BufferedReader) : Iterator<String> {
|
class LineIterator(val reader: BufferedReader) : Iterator<String> {
|
||||||
private var nextValue: String? = null
|
private var nextValue: String? = null
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ public inline fun assertTrue(message: String, block: ()-> Boolean) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Asserts that the given block returns true */
|
/** Asserts that the given block returns true */
|
||||||
public inline fun assertTrue(block: ()-> Boolean) : Unit = assertTrue(block.toString(), block)
|
public inline fun assertTrue(block: ()-> Boolean) : Unit = assertTrue("exprected true", block)
|
||||||
|
|
||||||
/** Asserts that the given block returns false */
|
/** Asserts that the given block returns false */
|
||||||
public inline fun assertNot(message: String, block: ()-> Boolean) {
|
public inline fun assertNot(message: String, block: ()-> Boolean) {
|
||||||
@@ -21,31 +21,37 @@ public inline fun assertNot(message: String, block: ()-> Boolean) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Asserts that the given block returns false */
|
/** Asserts that the given block returns false */
|
||||||
public inline fun assertNot(block: ()-> Boolean) : Unit = assertNot(block.toString(), block)
|
public fun assertNot(block: ()-> Boolean) : Unit = assertNot("expected false", block)
|
||||||
|
|
||||||
/** Asserts that the expression is true with an optional message */
|
/** Asserts that the expression is true with an optional message */
|
||||||
public inline fun assertTrue(actual: Boolean, message: String = "") {
|
public fun assertTrue(actual: Boolean, message: String = "") {
|
||||||
return assertEquals(true, actual, message)
|
return assertEquals(true, actual, message)
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Asserts that the expression is false with an optional message */
|
/** Asserts that the expression is false with an optional message */
|
||||||
public inline fun assertFalse(actual: Boolean, message: String = "") {
|
public fun assertFalse(actual: Boolean, message: String = "") {
|
||||||
return assertEquals(false, actual, message)
|
return assertEquals(false, actual, message)
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Asserts that the expected value is equal to the actual value, with an optional message */
|
/** Asserts that the expected value is equal to the actual value, with an optional message */
|
||||||
public inline fun assertEquals(expected: Any?, actual: Any?, message: String = "") {
|
public fun assertEquals(expected: Any?, actual: Any?, message: String = "") {
|
||||||
asserter.assertEquals(message, expected, actual)
|
asserter.assertEquals(message, expected, actual)
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Asserts that the expression is not null, with an optional message */
|
/** Asserts that the expression is not null, with an optional message */
|
||||||
public inline fun <T> assertNotNull(actual: T?, message: String = ""): T {
|
public fun <T> assertNotNull(actual: T?, message: String = ""): T {
|
||||||
asserter.assertNotNull(message, actual)
|
asserter.assertNotNull(message, actual)
|
||||||
return actual!!
|
return actual!!
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//TODO merge with next via default
|
||||||
/** Asserts that the expression is not null, with an optional message and a function block to process the not-null value */
|
/** Asserts that the expression is not null, with an optional message and a function block to process the not-null value */
|
||||||
public inline fun <T, R> assertNotNull(actual: T?, message: String = "", block: (T) -> R) {
|
public inline fun <T, R> assertNotNull(actual: T?, block: (T) -> R) {
|
||||||
|
assertNotNull(actual, "", block)
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Asserts that the expression is not null, with an optional message and a function block to process the not-null value */
|
||||||
|
public inline fun <T, R> assertNotNull(actual: T?, message: String, block: (T) -> R) {
|
||||||
asserter.assertNotNull(message, actual)
|
asserter.assertNotNull(message, actual)
|
||||||
if (actual != null) {
|
if (actual != null) {
|
||||||
block(actual)
|
block(actual)
|
||||||
@@ -53,18 +59,18 @@ public inline fun <T, R> assertNotNull(actual: T?, message: String = "", block:
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Asserts that the expression is null, with an optional message */
|
/** Asserts that the expression is null, with an optional message */
|
||||||
public inline fun assertNull(actual: Any?, message: String = "") {
|
public fun assertNull(actual: Any?, message: String = "") {
|
||||||
asserter.assertNull(message, actual)
|
asserter.assertNull(message, actual)
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Marks a test as having failed if this point in the execution path is reached, with an optional message */
|
/** Marks a test as having failed if this point in the execution path is reached, with an optional message */
|
||||||
public inline fun fail(message: String = "") {
|
public fun fail(message: String = "") {
|
||||||
asserter.fail(message)
|
asserter.fail(message)
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Asserts that given function block returns the given expected value */
|
/** Asserts that given function block returns the given expected value */
|
||||||
public inline fun <T> expect(expected: T, block: ()-> T) {
|
public inline fun <T> expect(expected: T, block: ()-> T) {
|
||||||
expect(expected, block.toString(), block)
|
expect(expected, "expected " + expected, block)
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Asserts that given function block returns the given expected value and use the given message if it fails */
|
/** Asserts that given function block returns the given expected value and use the given message if it fails */
|
||||||
@@ -88,7 +94,7 @@ public fun fails(block: ()-> Unit): Throwable? {
|
|||||||
/**
|
/**
|
||||||
* A plugin for performing assertions which can reuse JUnit or TestNG
|
* A plugin for performing assertions which can reuse JUnit or TestNG
|
||||||
*/
|
*/
|
||||||
trait Asserter {
|
public trait Asserter {
|
||||||
public fun assertTrue(message: String, actual: Boolean): Unit
|
public fun assertTrue(message: String, actual: Boolean): Unit
|
||||||
|
|
||||||
public fun assertEquals(message: String, expected: Any?, actual: Any?): Unit
|
public fun assertEquals(message: String, expected: Any?, actual: Any?): Unit
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ public fun <T: Throwable> failsWith(exceptionClass: Class<T>, block: ()-> Any):
|
|||||||
* to implement in your unit test output
|
* to implement in your unit test output
|
||||||
*/
|
*/
|
||||||
public inline fun todo(block: ()-> Any) {
|
public inline fun todo(block: ()-> Any) {
|
||||||
println("TODO at " + (Exception() as java.lang.Throwable).getStackTrace()?.get(1) + " for " + block)
|
println("TODO at " + (Exception() as java.lang.Throwable).getStackTrace()?.get(1))
|
||||||
}
|
}
|
||||||
|
|
||||||
private var _asserter: Asserter? = null
|
private var _asserter: Asserter? = null
|
||||||
|
|||||||
Reference in New Issue
Block a user