// "Create function" "false" // ACTION: Create extension function 'Collection>.firstOrNull' // ACTION: Create extension function 'Unit.equals' // ACTION: Create local variable 'maximumSizeOfGroup' // ACTION: Create object 'maximumSizeOfGroup' // ACTION: Create parameter 'maximumSizeOfGroup' // ACTION: Create property 'maximumSizeOfGroup' // ACTION: Introduce local variable // ACTION: Rename reference // ACTION: Expand boolean expression to 'if else' // ERROR: A 'return' expression required in a function with a block body ('{...}') // ERROR: The expression cannot be a selector (occur after a dot) // ERROR: Type inference failed: inline fun Iterable.firstOrNull(predicate: (T) -> Boolean): T?
cannot be applied to
receiver: Collection> arguments: ((List) -> () -> Boolean)
// ERROR: Type mismatch: inferred type is (List) -> () -> Boolean but (List) -> Boolean was expected // ERROR: Unresolved reference: maximumSizeOfGroup // COMPILER_ARGUMENTS: -XXLanguage:-NewInference fun doSomethingStrangeWithCollection(collection: Collection): Collection? { val groupsByLength = collection.groupBy { s -> { s.length } } val maximumSizeOfGroup = groupsByLength.values.maxBy { it.size }. return groupsByLength.values.firstOrNull { group -> {group.size == maximumSizeOfGroup} } }