Removed default values from inline functions to workaround compiler's bug

This commit is contained in:
Valentin Kipyatkov
2015-05-21 13:08:42 +03:00
parent f58ce760ca
commit 6ddb208bb7
@@ -131,37 +131,32 @@ class JetWholeProjectForEachElementOfTypeFix<TTask> private (
inline fun <reified TElement : JetElement> createByPredicate( inline fun <reified TElement : JetElement> createByPredicate(
noinline predicate: (TElement) -> Boolean, noinline predicate: (TElement) -> Boolean,
noinline taskProcessor: (TElement) -> Unit, noinline taskProcessor: (TElement) -> Unit,
name: String, name: String
familyName: String = name
) = createByTaskFactory<TElement, TElement>( ) = createByTaskFactory<TElement, TElement>(
taskFactory = { if (predicate(it)) it else null }, taskFactory = { if (predicate(it)) it else null },
taskProcessor = taskProcessor, taskProcessor = taskProcessor,
name = name, name = name
familyName = familyName
) )
inline fun <reified TElement : JetElement, TTask : Any> createByTaskFactory( inline fun <reified TElement : JetElement, TTask : Any> createByTaskFactory(
noinline taskFactory: (TElement) -> TTask?, noinline taskFactory: (TElement) -> TTask?,
noinline taskProcessor: (TTask) -> Unit, noinline taskProcessor: (TTask) -> Unit,
name: String, name: String
familyName: String = name
) = createForMultiTaskOnElement<TElement, TTask>( ) = createForMultiTaskOnElement<TElement, TTask>(
tasksFactory = { taskFactory(it).singletonOrEmptyList() }, tasksFactory = { taskFactory(it).singletonOrEmptyList() },
tasksProcessor = { it.forEach(taskProcessor) }, tasksProcessor = { it.forEach(taskProcessor) },
name = name, name = name
familyName = familyName
) )
inline fun <reified TElement : JetElement, TTask> createForMultiTaskOnElement( inline fun <reified TElement : JetElement, TTask> createForMultiTaskOnElement(
noinline tasksFactory: (TElement) -> Collection<TTask>, noinline tasksFactory: (TElement) -> Collection<TTask>,
noinline tasksProcessor: (Collection<TTask>) -> Unit, noinline tasksProcessor: (Collection<TTask>) -> Unit,
name: String, name: String
familyName: String = name
) = JetWholeProjectForEachElementOfTypeFix( ) = JetWholeProjectForEachElementOfTypeFix(
collectingVisitorFactory = { accumulator -> flatMapDescendantsOfTypeVisitor(accumulator, tasksFactory) }, collectingVisitorFactory = { accumulator -> flatMapDescendantsOfTypeVisitor(accumulator, tasksFactory) },
tasksProcessor = tasksProcessor, tasksProcessor = tasksProcessor,
name = name, name = name,
familyName = familyName familyName = name
) )
} }
} }