Skip to content

ArrowAssoc is not specialized #26051

@som-snytt

Description

@som-snytt

Compiler version

3.8.4

Minimized code

//> using scala 3.8.4-RC2
//> using options -opt -opt-inline:scala.Predef$*

def f = 1 -> 2
def g = identity(42)
def h = (42, 27)

Output

  public scala.Tuple2<java.lang.Object, java.lang.Object> f();
    descriptor: ()Lscala/Tuple2;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
         0: iconst_1
         1: invokestatic  #39                 // Method scala/runtime/BoxesRunTime.boxToInteger:(I)Ljava/lang/Integer;
         4: astore_3
         5: aload_3
         6: aconst_null
         7: astore_3
         8: astore_1
         9: getstatic     #42                 // Field scala/Predef$ArrowAssoc$.MODULE$:Lscala/Predef$ArrowAssoc$;
        12: pop
        13: iconst_2
        14: invokestatic  #39                 // Method scala/runtime/BoxesRunTime.boxToInteger:(I)Ljava/lang/Integer;
        17: astore_2
        18: getstatic     #47                 // Field scala/Tuple2$.MODULE$:Lscala/Tuple2$;
        21: aload_1
        22: aload_2
        23: invokevirtual #51                 // Method scala/Tuple2$.apply:(Ljava/lang/Object;Ljava/lang/Object;)Lscala/Tuple2;
        26: areturn

  public scala.Tuple2<java.lang.Object, java.lang.Object> h();
    descriptor: ()Lscala/Tuple2;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
         0: new           #59                 // class scala/Tuple2$mcII$sp
         3: dup
         4: bipush        42
         6: bipush        27
         8: invokespecial #62                 // Method scala/Tuple2$mcII$sp."<init>":(II)V
        11: areturn

Expectation

It would be nice if f used specialized tuple.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions