Skip to content

Static forwarder for local method is not consistently generated #18248

Open
@raboof

Description

@raboof

Compiler version

3.3.2-RC1-bin-20230718-da16f43-NIGHTLY

Minimized code

I have not minimized this yet, I will improve the issue later, but encountered it when building https://github.com/apache/incubator-pekko/blob/v1.0.1-RC1/actor-typed/src/main/scala/org/apache/pekko/actor/typed/internal/ExtensionsImpl.scala#L32-L138 with sbt:

private[pekko] trait ExtensionsImpl extends Extensions { self: ActorSystem[_] with InternalRecipientRef[_] =>

  def loadExtensions(): Unit = {

    def loadExtensions(key: String, throwOnLoadFail: Boolean): Unit = {
        (...)
    }
    (...)

    loadExtensions("pekko.actor.typed.library-extensions", throwOnLoadFail = true)
    loadExtensions("pekko.actor.typed.extensions", throwOnLoadFail = false)
  }

  (...)
}

Output

The resulting ExtensionsImpl.class sometimes has a public static void loadExtensions$1$(org.apache.pekko.actor.typed.internal.ExtensionsImpl, java.lang.String, boolean);, and sometimes doesn't.

This method cannot be called from 'outside' so this forwarder likely isn't needed, but it would be good to either consistently generate it or consistently not generate it.

Expectation

Produce exactly the same class for the same source each time.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions