@@ -47,9 +47,9 @@ fun OpticsProcessorOptions.generateIsoDsl(ele: ADT, isoOptic: ValueClassDsl): Sn
4747private fun OpticsProcessorOptions.processLensSyntax (ele : ADT , foci : List <Focus >, className : String , lensType : String , optionalType : String , traversalType : String ): String = if (ele.typeParameters.isEmpty()) {
4848 foci.joinToString(separator = " \n " ) { focus ->
4949 """
50- |${ele.visibilityModifierName} $inlineText val <__S> $lensType <__S, ${ele.sourceClassName} >.${focus.escapedParamName} : $lensType <__S, ${focus.classNameWithParameters } > $inlineText get() = this + $className .${focus.escapedParamName}
51- |${ele.visibilityModifierName} $inlineText val <__S> $optionalType <__S, ${ele.sourceClassName} >.${focus.escapedParamName} : $optionalType <__S, ${focus.classNameWithParameters } > $inlineText get() = this + $className .${focus.escapedParamName}
52- |${ele.visibilityModifierName} $inlineText val <__S> $traversalType <__S, ${ele.sourceClassName} >.${focus.escapedParamName} : $traversalType <__S, ${focus.classNameWithParameters } > $inlineText get() = this + $className .${focus.escapedParamName}
50+ |${ele.visibilityModifierName} $inlineText val <__S> $lensType <__S, ${ele.sourceClassName} >.${focus.escapedParamName} : $lensType <__S, ${focus.targetClassNameWithParameters } > $inlineText get() = this + $className .${focus.escapedParamName}
51+ |${ele.visibilityModifierName} $inlineText val <__S> $optionalType <__S, ${ele.sourceClassName} >.${focus.escapedParamName} : $optionalType <__S, ${focus.targetClassNameWithParameters } > $inlineText get() = this + $className .${focus.escapedParamName}
52+ |${ele.visibilityModifierName} $inlineText val <__S> $traversalType <__S, ${ele.sourceClassName} >.${focus.escapedParamName} : $traversalType <__S, ${focus.targetClassNameWithParameters } > $inlineText get() = this + $className .${focus.escapedParamName}
5353 |
5454 """ .trimMargin()
5555 }
@@ -58,9 +58,9 @@ private fun OpticsProcessorOptions.processLensSyntax(ele: ADT, foci: List<Focus>
5858 val joinedTypeParams = ele.typeParameters.joinToString(separator = " ," )
5959 foci.joinToString(separator = " \n " ) { focus ->
6060 """
61- |${ele.visibilityModifierName} $inlineText fun <__S,$joinedTypeParams > $lensType <__S, $sourceClassNameWithParams >.${focus.escapedParamName} (): $lensType <__S, ${focus.classNameWithParameters } > = this + $className .${focus.escapedParamName} ()
62- |${ele.visibilityModifierName} $inlineText fun <__S,$joinedTypeParams > $optionalType <__S, $sourceClassNameWithParams >.${focus.escapedParamName} (): $optionalType <__S, ${focus.classNameWithParameters } > = this + $className .${focus.escapedParamName} ()
63- |${ele.visibilityModifierName} $inlineText fun <__S,$joinedTypeParams > $traversalType <__S, $sourceClassNameWithParams >.${focus.escapedParamName} (): $traversalType <__S, ${focus.classNameWithParameters } > = this + $className .${focus.escapedParamName} ()
61+ |${ele.visibilityModifierName} $inlineText fun <__S,$joinedTypeParams > $lensType <__S, $sourceClassNameWithParams >.${focus.escapedParamName} (): $lensType <__S, ${focus.targetClassNameWithParameters } > = this + $className .${focus.escapedParamName} ()
62+ |${ele.visibilityModifierName} $inlineText fun <__S,$joinedTypeParams > $optionalType <__S, $sourceClassNameWithParams >.${focus.escapedParamName} (): $optionalType <__S, ${focus.targetClassNameWithParameters } > = this + $className .${focus.escapedParamName} ()
63+ |${ele.visibilityModifierName} $inlineText fun <__S,$joinedTypeParams > $traversalType <__S, $sourceClassNameWithParams >.${focus.escapedParamName} (): $traversalType <__S, ${focus.targetClassNameWithParameters } > = this + $className .${focus.escapedParamName} ()
6464 |
6565 """ .trimMargin()
6666 }
@@ -69,23 +69,24 @@ private fun OpticsProcessorOptions.processLensSyntax(ele: ADT, foci: List<Focus>
6969private fun OpticsProcessorOptions.processPrismSyntax (ele : ADT , dsl : SealedClassDsl , className : String , optionalType : String , prismType : String , traversalType : String ): String = if (ele.typeParameters.isEmpty()) {
7070 dsl.foci.joinToString(separator = " \n\n " ) { focus ->
7171 """
72- |${ele.visibilityModifierName} $inlineText val <__S> $optionalType <__S, ${ele.sourceClassName} >.${focus.escapedParamName} : $optionalType <__S, ${focus.classNameWithParameters } > $inlineText get() = this + $className .${focus.escapedParamName}
73- |${ele.visibilityModifierName} $inlineText val <__S> $prismType <__S, ${ele.sourceClassName} >.${focus.escapedParamName} : $prismType <__S, ${focus.classNameWithParameters } > $inlineText get() = this + $className .${focus.escapedParamName}
74- |${ele.visibilityModifierName} $inlineText val <__S> $traversalType <__S, ${ele.sourceClassName} >.${focus.escapedParamName} : $traversalType <__S, ${focus.classNameWithParameters } > $inlineText get() = this + $className .${focus.escapedParamName}
72+ |${ele.visibilityModifierName} $inlineText val <__S> $optionalType <__S, ${ele.sourceClassName} >.${focus.escapedParamName} : $optionalType <__S, ${focus.targetClassNameWithParameters } > $inlineText get() = this + $className .${focus.escapedParamName}
73+ |${ele.visibilityModifierName} $inlineText val <__S> $prismType <__S, ${ele.sourceClassName} >.${focus.escapedParamName} : $prismType <__S, ${focus.targetClassNameWithParameters } > $inlineText get() = this + $className .${focus.escapedParamName}
74+ |${ele.visibilityModifierName} $inlineText val <__S> $traversalType <__S, ${ele.sourceClassName} >.${focus.escapedParamName} : $traversalType <__S, ${focus.targetClassNameWithParameters } > $inlineText get() = this + $className .${focus.escapedParamName}
7575 |
7676 """ .trimMargin()
7777 }
7878} else {
7979 dsl.foci.joinToString(separator = " \n\n " ) { focus ->
8080 val sourceClassNameWithParams = focus.refinedType?.qualifiedString() ? : " ${ele.sourceClassName}${ele.angledTypeParameterNames} "
81+ val allTypeParams = focus.refinedArguments.union(focus.targetTypeParameters.orEmpty())
8182 val joinedTypeParams = when {
82- focus.refinedArguments .isEmpty() -> " "
83- else -> focus.refinedArguments .joinToString(separator = " ," )
83+ allTypeParams .isEmpty() -> " "
84+ else -> allTypeParams .joinToString(separator = " ," )
8485 }
8586 """
86- |${ele.visibilityModifierName} $inlineText fun <__S,$joinedTypeParams > $optionalType <__S, $sourceClassNameWithParams >.${focus.escapedParamName} (): $optionalType <__S, ${focus.classNameWithParameters } > = this + $className .${focus.escapedParamName} ()
87- |${ele.visibilityModifierName} $inlineText fun <__S,$joinedTypeParams > $prismType <__S, $sourceClassNameWithParams >.${focus.escapedParamName} (): $prismType <__S, ${focus.classNameWithParameters } > = this + $className .${focus.escapedParamName} ()
88- |${ele.visibilityModifierName} $inlineText fun <__S,$joinedTypeParams > $traversalType <__S, $sourceClassNameWithParams >.${focus.escapedParamName} (): $traversalType <__S, ${focus.classNameWithParameters } > = this + $className .${focus.escapedParamName} ()
87+ |${ele.visibilityModifierName} $inlineText fun <__S,$joinedTypeParams > $optionalType <__S, $sourceClassNameWithParams >.${focus.escapedParamName} (): $optionalType <__S, ${focus.targetClassNameWithParameters } > = this + $className .${focus.escapedParamName} ()
88+ |${ele.visibilityModifierName} $inlineText fun <__S,$joinedTypeParams > $prismType <__S, $sourceClassNameWithParams >.${focus.escapedParamName} (): $prismType <__S, ${focus.targetClassNameWithParameters } > = this + $className .${focus.escapedParamName} ()
89+ |${ele.visibilityModifierName} $inlineText fun <__S,$joinedTypeParams > $traversalType <__S, $sourceClassNameWithParams >.${focus.escapedParamName} (): $traversalType <__S, ${focus.targetClassNameWithParameters } > = this + $className .${focus.escapedParamName} ()
8990 |
9091 """ .trimMargin()
9192 }
@@ -94,11 +95,11 @@ private fun OpticsProcessorOptions.processPrismSyntax(ele: ADT, dsl: SealedClass
9495private fun OpticsProcessorOptions.processIsoSyntax (ele : ADT , dsl : ValueClassDsl , className : String , isoType : String , lensType : String , optionalType : String , prismType : String , traversalType : String ): String = if (ele.typeParameters.isEmpty()) {
9596 dsl.foci.joinToString(separator = " \n\n " ) { focus ->
9697 """
97- |${ele.visibilityModifierName} $inlineText val <__S> $isoType <__S, ${ele.sourceClassName} >.${focus.escapedParamName} : $isoType <__S, ${focus.classNameWithParameters } > $inlineText get() = this + $className .${focus.escapedParamName}
98- |${ele.visibilityModifierName} $inlineText val <__S> $lensType <__S, ${ele.sourceClassName} >.${focus.escapedParamName} : $lensType <__S, ${focus.classNameWithParameters } > $inlineText get() = this + $className .${focus.escapedParamName}
99- |${ele.visibilityModifierName} $inlineText val <__S> $optionalType <__S, ${ele.sourceClassName} >.${focus.escapedParamName} : $optionalType <__S, ${focus.classNameWithParameters } > $inlineText get() = this + $className .${focus.escapedParamName}
100- |${ele.visibilityModifierName} $inlineText val <__S> $prismType <__S, ${ele.sourceClassName} >.${focus.escapedParamName} : $prismType <__S, ${focus.classNameWithParameters } > $inlineText get() = this + $className .${focus.escapedParamName}
101- |${ele.visibilityModifierName} $inlineText val <__S> $traversalType <__S, ${ele.sourceClassName} >.${focus.escapedParamName} : $traversalType <__S, ${focus.classNameWithParameters } > $inlineText get() = this + $className .${focus.escapedParamName}
98+ |${ele.visibilityModifierName} $inlineText val <__S> $isoType <__S, ${ele.sourceClassName} >.${focus.escapedParamName} : $isoType <__S, ${focus.targetClassNameWithParameters } > $inlineText get() = this + $className .${focus.escapedParamName}
99+ |${ele.visibilityModifierName} $inlineText val <__S> $lensType <__S, ${ele.sourceClassName} >.${focus.escapedParamName} : $lensType <__S, ${focus.targetClassNameWithParameters } > $inlineText get() = this + $className .${focus.escapedParamName}
100+ |${ele.visibilityModifierName} $inlineText val <__S> $optionalType <__S, ${ele.sourceClassName} >.${focus.escapedParamName} : $optionalType <__S, ${focus.targetClassNameWithParameters } > $inlineText get() = this + $className .${focus.escapedParamName}
101+ |${ele.visibilityModifierName} $inlineText val <__S> $prismType <__S, ${ele.sourceClassName} >.${focus.escapedParamName} : $prismType <__S, ${focus.targetClassNameWithParameters } > $inlineText get() = this + $className .${focus.escapedParamName}
102+ |${ele.visibilityModifierName} $inlineText val <__S> $traversalType <__S, ${ele.sourceClassName} >.${focus.escapedParamName} : $traversalType <__S, ${focus.targetClassNameWithParameters } > $inlineText get() = this + $className .${focus.escapedParamName}
102103 |
103104 """ .trimMargin()
104105 }
@@ -110,11 +111,11 @@ private fun OpticsProcessorOptions.processIsoSyntax(ele: ADT, dsl: ValueClassDsl
110111 else -> focus.refinedArguments.joinToString(separator = " ," )
111112 }
112113 """
113- |${ele.visibilityModifierName} $inlineText fun <__S,$joinedTypeParams > $isoType <__S, $sourceClassNameWithParams >.${focus.escapedParamName} (): $isoType <__S, ${focus.classNameWithParameters } > = this + $className .${focus.escapedParamName} ()
114- |${ele.visibilityModifierName} $inlineText fun <__S,$joinedTypeParams > $lensType <__S, $sourceClassNameWithParams >.${focus.escapedParamName} (): $lensType <__S, ${focus.classNameWithParameters } > = this + $className .${focus.escapedParamName} ()
115- |${ele.visibilityModifierName} $inlineText fun <__S,$joinedTypeParams > $optionalType <__S, $sourceClassNameWithParams >.${focus.escapedParamName} (): $optionalType <__S, ${focus.classNameWithParameters } > = this + $className .${focus.escapedParamName} ()
116- |${ele.visibilityModifierName} $inlineText fun <__S,$joinedTypeParams > $prismType <__S, $sourceClassNameWithParams >.${focus.escapedParamName} (): $prismType <__S, ${focus.classNameWithParameters } > = this + $className .${focus.escapedParamName} ()
117- |${ele.visibilityModifierName} $inlineText fun <__S,$joinedTypeParams > $traversalType <__S, $sourceClassNameWithParams >.${focus.escapedParamName} (): $traversalType <__S, ${focus.classNameWithParameters } > = this + $className .${focus.escapedParamName} ()
114+ |${ele.visibilityModifierName} $inlineText fun <__S,$joinedTypeParams > $isoType <__S, $sourceClassNameWithParams >.${focus.escapedParamName} (): $isoType <__S, ${focus.targetClassNameWithParameters } > = this + $className .${focus.escapedParamName} ()
115+ |${ele.visibilityModifierName} $inlineText fun <__S,$joinedTypeParams > $lensType <__S, $sourceClassNameWithParams >.${focus.escapedParamName} (): $lensType <__S, ${focus.targetClassNameWithParameters } > = this + $className .${focus.escapedParamName} ()
116+ |${ele.visibilityModifierName} $inlineText fun <__S,$joinedTypeParams > $optionalType <__S, $sourceClassNameWithParams >.${focus.escapedParamName} (): $optionalType <__S, ${focus.targetClassNameWithParameters } > = this + $className .${focus.escapedParamName} ()
117+ |${ele.visibilityModifierName} $inlineText fun <__S,$joinedTypeParams > $prismType <__S, $sourceClassNameWithParams >.${focus.escapedParamName} (): $prismType <__S, ${focus.targetClassNameWithParameters } > = this + $className .${focus.escapedParamName} ()
118+ |${ele.visibilityModifierName} $inlineText fun <__S,$joinedTypeParams > $traversalType <__S, $sourceClassNameWithParams >.${focus.escapedParamName} (): $traversalType <__S, ${focus.targetClassNameWithParameters } > = this + $className .${focus.escapedParamName} ()
118119 |
119120 """ .trimMargin()
120121 }
0 commit comments