Do not generate default parameter values for synthetic functions

This causes a subtle issue with 'copy' function for data class,
which has parameters with source elements corresponding to
the data class primary constructor parameters: default value expression
for such parameters is generated second time (to be overwritten later),
which creates duplicate bindings if such expression included any
(possibly anonymous) declarations, such as lambdas or anonymous objects.

 #KT-18208 Fixed
This commit is contained in:
Dmitry Petrov
2017-06-01 17:58:38 +03:00
parent eb3e728e63
commit 978661c53d
4 changed files with 217 additions and 6 deletions
@@ -0,0 +1,3 @@
data class A(val runA: A.(String) -> Unit = {})
data class B(val x: Any = object {})