Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Default values in multiple lines don't work #560

Closed
UKMIITB opened this issue Jan 13, 2024 · 25 comments
Closed

Default values in multiple lines don't work #560

UKMIITB opened this issue Jan 13, 2024 · 25 comments

Comments

@UKMIITB
Copy link

UKMIITB commented Jan 13, 2024

[ksp] java.lang.IndexOutOfBoundsException: End index (-1) is less than start index (0).
at kotlin.text.StringsKt__StringsKt.removeRange(Strings.kt:550)
at com.ramcosta.composedestinations.ksp.commons.DefaultParameterValueReader.readDefaultValue(DefaultParameterValueReader.kt:43)
at com.ramcosta.composedestinations.ksp.commons.DefaultParameterValueReaderKt.getDefaultValue(DefaultParameterValueReader.kt:197)
at com.ramcosta.composedestinations.ksp.processors.KspToCodeGenDestinationsMapper$toParameter$2.invoke(KspToCodeGenDestinationsMapper.kt:506)
at com.ramcosta.composedestinations.ksp.processors.KspToCodeGenDestinationsMapper$toParameter$2.invoke(KspToCodeGenDestinationsMapper.kt:506)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at com.ramcosta.composedestinations.codegen.model.Parameter.getDefaultValue(Parameter.kt:10)
at com.ramcosta.composedestinations.codegen.writers.SingleDestinationWriter.defaultValueForInvokeFunction(SingleDestinationWriter.kt:436)
at com.ramcosta.composedestinations.codegen.writers.SingleDestinationWriter.innerNavArgsParametersCode(SingleDestinationWriter.kt:275)
at com.ramcosta.composedestinations.codegen.writers.SingleDestinationWriter.addNavArgsDataClass(SingleDestinationWriter.kt:166)
at com.ramcosta.composedestinations.codegen.writers.SingleDestinationWriter.write(SingleDestinationWriter.kt:96)
at com.ramcosta.composedestinations.codegen.writers.DestinationsWriter.write(DestinationsWriter.kt:30)
at com.ramcosta.composedestinations.codegen.CodeGenerator.generate(CodeGenerator.kt:44)
at com.ramcosta.composedestinations.ksp.processors.Processor.process(Processor.kt:61)
at com.google.devtools.ksp.AbstractKotlinSymbolProcessingExtension$doAnalysis$8$1.invoke(KotlinSymbolProcessingExtension.kt:305)
at com.google.devtools.ksp.AbstractKotlinSymbolProcessingExtension$doAnalysis$8$1.invoke(KotlinSymbolProcessingExtension.kt:303)
at com.google.devtools.ksp.AbstractKotlinSymbolProcessingExtension.handleException(KotlinSymbolProcessingExtension.kt:409)
at com.google.devtools.ksp.AbstractKotlinSymbolProcessingExtension.doAnalysis(KotlinSymbolProcessingExtension.kt:303)
at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration(TopDownAnalyzerFacadeForJVM.kt:112)
at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration$default(TopDownAnalyzerFacadeForJVM.kt:77)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:256)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:247)
at org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport.analyzeAndReport(AnalyzerWithCompilerReport.kt:115)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyze(KotlinToJVMBytecodeCompiler.kt:247)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli(KotlinToJVMBytecodeCompiler.kt:87)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli$default(KotlinToJVMBytecodeCompiler.kt:43)
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:165)
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:50)
at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:104)
at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:48)
at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:101)
at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:1523)
at jdk.internal.reflect.GeneratedMethodAccessor93.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
at java.rmi/sun.rmi.transport.Transport$1.run(Unknown Source)
at java.rmi/sun.rmi.transport.Transport$1.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Unknown Source)
at java.rmi/sun.rmi.transport.Transport.serviceCall(Unknown Source)
at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Unknown Source)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)

We were trying to apply ktfmt in our entire project. But when applying on UI files where destination is used, following error is occurring during build time.

The composable destination post formatting looked something like this. Can you please check if some build code assumption needs to be changed

@Destination @Composable fun ABC( xx: XXXActivity, xxViewModel: xxViewModel = hiltViewModel(), resultRecipient: ResultRecipient<xxScreenDestination, xxResult>, source: String = xx.YY, navigator: DestinationsNavigator, xx: String? = null, xx: XX.XX = XX.INSTANCE.XX(), finishAfterResult: Boolean = true, xx: XX = XX.DEFAULT )

@raamcosta
Copy link
Owner

Can you add two images of the before and after? What works and what doesn’t?

@UKMIITB
Copy link
Author

UKMIITB commented Jan 13, 2024

image image

1st state doesn't work
2nd state works.

basic difference is there is a enum parameter that is getting passed to destination & it has a default value.
When it is in one line, everything works fine a: A = B
But when default value is moved to 2nd line it breaks

Also this value is getting used in viewmodel from savedStateHandle

@raamcosta
Copy link
Owner

So in the images it’s the “g” parameter that breaks it or is it also “j”?

@UKMIITB
Copy link
Author

UKMIITB commented Jan 13, 2024

I just formatted parameter g & didnot change paramater j -> Code works fine
I just formatted parameter j & didnot change g -> Build breaks

Difference between g & j is that g is used in UI code while j is accessed in viewmodel via savedStateHandle

@raamcosta
Copy link
Owner

That shouldn’t make a difference. I will check this when I get home.

@raamcosta
Copy link
Owner

So, yeah I needed a little refresher, but we do not support default values declared in multiple lines.

KSP does not support this "getting the default value" use case, so, for me to support it (which I really wanted) I have to parse these source code lines manually. And right now this parsing logic doesn't support multi lines.

I will work on checking if I can add this support, or at least provide a better exception.

@raamcosta raamcosta changed the title Unable to build project when using ktfmt code formatter Default values in multiple lines don't work Jan 13, 2024
@raamcosta
Copy link
Owner

I fixed this on 1.9.60. Please try it @UKMIITB and let me know :)

Build is still cooking, but should be up in 30min or so.

@UKMIITB
Copy link
Author

UKMIITB commented Jan 16, 2024

Thank you @raamcosta for fixing this.

Just a side note, current version of kotlin is 1.21 & ksp is 1.0.15
In ksp 1.0.15, there is memory leak issue which is fixed in 1.0.16
google/ksp#1653

Do you mind if I raise a PR with kotlin & ksp update. There are no core changes & only hotfix

@raamcosta
Copy link
Owner

Sure be my guest!

@raamcosta
Copy link
Owner

Btw can you just confirm to me that this indeed fixed your issue?

@shyvum
Copy link

shyvum commented Jan 16, 2024

breaking for this @raamcosta @UKMIITB

@Destination
@Composable
fun MyScreen(
    a: A,
    navigator: DestinationsNavigator,
    b: B = hiltViewModel(),
    c: D.E = D.INSTANCE.E(),
    d: F? = F()
) {

trace:

> Task :xxxYYY:kspQaDebugKotlin
e: file:///xxxYYY/build/generated/ksp/qaDebug/kotlin/com/aaa/destinations/bbbDestination.kt:36:145 Unexpected tokens (use ';' to separate expressions on the same line)
e: file:///xxxYYY/build/generated/ksp/qaDebug/kotlin/com/aaa/destinations/bbbDestination.kt:36:193 Unexpected tokens (use ';' to separate expressions on the same line)
e: file:///xxxYYY/build/generated/ksp/qaDebug/kotlin/com/aaa/destinations/bbbDestination.kt:36:231 Unexpected tokens (use ';' to separate expressions on the same line)
e: file:///xxxYYY/build/generated/ksp/qaDebug/kotlin/com/aaa/destinations/bbbDestination.kt:36:377 Unexpected tokens (use ';' to separate expressions on the same line)
e: file:///xxxYYY/build/generated/ksp/qaDebug/kotlin/com/aaa/destinations/bbbDestination.kt:37:5 Expecting an element
e: file:///xxxYYY/build/generated/ksp/qaDebug/kotlin/com/aaa/destinations/bbbDestination.kt:37:6 Unexpected tokens (use ';' to separate expressions on the same line)
e: file:///xxxYYY/build/generated/ksp/qaDebug/kotlin/com/aaa/destinations/bbbDestination.kt:49:49 Unexpected tokens (use ';' to separate expressions on the same line)
e: file:///xxxYYY/build/generated/ksp/qaDebug/kotlin/com/aaa/destinations/bbbDestination.kt:53:66 Unexpected tokens (use ';' to separate expressions on the same line)
e: file:///xxxYYY/build/generated/ksp/qaDebug/kotlin/com/aaa/destinations/bbbDestination.kt:53:137 Unexpected tokens (use ';' to separate expressions on the same line)
e: file:///xxxYYY/build/generated/ksp/qaDebug/kotlin/com/aaa/destinations/bbbDestination.kt:53:185 Unexpected tokens (use ';' to separate expressions on the same line)
e: file:///xxxYYY/build/generated/ksp/qaDebug/kotlin/com/aaa/destinations/bbbDestination.kt:53:223 Unexpected tokens (use ';' to separate expressions on the same line)
e: file:///xxxYYY/build/generated/ksp/qaDebug/kotlin/com/aaa/destinations/bbbDestination.kt:56:2 Expecting an element
e: file:///xxxYYY/build/generated/ksp/qaDebug/kotlin/com/aaa/destinations/bbbDestination.kt:82:149 Property getter or setter expected
e: file:///xxxYYY/build/generated/ksp/qaDebug/kotlin/com/aaa/destinations/bbbDestination.kt:82:197 Property getter or setter expected
e: file:///xxxYYY/build/generated/ksp/qaDebug/kotlin/com/aaa/destinations/bbbDestination.kt:82:235 Property getter or setter expected
e: file:///xxxYYY/build/generated/ksp/qaDebug/kotlin/com/aaa/destinations/bbbDestination.kt:82:381 Unexpected tokens (use ';' to separate expressions on the same line)
e: file:///xxxYYY/build/generated/ksp/qaDebug/kotlin/com/aaa/destinations/bbbDestination.kt:83:2 Expecting an element
e: file:///xxxYYY/build/generated/ksp/qaDebug/kotlin/com/aaa/destinations/bbbDestination.kt:84:2 Missing '}
e: file:///xxxYYY/build/generated/ksp/qaDebug/kotlin/com/aaa/destinations/bbbDestination.kt:84:2 Expecting '}'

@raamcosta
Copy link
Owner

raamcosta commented Jan 16, 2024

Hi @ShivamGoyal1899 👋

Can you run ksp task with --info and paste output here please?
Thanks 🙏

@UKMIITB
Copy link
Author

UKMIITB commented Jan 16, 2024

@raamcosta
It seems it is picking main content as well for parameters.
For finding the last point, when first ( is found insert it in stack & keep adding ( in stack & pop when ) is found.
And when stack is empty it means whole of params for destination part is extracted.

Just a suggestion based on generated file which is creating this issue.
Not sure what the exact implementation is

@harry248
Copy link

This fix causes an issue in our case:

e: [ksp] com.ramcosta.composedestinations.codegen.commons.IllegalDestinationsSetup: Navigation arguments with multiline function call as their default valueare not currently supported (near: 'AppliedSearchFilters(),)@Preview@Composableprivate fun SearchScreenPreview( @PreviewParameter(PoiListPreviewParameterProvider')

However, we do not have multiline default values here:

data class SearchScreenArgs(
    val configuration: SearchConfiguration = SearchConfiguration(),
    val appliedFilters: AppliedSearchFilters = AppliedSearchFilters(),
)

Where SearchConfiguration looks like this:

@Serializable
data class SearchConfiguration(
    val dedicatedTitle: String? = null,
    val isInMapContext: Boolean = false,
    val filterVariant: FilterVariant = FilterVariant.Global,
)

And AppliedSearchFilters like this:

@Serializable
data class AppliedSearchFilters(
    val search: String? = null,
    val typeFilter: List<PoiTypeFilter>? = null,
    val filterItems: List<FilterItem>? = null,
    val tags: List<String>? = null,
    val validity: Long? = null,
    val channel: IDeal.Channel? = null,
    val type: IDeal.Kind? = null,
    val poiIds: List<String>? = null,
    val likedPoisOnly: Boolean = false,
)

@shyvum
Copy link

shyvum commented Jan 17, 2024

@raamcosta output of ksp task with --info

> Task :app:kspDebugKotlin

i: [ksp] getDefaultValue | name = source type = String
i: [ksp] getDefaultValue | line =     source: String = MyAnalytics.MY_HOME_SCREEN,    navigator: DestinationsNavigator,    myUniqueId: String? = null,    myAnalytics: MyAnalytics.MyBalance = MyAnalytics.INSTANCE.MyBalance(),    finishAfterResult: Boolean = true,    myScreenSource: MyScreenSource = MyScreenSource.DEFAULT) {    LaunchedEffect(Unit) {        myAnalytics.onLanded(source = source)        myBalanceViewModel.triggerSecondScreen.collectLatest {            if (it) {
i: [ksp] getDefaultValue | Result = DefaultValue(code=MyAnalytics.MY_HOME_SCREEN, imports=[com.shivamgoyal.analytics.MyAnalytics])
i: [ksp] getDefaultValue | name = myUniqueId type = String
i: [ksp] getDefaultValue | line =     myUniqueId: String? = null,    myAnalytics: MyAnalytics.MyBalance = MyAnalytics.INSTANCE.MyBalance(),    finishAfterResult: Boolean = true,    myScreenSource: MyScreenSource = MyScreenSource.DEFAULT) {    LaunchedEffect(Unit) {        myAnalytics.onLanded(source = source)        myBalanceViewModel.triggerSecondScreen.collectLatest {            if (it) {                myAnalytics.onSecondScreenOpen(source = source)                myBalanceViewModel.checkBalance(
i: [ksp] getDefaultValue | Result = DefaultValue(code=null, imports=[])
i: [ksp] getDefaultValue | name = finishAfterResult type = Boolean
[ksp] getDefaultValue | line =     source: String = MyAnalytics.MY_HOME_SCREEN,    navigator: DestinationsNavigator,    myUniqueId: String? = null,    myAnalytics: MyAnalytics.MyBalance = MyAnalytics.INSTANCE.MyBalance(),    finishAfterResult: Boolean = true,    myScreenSource: MyScreenSource = MyScreenSource.DEFAULT) {    LaunchedEffect(Unit) {        myAnalytics.onLanded(source = source)        myBalanceViewModel.triggerSecondScreen.collectLatest {            if (it) {

i: [ksp] getDefaultValue | line =     finishAfterResult: Boolean = true,    myScreenSource: MyScreenSource = MyScreenSource.DEFAULT) {    LaunchedEffect(Unit) {        myAnalytics.onLanded(source = source)        myBalanceViewModel.triggerSecondScreen.collectLatest {            if (it) {                myAnalytics.onSecondScreenOpen(source = source)                myBalanceViewModel.checkBalance(                    secondService = myActivity.secondService,                    myUniqueId = myUniqueId
i: [ksp] getDefaultValue | Result = DefaultValue(code=true, imports=[])
i: [ksp] getDefaultValue | name = myScreenSource type = MyScreenSource
[ksp] getDefaultValue | line =     myUniqueId: String? = null,    myAnalytics: MyAnalytics.MyBalance = MyAnalytics.INSTANCE.MyBalance(),    finishAfterResult: Boolean = true,    myScreenSource: MyScreenSource = MyScreenSource.DEFAULT) {    LaunchedEffect(Unit) {        myAnalytics.onLanded(source = source)        myBalanceViewModel.triggerSecondScreen.collectLatest {            if (it) {                myAnalytics.onSecondScreenOpen(source = source)                myBalanceViewModel.checkBalance(

i: [ksp] getDefaultValue | line =     myScreenSource: MyScreenSource = MyScreenSource.DEFAULT) {    LaunchedEffect(Unit) {        myAnalytics.onLanded(source = source)        myBalanceViewModel.triggerSecondScreen.collectLatest {            if (it) {                myAnalytics.onSecondScreenOpen(source = source)                myBalanceViewModel.checkBalance(                    secondService = myActivity.secondService,                    myUniqueId = myUniqueId                )
i: [ksp] getDefaultValue | Result = DefaultValue(code=MyScreenSource.DEFAULT, imports=[com.shivamgoyal.management.common.model.view.MyScreenSource])
[ksp] getDefaultValue | line =     finishAfterResult: Boolean = true,    myScreenSource: MyScreenSource = MyScreenSource.DEFAULT) {    LaunchedEffect(Unit) {        myAnalytics.onLanded(source = source)        myBalanceViewModel.triggerSecondScreen.collectLatest {            if (it) {                myAnalytics.onSecondScreenOpen(source = source)                myBalanceViewModel.checkBalance(                    secondService = myActivity.secondService,                    myUniqueId = myUniqueId

i: [ksp] getDefaultValue | name = source type = String
i: [ksp] getDefaultValue | line =     source: String = MyAnalytics.MY_HOME_SCREEN,    resultRecipient: ResultRecipient<ForeignScreenDestination, NewResult>,    newViewModel: NewViewModel = hiltViewModel(),    navigator: DestinationsNavigator,    myAnalytics: MyAnalytics.New = MyAnalytics.INSTANCE.New()) {    LaunchedEffect(Unit) {        myAnalytics.onLanded(source = source)        newViewModel.fetchDetails()    }
[ksp] getDefaultValue | line =     myScreenSource: MyScreenSource = MyScreenSource.DEFAULT) {    LaunchedEffect(Unit) {        myAnalytics.onLanded(source = source)        myBalanceViewModel.triggerSecondScreen.collectLatest {            if (it) {                myAnalytics.onSecondScreenOpen(source = source)                myBalanceViewModel.checkBalance(                    secondService = myActivity.secondService,                    myUniqueId = myUniqueId                )

i: [ksp] getDefaultValue | Result = DefaultValue(code=MyAnalytics.MY_HOME_SCREEN, imports=[com.shivamgoyal.analytics.MyAnalytics])
i: [ksp] getDefaultValue | name = foreignScreenSource type = ForeignScreenSource
[ksp] getDefaultValue | line =     source: String = MyAnalytics.MY_HOME_SCREEN,    resultRecipient: ResultRecipient<ForeignScreenDestination, NewResult>,    newViewModel: NewViewModel = hiltViewModel(),    navigator: DestinationsNavigator,    myAnalytics: MyAnalytics.New = MyAnalytics.INSTANCE.New()) {    LaunchedEffect(Unit) {        myAnalytics.onLanded(source = source)        newViewModel.fetchDetails()    }

i: [ksp] getDefaultValue | line =     foreignScreenSource: ForeignScreenSource = ForeignScreenSource.Default,    transactionType: MyType = MyType.MAGIC,    giftViewModel: GiftViewModel = hiltViewModel(),    myAnalytics: MyAnalytics.Foreign = MyAnalytics.INSTANCE.Foreign()) {    val keyboardController = LocalSoftwareKeyboardController.current    val focusManager = LocalFocusManager.current    val context = LocalContext.current    val view = LocalView.current    val lifecycleOwner = LocalLifecycleOwner.current
i: [ksp] getDefaultValue | Result = DefaultValue(code=ForeignScreenSource.Default, imports=[com.shivamgoyal.management.common.sendmoney.model.view.ForeignScreenSource])
i: [ksp] getDefaultValue | name = transactionType type = MyType
[ksp] getDefaultValue | line =     foreignScreenSource: ForeignScreenSource = ForeignScreenSource.Default,    transactionType: MyType = MyType.MAGIC,    giftViewModel: GiftViewModel = hiltViewModel(),    myAnalytics: MyAnalytics.Foreign = MyAnalytics.INSTANCE.Foreign()) {    val keyboardController = LocalSoftwareKeyboardController.current    val focusManager = LocalFocusManager.current    val context = LocalContext.current    val view = LocalView.current    val lifecycleOwner = LocalLifecycleOwner.current

i: [ksp] getDefaultValue | line =     transactionType: MyType = MyType.MAGIC,    giftViewModel: GiftViewModel = hiltViewModel(),    myAnalytics: MyAnalytics.Foreign = MyAnalytics.INSTANCE.Foreign()) {    val keyboardController = LocalSoftwareKeyboardController.current    val focusManager = LocalFocusManager.current    val context = LocalContext.current    val view = LocalView.current    val lifecycleOwner = LocalLifecycleOwner.current
i: [ksp] getDefaultValue | Result = DefaultValue(code=MyType.MAGIC, imports=[com.shivamgoyal.management.common.sendmoney.model.view.MyType])
i: [ksp] getDefaultValue | name = idScreenData type = IdScreenData
[ksp] getDefaultValue | line =     transactionType: MyType = MyType.MAGIC,    giftViewModel: GiftViewModel = hiltViewModel(),    myAnalytics: MyAnalytics.Foreign = MyAnalytics.INSTANCE.Foreign()) {    val keyboardController = LocalSoftwareKeyboardController.current    val focusManager = LocalFocusManager.current    val context = LocalContext.current    val view = LocalView.current    val lifecycleOwner = LocalLifecycleOwner.current

i: [ksp] getDefaultValue | line =     idScreenData: IdScreenData = IdScreenData(),    navigator: DestinationsNavigator,    idInputViewModel: IdInputViewModel = hiltViewModel(),    myAnalytics: MyAnalytics.IdInput = MyAnalytics.INSTANCE.IdInput()) {    LaunchedEffect(Unit) {        myAnalytics.onIdInputLanded(idScreenData.nextScreenDestination.name)    }    val idInput by idInputViewModel.idInput.collectAsStateWithLifecycle()
i: [ksp] getDefaultValue | Result = DefaultValue(code=IdScreenData(), imports=[com.shivamgoyal.management.common.id.model.view.IdScreenData])
i: [ksp] getDefaultValue | name = myInfo type = MyInfo
[ksp] getDefaultValue | line =     idScreenData: IdScreenData = IdScreenData(),    navigator: DestinationsNavigator,    idInputViewModel: IdInputViewModel = hiltViewModel(),    myAnalytics: MyAnalytics.IdInput = MyAnalytics.INSTANCE.IdInput()) {    LaunchedEffect(Unit) {        myAnalytics.onIdInputLanded(idScreenData.nextScreenDestination.name)    }    val idInput by idInputViewModel.idInput.collectAsStateWithLifecycle()

i: [ksp] getDefaultValue | line =     myInfo: MyInfo? = MyInfo()) {    val keyboardController = LocalSoftwareKeyboardController.current    val focusManager = LocalFocusManager.current    val context = LocalContext.current    val view = LocalView.current    LaunchedEffect(Unit) {        myViewModel.getMyScreenInfo(clService = myActivity.secondService)    }
i: [ksp] getDefaultValue | Result = DefaultValue(code=MyInfo()) {    val keyboardController = LocalSoftwareKeyboardController.current    val focusManager = LocalFocusManager.current    val context = LocalContext.current    val view = LocalView.current    LaunchedEffect(Unit) {        myViewModel.getMyScreenInfo(clService = myActivity.secondService), imports=[])
i: [ksp] getDefaultValue | name = noteEntity type = NoteEntity
[ksp] getDefaultValue | line =     myInfo: MyInfo? = MyInfo()) {    val keyboardController = LocalSoftwareKeyboardController.current    val focusManager = LocalFocusManager.current    val context = LocalContext.current    val view = LocalView.current    LaunchedEffect(Unit) {        myViewModel.getMyScreenInfo(clService = myActivity.secondService)    }

i: [ksp] getDefaultValue | line =     noteEntity: NoteEntity? = null,    magicianEntity: MagicianEntity? = null,    noteDetailViewModel: NoteDetailViewModel = hiltViewModel(),    myAnalytics: MyAnalytics.Manage = MyAnalytics.INSTANCE.Manage()) {    LaunchedEffect(Unit) {        myAnalytics.onNoteDetailsLanded(noteEntity, NoteCategory.PENDING)    }    val uiState by noteDetailViewModel.uiState.collectAsStateWithLifecycle()    val snackBarState by noteDetailViewModel.showSnackBar.collectAsStateWithLifecycle()
i: [ksp] getDefaultValue | Result = DefaultValue(code=null, imports=[])
i: [ksp] getDefaultValue | name = magicianEntity type = MagicianEntity
[ksp] getDefaultValue | line =     noteEntity: NoteEntity? = null,    magicianEntity: MagicianEntity? = null,    noteDetailViewModel: NoteDetailViewModel = hiltViewModel(),    myAnalytics: MyAnalytics.Manage = MyAnalytics.INSTANCE.Manage()) {    LaunchedEffect(Unit) {        myAnalytics.onNoteDetailsLanded(noteEntity, NoteCategory.PENDING)    }    val uiState by noteDetailViewModel.uiState.collectAsStateWithLifecycle()    val snackBarState by noteDetailViewModel.showSnackBar.collectAsStateWithLifecycle()

i: [ksp] getDefaultValue | line =     magicianEntity: MagicianEntity? = null,    noteDetailViewModel: NoteDetailViewModel = hiltViewModel(),    myAnalytics: MyAnalytics.Manage = MyAnalytics.INSTANCE.Manage()) {    LaunchedEffect(Unit) {        myAnalytics.onNoteDetailsLanded(noteEntity, NoteCategory.PENDING)    }    val uiState by noteDetailViewModel.uiState.collectAsStateWithLifecycle()    val snackBarState by noteDetailViewModel.showSnackBar.collectAsStateWithLifecycle()    val bottomSheetStateHolder by noteDetailViewModel.bottomSheetStateHolder.collectAsStateWithLifecycle()
i: [ksp] getDefaultValue | Result = DefaultValue(code=null, imports=[])
i: [ksp] getDefaultValue | name = isFreshOnBoardingCase type = Boolean
i: [ksp] getDefaultValue | line =     isFreshOnBoardingCase: Boolean = true,    accountType: AccountType = AccountType.HELLO,    resultRecipient: ResultRecipient<ForeignScreenDestination, NewResult>,    navigator: DestinationsNavigator,    myAnalytics: MyAnalytics.SelectThis = MyAnalytics.INSTANCE.SelectThis(),    isIntentOfTransfer: Boolean = false,    ) {    val lifecycleOwner = LocalLifecycleOwner.current    DisposableEffect(key1 = lifecycleOwner) {
i: [ksp] getDefaultValue | Result = DefaultValue(code=true, imports=[])
i: [ksp] getDefaultValue | name = accountType type = AccountType
[ksp] getDefaultValue | line =     magicianEntity: MagicianEntity? = null,    noteDetailViewModel: NoteDetailViewModel = hiltViewModel(),    myAnalytics: MyAnalytics.Manage = MyAnalytics.INSTANCE.Manage()) {    LaunchedEffect(Unit) {        myAnalytics.onNoteDetailsLanded(noteEntity, NoteCategory.PENDING)    }    val uiState by noteDetailViewModel.uiState.collectAsStateWithLifecycle()    val snackBarState by noteDetailViewModel.showSnackBar.collectAsStateWithLifecycle()    val bottomSheetStateHolder by noteDetailViewModel.bottomSheetStateHolder.collectAsStateWithLifecycle()

i: [ksp] getDefaultValue | line =     accountType: AccountType = AccountType.HELLO,    resultRecipient: ResultRecipient<ForeignScreenDestination, NewResult>,    navigator: DestinationsNavigator,    myAnalytics: MyAnalytics.SelectThis = MyAnalytics.INSTANCE.SelectThis(),    isIntentOfTransfer: Boolean = false,    ) {    val lifecycleOwner = LocalLifecycleOwner.current    DisposableEffect(key1 = lifecycleOwner) {        val observer = LifecycleEventObserver { _, event ->
i: [ksp] getDefaultValue | Result = DefaultValue(code=AccountType.HELLO, imports=[com.shivamgoyal.onboarding.account.add.model.view.AccountType])
i: [ksp] getDefaultValue | name = isIntentOfTransfer type = Boolean
[ksp] getDefaultValue | line =     isFreshOnBoardingCase: Boolean = true,    accountType: AccountType = AccountType.HELLO,    resultRecipient: ResultRecipient<ForeignScreenDestination, NewResult>,    navigator: DestinationsNavigator,    myAnalytics: MyAnalytics.SelectThis = MyAnalytics.INSTANCE.SelectThis(),    isIntentOfTransfer: Boolean = false,    ) {    val lifecycleOwner = LocalLifecycleOwner.current    DisposableEffect(key1 = lifecycleOwner) {

i: [ksp] getDefaultValue | line =     isIntentOfTransfer: Boolean = false,    ) {    val lifecycleOwner = LocalLifecycleOwner.current    DisposableEffect(key1 = lifecycleOwner) {        val observer = LifecycleEventObserver { _, event ->            if (event == Lifecycle.Event.ON_START) {                myActivity.window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING)            } else if (event == Lifecycle.Event.ON_STOP) {                myActivity.window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE)
i: [ksp] getDefaultValue | Result = DefaultValue(code=false, imports=[])
i: [ksp] getDefaultValue | name = navigationIcon type = Int
[ksp] getDefaultValue | line =     accountType: AccountType = AccountType.HELLO,    resultRecipient: ResultRecipient<ForeignScreenDestination, NewResult>,    navigator: DestinationsNavigator,    myAnalytics: MyAnalytics.SelectThis = MyAnalytics.INSTANCE.SelectThis(),    isIntentOfTransfer: Boolean = false,    ) {    val lifecycleOwner = LocalLifecycleOwner.current    DisposableEffect(key1 = lifecycleOwner) {        val observer = LifecycleEventObserver { _, event ->

i: [ksp] getDefaultValue | line =     navigationIcon: Int = R.drawable.arrow_left,    myAnalytics: MyAnalytics.Verify =        MyAnalytics.INSTANCE.Verify(),    returnResult: Boolean = false) {    LaunchedEffect(Unit) {        myAnalytics.onAccountVerifyLanded(actionName)        verifyViewModel.setPinErrorResult.collect {            if (returnResult) {                resultNavigator.navigateBack(result = it)
i: [ksp] getDefaultValue | Result = DefaultValue(code=R.drawable.arrow_left, imports=[com.shivamgoyal.R])
i: [ksp] getDefaultValue | name = returnResult type = Boolean
[ksp] getDefaultValue | line =     isIntentOfTransfer: Boolean = false,    ) {    val lifecycleOwner = LocalLifecycleOwner.current    DisposableEffect(key1 = lifecycleOwner) {        val observer = LifecycleEventObserver { _, event ->            if (event == Lifecycle.Event.ON_START) {                myActivity.window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING)            } else if (event == Lifecycle.Event.ON_STOP) {                myActivity.window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE)

i: [ksp] getDefaultValue | line =     returnResult: Boolean = false) {    LaunchedEffect(Unit) {        myAnalytics.onAccountVerifyLanded(actionName)        verifyViewModel.setPinErrorResult.collect {            if (returnResult) {                resultNavigator.navigateBack(result = it)            }        }    }
i: [ksp] getDefaultValue | Result = DefaultValue(code=false, imports=[])
i: [ksp] getDefaultValue | name = isIntentOfTypeCheckBalance type = Boolean
[ksp] getDefaultValue | line =     navigationIcon: Int = R.drawable.arrow_left,    myAnalytics: MyAnalytics.Verify =        MyAnalytics.INSTANCE.Verify(),    returnResult: Boolean = false) {    LaunchedEffect(Unit) {        myAnalytics.onAccountVerifyLanded(actionName)        verifyViewModel.setPinErrorResult.collect {            if (returnResult) {                resultNavigator.navigateBack(result = it)

i: [ksp] getDefaultValue | line =     isIntentOfTypeCheckBalance: Boolean = false,    isIntentOfTransfer: Boolean = false,    isFromAddBankAccount: Boolean = false,    linkedAccountsViewModel: LinkedAccountsViewModel = hiltViewModel(),    myAnalytics: MyAnalytics.MyAccounts = MyAnalytics.INSTANCE.MyAccounts(),    myNumberAnalytics: MyAnalytics.MyNumber = MyAnalytics.INSTANCE.MyNumber()) {    LaunchedEffect(Unit) {        linkedAccountsViewModel.getLinkedAccounts()        if (isIntentOfTypeCheckBalance) {            myAnalytics.onCheckBalanceAccountSelectLand(linkedAccountsViewModel.linkedAccounts.value.size)
[ksp] getDefaultValue | line =     returnResult: Boolean = false) {    LaunchedEffect(Unit) {        myAnalytics.onAccountVerifyLanded(actionName)        verifyViewModel.setPinErrorResult.collect {            if (returnResult) {                resultNavigator.navigateBack(result = it)            }        }    }

i: [ksp] getDefaultValue | Result = DefaultValue(code=false, imports=[])
i: [ksp] getDefaultValue | name = isIntentOfTransfer type = Boolean
[ksp] getDefaultValue | line =     isIntentOfTypeCheckBalance: Boolean = false,    isIntentOfTransfer: Boolean = false,    isFromAddBankAccount: Boolean = false,    linkedAccountsViewModel: LinkedAccountsViewModel = hiltViewModel(),    myAnalytics: MyAnalytics.MyAccounts = MyAnalytics.INSTANCE.MyAccounts(),    myNumberAnalytics: MyAnalytics.MyNumber = MyAnalytics.INSTANCE.MyNumber()) {    LaunchedEffect(Unit) {        linkedAccountsViewModel.getLinkedAccounts()        if (isIntentOfTypeCheckBalance) {            myAnalytics.onCheckBalanceAccountSelectLand(linkedAccountsViewModel.linkedAccounts.value.size)

i: [ksp] getDefaultValue | line =     isIntentOfTransfer: Boolean = false,    isFromAddBankAccount: Boolean = false,    linkedAccountsViewModel: LinkedAccountsViewModel = hiltViewModel(),    myAnalytics: MyAnalytics.MyAccounts = MyAnalytics.INSTANCE.MyAccounts(),    myNumberAnalytics: MyAnalytics.MyNumber = MyAnalytics.INSTANCE.MyNumber()) {    LaunchedEffect(Unit) {        linkedAccountsViewModel.getLinkedAccounts()        if (isIntentOfTypeCheckBalance) {            myAnalytics.onCheckBalanceAccountSelectLand(linkedAccountsViewModel.linkedAccounts.value.size)        } else if (isIntentOfTransfer) {
i: [ksp] getDefaultValue | Result = DefaultValue(code=false, imports=[])
i: [ksp] getDefaultValue | name = isFromAddBankAccount type = Boolean
[ksp] getDefaultValue | line =     isIntentOfTransfer: Boolean = false,    isFromAddBankAccount: Boolean = false,    linkedAccountsViewModel: LinkedAccountsViewModel = hiltViewModel(),    myAnalytics: MyAnalytics.MyAccounts = MyAnalytics.INSTANCE.MyAccounts(),    myNumberAnalytics: MyAnalytics.MyNumber = MyAnalytics.INSTANCE.MyNumber()) {    LaunchedEffect(Unit) {        linkedAccountsViewModel.getLinkedAccounts()        if (isIntentOfTypeCheckBalance) {            myAnalytics.onCheckBalanceAccountSelectLand(linkedAccountsViewModel.linkedAccounts.value.size)        } else if (isIntentOfTransfer) {

i: [ksp] getDefaultValue | line =     isFromAddBankAccount: Boolean = false,    linkedAccountsViewModel: LinkedAccountsViewModel = hiltViewModel(),    myAnalytics: MyAnalytics.MyAccounts = MyAnalytics.INSTANCE.MyAccounts(),    myNumberAnalytics: MyAnalytics.MyNumber = MyAnalytics.INSTANCE.MyNumber()) {    LaunchedEffect(Unit) {        linkedAccountsViewModel.getLinkedAccounts()        if (isIntentOfTypeCheckBalance) {            myAnalytics.onCheckBalanceAccountSelectLand(linkedAccountsViewModel.linkedAccounts.value.size)        } else if (isIntentOfTransfer) {            myAnalytics.onSelfTransferLanded()
i: [ksp] getDefaultValue | Result = DefaultValue(code=false, imports=[])
i: [ksp] getDefaultValue | name = deviceData type = DeviceData
[ksp] getDefaultValue | line =     isFromAddBankAccount: Boolean = false,    linkedAccountsViewModel: LinkedAccountsViewModel = hiltViewModel(),    myAnalytics: MyAnalytics.MyAccounts = MyAnalytics.INSTANCE.MyAccounts(),    myNumberAnalytics: MyAnalytics.MyNumber = MyAnalytics.INSTANCE.MyNumber()) {    LaunchedEffect(Unit) {        linkedAccountsViewModel.getLinkedAccounts()        if (isIntentOfTypeCheckBalance) {            myAnalytics.onCheckBalanceAccountSelectLand(linkedAccountsViewModel.linkedAccounts.value.size)        } else if (isIntentOfTransfer) {            myAnalytics.onSelfTransferLanded()

i: [ksp] getDefaultValue | line =     deviceData: DeviceData = DeviceData(),    onboardingViewModel: OnboardingViewModel = hiltViewModel(),    navigator: DestinationsNavigator,    resultRecipient: ResultRecipient<PermissionScreenDestination, PermissionResult>,    myAnalytics: MyAnalytics.MySetup = MyAnalytics.INSTANCE.MySetup()) {    val isExperience =        onboardingActivity.getSourceScreenUrl() == ScreenType.ONBOARDING.name    val coroutineScope = rememberCoroutineScope()    val bottomSheetStateHolder by onboardingViewModel.bottomSheetStateHolder.collectAsStateWithLifecycle()
i: [ksp] getDefaultValue | Result = DefaultValue(code=DeviceData(), imports=[com.shivamgoyal.onboarding.binding.model.view.DeviceData])
i: [ksp] getDefaultValue | name = source type = String
i: [ksp] getDefaultValue | line =     source: String = MyAnalytics.MY_ACTIVITY,    myAnalytics: MyAnalytics.MyFaq = MyAnalytics.INSTANCE.MyFaq()) {    LaunchedEffect(Unit) {        myAnalytics.onFaqLanded(source)    }    val isLaunchFromHomepage = remember { source == MyAnalytics.MY_ACTIVITY }    val onBackClick = {
i: [ksp] getDefaultValue | Result = DefaultValue(code=MyAnalytics.MY_ACTIVITY, imports=[com.shivamgoyal.analytics.MyAnalytics])
i: [ksp] getDefaultValue | name = titleText type = Int
[ksp] getDefaultValue | line =     deviceData: DeviceData = DeviceData(),    onboardingViewModel: OnboardingViewModel = hiltViewModel(),    navigator: DestinationsNavigator,    resultRecipient: ResultRecipient<PermissionScreenDestination, PermissionResult>,    myAnalytics: MyAnalytics.MySetup = MyAnalytics.INSTANCE.MySetup()) {    val isExperience =        onboardingActivity.getSourceScreenUrl() == ScreenType.ONBOARDING.name    val coroutineScope = rememberCoroutineScope()    val bottomSheetStateHolder by onboardingViewModel.bottomSheetStateHolder.collectAsStateWithLifecycle()

i: [ksp] getDefaultValue | line =     titleText: Int = R.string.my_string,    subTitleText: Int? = null,    ctaText: Int = R.string.my_string,    showPermissionDeniedView: Boolean = true,    permissionState: PermissionState? = null,    permissionViewModel: PermissionViewModel = hiltViewModel(),    myAnalytics: MyAnalytics.MyPermission =        MyAnalytics.INSTANCE.MyPermission()) {    LaunchedEffect(Unit) {        myAnalytics.onPermissionLanded(getPermissionListFromPermissionKey(permissionKey))
[ksp] getDefaultValue | line =     source: String = MyAnalytics.MY_ACTIVITY,    myAnalytics: MyAnalytics.MyFaq = MyAnalytics.INSTANCE.MyFaq()) {    LaunchedEffect(Unit) {        myAnalytics.onFaqLanded(source)    }    val isLaunchFromHomepage = remember { source == MyAnalytics.MY_ACTIVITY }    val onBackClick = {

i: [ksp] getDefaultValue | Result = DefaultValue(code=R.string.my_string, imports=[com.shivamgoyal.R])
i: [ksp] getDefaultValue | name = subTitleText type = Int
i: [ksp] getDefaultValue | line =     subTitleText: Int? = null,    ctaText: Int = R.string.my_string,    showPermissionDeniedView: Boolean = true,    permissionState: PermissionState? = null,    permissionViewModel: PermissionViewModel = hiltViewModel(),    myAnalytics: MyAnalytics.MyPermission =        MyAnalytics.INSTANCE.MyPermission()) {    LaunchedEffect(Unit) {        myAnalytics.onPermissionLanded(getPermissionListFromPermissionKey(permissionKey))    }
[ksp] getDefaultValue | line =     titleText: Int = R.string.my_string,    subTitleText: Int? = null,    ctaText: Int = R.string.my_string,    showPermissionDeniedView: Boolean = true,    permissionState: PermissionState? = null,    permissionViewModel: PermissionViewModel = hiltViewModel(),    myAnalytics: MyAnalytics.MyPermission =        MyAnalytics.INSTANCE.MyPermission()) {    LaunchedEffect(Unit) {        myAnalytics.onPermissionLanded(getPermissionListFromPermissionKey(permissionKey))

i: [ksp] getDefaultValue | Result = DefaultValue(code=null, imports=[])
i: [ksp] getDefaultValue | name = ctaText type = Int
i: [ksp] getDefaultValue | line =     ctaText: Int = R.string.my_string,    showPermissionDeniedView: Boolean = true,    permissionState: PermissionState? = null,    permissionViewModel: PermissionViewModel = hiltViewModel(),    myAnalytics: MyAnalytics.MyPermission =        MyAnalytics.INSTANCE.MyPermission()) {    LaunchedEffect(Unit) {        myAnalytics.onPermissionLanded(getPermissionListFromPermissionKey(permissionKey))    }
[ksp] getDefaultValue | line =     subTitleText: Int? = null,    ctaText: Int = R.string.my_string,    showPermissionDeniedView: Boolean = true,    permissionState: PermissionState? = null,    permissionViewModel: PermissionViewModel = hiltViewModel(),    myAnalytics: MyAnalytics.MyPermission =        MyAnalytics.INSTANCE.MyPermission()) {    LaunchedEffect(Unit) {        myAnalytics.onPermissionLanded(getPermissionListFromPermissionKey(permissionKey))    }

i: [ksp] getDefaultValue | Result = DefaultValue(code=R.string.my_string, imports=[com.shivamgoyal.R])
i: [ksp] getDefaultValue | name = showPermissionDeniedView type = Boolean
[ksp] getDefaultValue | line =     ctaText: Int = R.string.my_string,    showPermissionDeniedView: Boolean = true,    permissionState: PermissionState? = null,    permissionViewModel: PermissionViewModel = hiltViewModel(),    myAnalytics: MyAnalytics.MyPermission =        MyAnalytics.INSTANCE.MyPermission()) {    LaunchedEffect(Unit) {        myAnalytics.onPermissionLanded(getPermissionListFromPermissionKey(permissionKey))    }

i: [ksp] getDefaultValue | line =     showPermissionDeniedView: Boolean = true,    permissionState: PermissionState? = null,    permissionViewModel: PermissionViewModel = hiltViewModel(),    myAnalytics: MyAnalytics.MyPermission =        MyAnalytics.INSTANCE.MyPermission()) {    LaunchedEffect(Unit) {        myAnalytics.onPermissionLanded(getPermissionListFromPermissionKey(permissionKey))    }    RenderMyPermissionScreen(
i: [ksp] getDefaultValue | Result = DefaultValue(code=true, imports=[])
i: [ksp] getDefaultValue | name = permissionState type = PermissionState
[ksp] getDefaultValue | line =     showPermissionDeniedView: Boolean = true,    permissionState: PermissionState? = null,    permissionViewModel: PermissionViewModel = hiltViewModel(),    myAnalytics: MyAnalytics.MyPermission =        MyAnalytics.INSTANCE.MyPermission()) {    LaunchedEffect(Unit) {        myAnalytics.onPermissionLanded(getPermissionListFromPermissionKey(permissionKey))    }    RenderMyPermissionScreen(

i: [ksp] getDefaultValue | line =     permissionState: PermissionState? = null,    permissionViewModel: PermissionViewModel = hiltViewModel(),    myAnalytics: MyAnalytics.MyPermission =        MyAnalytics.INSTANCE.MyPermission()) {    LaunchedEffect(Unit) {        myAnalytics.onPermissionLanded(getPermissionListFromPermissionKey(permissionKey))    }    RenderMyPermissionScreen(        myActivity = myActivity,
i: [ksp] getDefaultValue | Result = DefaultValue(code=null, imports=[])
[ksp] getDefaultValue | line =     permissionState: PermissionState? = null,    permissionViewModel: PermissionViewModel = hiltViewModel(),    myAnalytics: MyAnalytics.MyPermission =        MyAnalytics.INSTANCE.MyPermission()) {    LaunchedEffect(Unit) {        myAnalytics.onPermissionLanded(getPermissionListFromPermissionKey(permissionKey))    }    RenderMyPermissionScreen(        myActivity = myActivity,

e: file:///Users/shivamgoyal/android/app/build/generated/ksp/debug/kotlin/com/shivamgoyal/destinations/MyScreenDestination.kt:36:145 Unexpected tokens (use ';' to separate expressions on the same line)
e: file:///Users/shivamgoyal/android/app/build/generated/ksp/debug/kotlin/com/shivamgoyal/destinations/MyScreenDestination.kt:36:193 Unexpected tokens (use ';' to separate expressions on the same line)
e: file:///Users/shivamgoyal/android/app/build/generated/ksp/debug/kotlin/com/shivamgoyal/destinations/MyScreenDestination.kt:36:231 Unexpected tokens (use ';' to separate expressions on the same line)
e: file:///Users/shivamgoyal/android/app/build/generated/ksp/debug/kotlin/com/shivamgoyal/destinations/MyScreenDestination.kt:36:377 Unexpected tokens (use ';' to separate expressions on the same line)
e: file:///Users/shivamgoyal/android/app/build/generated/ksp/debug/kotlin/com/shivamgoyal/destinations/MyScreenDestination.kt:37:5 Expecting an element
e: file:///Users/shivamgoyal/android/app/build/generated/ksp/debug/kotlin/com/shivamgoyal/destinations/MyScreenDestination.kt:37:6 Unexpected tokens (use ';' to separate expressions on the same line)
e: file:///Users/shivamgoyal/android/app/build/generated/ksp/debug/kotlin/com/shivamgoyal/destinations/MyScreenDestination.kt:49:49 Unexpected tokens (use ';' to separate expressions on the same line)
e: file:///Users/shivamgoyal/android/app/build/generated/ksp/debug/kotlin/com/shivamgoyal/destinations/MyScreenDestination.kt:53:66 Unexpected tokens (use ';' to separate expressions on the same line)
e: file:///Users/shivamgoyal/android/app/build/generated/ksp/debug/kotlin/com/shivamgoyal/destinations/MyScreenDestination.kt:53:137 Unexpected tokens (use ';' to separate expressions on the same line)
e: file:///Users/shivamgoyal/android/app/build/generated/ksp/debug/kotlin/com/shivamgoyal/destinations/MyScreenDestination.kt:53:185 Unexpected tokens (use ';' to separate expressions on the same line)
e: file:///Users/shivamgoyal/android/app/build/generated/ksp/debug/kotlin/com/shivamgoyal/destinations/MyScreenDestination.kt:53:223 Unexpected tokens (use ';' to separate expressions on the same line)
e: file:///Users/shivamgoyal/android/app/build/generated/ksp/debug/kotlin/com/shivamgoyal/destinations/MyScreenDestination.kt:56:2 Expecting an element
e: file:///Users/shivamgoyal/android/app/build/generated/ksp/debug/kotlin/com/shivamgoyal/destinations/MyScreenDestination.kt:82:149 Property getter or setter expected
e: file:///Users/shivamgoyal/android/app/build/generated/ksp/debug/kotlin/com/shivamgoyal/destinations/MyScreenDestination.kt:82:197 Property getter or setter expected
e: file:///Users/shivamgoyal/android/app/build/generated/ksp/debug/kotlin/com/shivamgoyal/destinations/MyScreenDestination.kt:82:235 Property getter or setter expected
e: file:///Users/shivamgoyal/android/app/build/generated/ksp/debug/kotlin/com/shivamgoyal/destinations/MyScreenDestination.kt:82:381 Unexpected tokens (use ';' to separate expressions on the same line)
e: file:///Users/shivamgoyal/android/app/build/generated/ksp/debug/kotlin/com/shivamgoyal/destinations/MyScreenDestination.kt:83:2 Expecting an element
e: file:///Users/shivamgoyal/android/app/build/generated/ksp/debug/kotlin/com/shivamgoyal/destinations/MyScreenDestination.kt:84:2 Missing '}
e: file:///Users/shivamgoyal/android/app/build/generated/ksp/debug/kotlin/com/shivamgoyal/destinations/MyScreenDestination.kt:84:2 Expecting '}'

raamcosta added a commit that referenced this issue Jan 17, 2024
@raamcosta
Copy link
Owner

Alright guys, sorry about all this, I believe this time it will be working fine in all cases 🙏

Do test 1.9.61 and let me know all of you @harry248 @ShivamGoyal1899 @UKMIITB

(build is still cooking, but should be up in like 30min or so, I'll update you guys here when it is)

@raamcosta
Copy link
Owner

Build is up guys :)

@harry248
Copy link

harry248 commented Jan 17, 2024

@raamcosta Unfortunately we now get a java.lang.IllegalStateException: unexpected: did not find a ')' for previous '('. 😅

i: [ksp] validateClosedResultRecipients | checking param SearchScreen activateShoppingPassScreenResultRecipient
i: [ksp] getFirstArgTypeSimpleName | line error =

    activateShoppingPassScreenResultRecipient: ResultRecipient<ActivateShoppingPassScreenDestination, String?>,
    viewModel: SearchScreenViewModel = hiltViewModel(),
) {
    val focusManager = LocalFocusManager.current

    val origin by LocalOrigin.current
    val poiCallbacks = remember(viewModel, origin, focusManager) { PoiCallbacks(viewModel, origin, focusManager) }
    val searchCallbacks = remember(viewModel, focusManager) { SearchCallbacks(viewModel, focusManager) }

    activateShoppingPassScreenResultRecipient.onNavResult {
        val shoppingPassId = it.getOr { null }

i: [ksp] getFirstArgTypeSimpleName | result of removePrefix activateShoppingPassScreenResultRecipient =

: ResultRecipient<ActivateShoppingPassScreenDestination, String?>,
    viewModel: SearchScreenViewModel = hiltViewModel(),
) {
    val focusManager = LocalFocusManager.current

    val origin by LocalOrigin.current
    val poiCallbacks = remember(viewModel, origin, focusManager) { PoiCallbacks(viewModel, origin, focusManager) }
    val searchCallbacks = remember(viewModel, focusManager) { SearchCallbacks(viewModel, focusManager) }

    activateShoppingPassScreenResultRecipient.onNavResult {
        val shoppingPassId = it.getOr { null }

i: [ksp] getFirstArgTypeSimpleName | result of removePrefix ResultRecipient =

<ActivateShoppingPassScreenDestination, String?>,
    viewModel: SearchScreenViewModel = hiltViewModel(),
) {
    val focusManager = LocalFocusManager.current

    val origin by LocalOrigin.current
    val poiCallbacks = remember(viewModel, origin, focusManager) { PoiCallbacks(viewModel, origin, focusManager) }
    val searchCallbacks = remember(viewModel, focusManager) { SearchCallbacks(viewModel, focusManager) }

    activateShoppingPassScreenResultRecipient.onNavResult {
        val shoppingPassId = it.getOr { null }

i: [ksp] getFirstArgTypeSimpleName | result of removePrefix < =

ActivateShoppingPassScreenDestination, String?>,
    viewModel: SearchScreenViewModel = hiltViewModel(),
) {
    val focusManager = LocalFocusManager.current

    val origin by LocalOrigin.current
    val poiCallbacks = remember(viewModel, origin, focusManager) { PoiCallbacks(viewModel, origin, focusManager) }
    val searchCallbacks = remember(viewModel, focusManager) { SearchCallbacks(viewModel, focusManager) }

    activateShoppingPassScreenResultRecipient.onNavResult {
        val shoppingPassId = it.getOr { null }

i: [ksp] getFirstArgTypeSimpleName | result of removeSuffix > =

ActivateShoppingPassScreenDestination, String?

i: [ksp] getFirstArgTypeSimpleName | result of split =

[ActivateShoppingPassScreenDestination,  String?]

i: [ksp] getFirstArgTypeSimpleName | Result of trim =

ActivateShoppingPassScreenDestination

i: [ksp] validateClosedResultRecipients | checking param FilterScreen filterItemsRecipient
i: [ksp] getFirstArgTypeSimpleName | line error =

    filterItemsRecipient: ResultRecipient<FilterItemScreenDestination, FilterItemSelection>,
    storeIdRecipient: ResultRecipient<StoresScreenDestination, StoreIdSelection>,
    viewModel: FilterScreenViewModel = hiltViewModel(),
) {
    ScreenTrack { ITracker.Screen.FilterScreen }
    val coroutineScope = rememberCoroutineScope()
    val scrollState = rememberScrollState()

    storeIdRecipient.onNavResult {
        if (it is NavResult.Value) {
            viewModel.sendViewIntent(FilterScreenViewModel.ViewIntent.StoreSelectionChange(it.value.selectedIds))

i: [ksp] getFirstArgTypeSimpleName | result of removePrefix filterItemsRecipient =

: ResultRecipient<FilterItemScreenDestination, FilterItemSelection>,
    storeIdRecipient: ResultRecipient<StoresScreenDestination, StoreIdSelection>,
    viewModel: FilterScreenViewModel = hiltViewModel(),
) {
    ScreenTrack { ITracker.Screen.FilterScreen }
    val coroutineScope = rememberCoroutineScope()
    val scrollState = rememberScrollState()

    storeIdRecipient.onNavResult {
        if (it is NavResult.Value) {
            viewModel.sendViewIntent(FilterScreenViewModel.ViewIntent.StoreSelectionChange(it.value.selectedIds))

i: [ksp] getFirstArgTypeSimpleName | result of removePrefix ResultRecipient =

<FilterItemScreenDestination, FilterItemSelection>,
    storeIdRecipient: ResultRecipient<StoresScreenDestination, StoreIdSelection>,
    viewModel: FilterScreenViewModel = hiltViewModel(),
) {
    ScreenTrack { ITracker.Screen.FilterScreen }
    val coroutineScope = rememberCoroutineScope()
    val scrollState = rememberScrollState()

    storeIdRecipient.onNavResult {
        if (it is NavResult.Value) {
            viewModel.sendViewIntent(FilterScreenViewModel.ViewIntent.StoreSelectionChange(it.value.selectedIds))

i: [ksp] getFirstArgTypeSimpleName | result of removePrefix < =

FilterItemScreenDestination, FilterItemSelection>,
    storeIdRecipient: ResultRecipient<StoresScreenDestination, StoreIdSelection>,
    viewModel: FilterScreenViewModel = hiltViewModel(),
) {
    ScreenTrack { ITracker.Screen.FilterScreen }
    val coroutineScope = rememberCoroutineScope()
    val scrollState = rememberScrollState()

    storeIdRecipient.onNavResult {
        if (it is NavResult.Value) {
            viewModel.sendViewIntent(FilterScreenViewModel.ViewIntent.StoreSelectionChange(it.value.selectedIds))

i: [ksp] getFirstArgTypeSimpleName | result of removeSuffix > =

FilterItemScreenDestination, FilterItemSelection

i: [ksp] getFirstArgTypeSimpleName | result of split =

[FilterItemScreenDestination,  FilterItemSelection]

i: [ksp] getFirstArgTypeSimpleName | Result of trim =

FilterItemScreenDestination

i: [ksp] validateClosedResultRecipients | checking param FilterScreen storeIdRecipient
i: [ksp] getFirstArgTypeSimpleName | line error =

    storeIdRecipient: ResultRecipient<StoresScreenDestination, StoreIdSelection>,
    viewModel: FilterScreenViewModel = hiltViewModel(),
) {
    ScreenTrack { ITracker.Screen.FilterScreen }
    val coroutineScope = rememberCoroutineScope()
    val scrollState = rememberScrollState()

    storeIdRecipient.onNavResult {
        if (it is NavResult.Value) {
            viewModel.sendViewIntent(FilterScreenViewModel.ViewIntent.StoreSelectionChange(it.value.selectedIds))
        }

i: [ksp] getFirstArgTypeSimpleName | result of removePrefix storeIdRecipient =

: ResultRecipient<StoresScreenDestination, StoreIdSelection>,
    viewModel: FilterScreenViewModel = hiltViewModel(),
) {
    ScreenTrack { ITracker.Screen.FilterScreen }
    val coroutineScope = rememberCoroutineScope()
    val scrollState = rememberScrollState()

    storeIdRecipient.onNavResult {
        if (it is NavResult.Value) {
            viewModel.sendViewIntent(FilterScreenViewModel.ViewIntent.StoreSelectionChange(it.value.selectedIds))
        }

i: [ksp] getFirstArgTypeSimpleName | result of removePrefix ResultRecipient =

<StoresScreenDestination, StoreIdSelection>,
    viewModel: FilterScreenViewModel = hiltViewModel(),
) {
    ScreenTrack { ITracker.Screen.FilterScreen }
    val coroutineScope = rememberCoroutineScope()
    val scrollState = rememberScrollState()

    storeIdRecipient.onNavResult {
        if (it is NavResult.Value) {
            viewModel.sendViewIntent(FilterScreenViewModel.ViewIntent.StoreSelectionChange(it.value.selectedIds))
        }

i: [ksp] getFirstArgTypeSimpleName | result of removePrefix < =

StoresScreenDestination, StoreIdSelection>,
    viewModel: FilterScreenViewModel = hiltViewModel(),
) {
    ScreenTrack { ITracker.Screen.FilterScreen }
    val coroutineScope = rememberCoroutineScope()
    val scrollState = rememberScrollState()

    storeIdRecipient.onNavResult {
        if (it is NavResult.Value) {
            viewModel.sendViewIntent(FilterScreenViewModel.ViewIntent.StoreSelectionChange(it.value.selectedIds))
        }

i: [ksp] getFirstArgTypeSimpleName | result of removeSuffix > =

StoresScreenDestination, StoreIdSelection

i: [ksp] getFirstArgTypeSimpleName | result of split =

[StoresScreenDestination,  StoreIdSelection]

i: [ksp] getFirstArgTypeSimpleName | Result of trim =

StoresScreenDestination

i: [ksp] getDefaultValue | name = appliedFilters type = AppliedSearchFilters
i: [ksp] getDefaultValue | src code line = val appliedFilters: AppliedSearchFilters = AppliedSearchFilters(),)enum class FallbackItemState {Empty,NoResults,Content,}@PreviewOcmCombined@Composable
i: [ksp] getDefaultValue | Result = DefaultValue(code=AppliedSearchFilters(), imports=[com.outletcity.search.AppliedSearchFilters])
i: [ksp] getDefaultValue | name = configuration type = SearchConfiguration
i: [ksp] getDefaultValue | src code line = val configuration: SearchConfiguration = SearchConfiguration(),val appliedFilters: AppliedSearchFilters = AppliedSearchFilters(),)@Preview@Composableprivate fun SearchScreenPreview(@PreviewParameter(PoiListPreviewParameterProvider::class, limit = 1) poiList: ImmutableList,) {OcmPreview {SearchScreenContent(
i: [ksp] getDefaultValue | Result = DefaultValue(code=SearchConfiguration(), imports=[com.outletcity.search.SearchConfiguration])
i: [ksp] getDefaultValue | name = appliedFilters type = AppliedSearchFilters
i: [ksp] getDefaultValue | src code line = val appliedFilters: AppliedSearchFilters = AppliedSearchFilters(),)@Preview@Composableprivate fun SearchScreenPreview(@PreviewParameter(PoiListPreviewParameterProvider::class, limit = 1) poiList: ImmutableList,) {OcmPreview {SearchScreenContent(poiCallbacks = PoiCallbacks(null, Origin.Deals, LocalFocusManager.current),
e: [ksp] java.lang.IllegalStateException: unexpected: did not find a ')' for previous '('

@raamcosta
Copy link
Owner

Thank you @harry248

I did find the issue thanks to the logs provided, one more use case I wasn't considering :P
I'm adding all of these to actual automated test cases so they shouldn't pop up again on next iterations.

1.9.62 is cooking 🧑‍🍳

@harry248
Copy link

Many thanks again for the quick fix!

@raamcosta
Copy link
Owner

build is up @harry248

@raamcosta
Copy link
Owner

let me know how it goes @harry248 :D

@shyvum
Copy link

shyvum commented Jan 17, 2024

thanks @raamcosta. it worked for us!

@harry248
Copy link

@raamcosta Works for us too! Thanks!

@raamcosta
Copy link
Owner

thanks guys!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants