Skip to content

Generated checkNotNull error messages in ViewModel factories don't properly wrap with long names #161

@RBusarow

Description

@RBusarow

Given this:

class MyViewModel @VMInject constructor(
  savedStateHandle: Provider<SavedStateHandle>,
  @TangleParam("aNameWhichIsVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLong") val name: String
) : ViewModel()

This code is generated, without the proper closing double-quotes:

public class MyViewModel_Factory @Inject constructor(
  internal val savedStateHandleProvider: Provider<@JvmSuppressWildcards SavedStateHandle>
) {
  public fun create(): MyViewModel {
    val name = savedStateHandleProvider.get().get<String>("aNameWhichIsVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLong")
    checkNotNull(name) {
      "Required parameter with name
          `aNameWhichIsVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLong`
          " +
      "and type `kotlin.String` is missing from SavedStateHandle."
    }
    return MyViewModel(savedStateHandleProvider, name)
  }
}

This is a result of a misguided attempt to respect line length limits without properly accounting for KotlinPoet's automatic wrapping at whitespaces.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions