@@ -1049,54 +1049,44 @@ class DottyBytecodeTests extends DottyBytecodeTest {
1049
1049
val m1Meth = getMethod(fooClass, " m1" )
1050
1050
1051
1051
assertSameCode(m1Meth, List (
1052
- // FIXME regression accessing `::`, `Option` and `Tuple2` members.
1053
1052
VarOp (ALOAD , 1 ),
1054
1053
VarOp (ASTORE , 2 ),
1055
1054
VarOp (ALOAD , 2 ),
1056
1055
TypeOp (INSTANCEOF , " scala/collection/immutable/$colon$colon" ),
1057
- Jump (IFEQ , Label (28 )),
1058
- Field (GETSTATIC , " scala/package$" , " MODULE$" , " Lscala/package$;" ),
1059
- Invoke (INVOKEVIRTUAL , " scala/package$" , " $colon$colon" , " ()Lscala/collection/immutable/$colon$colon$;" , false ),
1056
+ Jump (IFEQ , Label (19 )),
1060
1057
VarOp (ALOAD , 2 ),
1061
1058
TypeOp (CHECKCAST , " scala/collection/immutable/$colon$colon" ),
1062
- Invoke (INVOKEVIRTUAL , " scala/collection/immutable/$colon$colon$" , " unapply" , " (Lscala/collection/immutable/$colon$colon;)Lscala/Option;" , false ),
1063
1059
VarOp (ASTORE , 3 ),
1064
1060
VarOp (ALOAD , 3 ),
1065
- Invoke (INVOKEVIRTUAL , " scala/Option" , " isEmpty" , " ()Z" , false ),
1066
- Jump (IFNE , Label (28 )),
1067
- VarOp (ALOAD , 3 ),
1068
- Invoke (INVOKEVIRTUAL , " scala/Option" , " get" , " ()Ljava/lang/Object;" , false ),
1069
- TypeOp (CHECKCAST , " scala/Tuple2" ),
1061
+ Invoke (INVOKEVIRTUAL , " scala/collection/immutable/$colon$colon" , " next$access$1" , " ()Lscala/collection/immutable/List;" , false ),
1070
1062
VarOp (ASTORE , 4 ),
1071
- VarOp (ALOAD , 4 ),
1072
- Invoke (INVOKEVIRTUAL , " scala/Tuple2 " , " _1 " , " ()Ljava/lang/Object;" , false ),
1063
+ VarOp (ALOAD , 3 ),
1064
+ Invoke (INVOKEVIRTUAL , " scala/collection/immutable/$colon$colon " , " head " , " ()Ljava/lang/Object;" , false ),
1073
1065
Invoke (INVOKESTATIC , " scala/runtime/BoxesRunTime" , " unboxToInt" , " (Ljava/lang/Object;)I" , false ),
1074
1066
VarOp (ISTORE , 5 ),
1075
1067
VarOp (ALOAD , 4 ),
1076
- Invoke (INVOKEVIRTUAL , " scala/Tuple2" , " _2" , " ()Ljava/lang/Object;" , false ),
1077
- TypeOp (CHECKCAST , " scala/collection/immutable/List" ),
1078
1068
VarOp (ASTORE , 6 ),
1079
1069
VarOp (ILOAD , 5 ),
1080
1070
Op (IRETURN ),
1081
- Label (28 ),
1071
+ Label (19 ),
1082
1072
Field (GETSTATIC , " scala/package$" , " MODULE$" , " Lscala/package$;" ),
1083
1073
Invoke (INVOKEVIRTUAL , " scala/package$" , " Nil" , " ()Lscala/collection/immutable/Nil$;" , false ),
1084
1074
VarOp (ALOAD , 2 ),
1085
1075
VarOp (ASTORE , 7 ),
1086
1076
Op (DUP ),
1087
- Jump (IFNONNULL , Label (40 )),
1077
+ Jump (IFNONNULL , Label (31 )),
1088
1078
Op (POP ),
1089
1079
VarOp (ALOAD , 7 ),
1090
- Jump (IFNULL , Label (45 )),
1091
- Jump (GOTO , Label (49 )),
1092
- Label (40 ),
1080
+ Jump (IFNULL , Label (36 )),
1081
+ Jump (GOTO , Label (40 )),
1082
+ Label (31 ),
1093
1083
VarOp (ALOAD , 7 ),
1094
1084
Invoke (INVOKEVIRTUAL , " java/lang/Object" , " equals" , " (Ljava/lang/Object;)Z" , false ),
1095
- Jump (IFEQ , Label (49 )),
1096
- Label (45 ),
1085
+ Jump (IFEQ , Label (40 )),
1086
+ Label (36 ),
1097
1087
IntOp (BIPUSH , 20 ),
1098
1088
Op (IRETURN ),
1099
- Label (49 ),
1089
+ Label (40 ),
1100
1090
TypeOp (NEW , " scala/MatchError" ),
1101
1091
Op (DUP ),
1102
1092
VarOp (ALOAD , 2 ),
@@ -1109,57 +1099,45 @@ class DottyBytecodeTests extends DottyBytecodeTest {
1109
1099
val m2Meth = getMethod(fooClass, " m2" )
1110
1100
1111
1101
assertSameCode(m2Meth, List (
1112
- // FIXME regression accessing `::`, `Option` and `Tuple2` members.
1113
1102
VarOp (ALOAD , 1 ),
1114
1103
VarOp (ASTORE , 2 ),
1115
1104
VarOp (ALOAD , 2 ),
1116
1105
TypeOp (INSTANCEOF , " scala/collection/immutable/$colon$colon" ),
1117
- Jump (IFEQ , Label (53 )),
1118
- Field (GETSTATIC , " scala/package$" , " MODULE$" , " Lscala/package$;" ),
1119
- Invoke (INVOKEVIRTUAL , " scala/package$" , " $colon$colon" , " ()Lscala/collection/immutable/$colon$colon$;" , false ),
1106
+ Jump (IFEQ , Label (42 )),
1120
1107
VarOp (ALOAD , 2 ),
1121
1108
TypeOp (CHECKCAST , " scala/collection/immutable/$colon$colon" ),
1122
- Invoke (INVOKEVIRTUAL , " scala/collection/immutable/$colon$colon$" , " unapply" , " (Lscala/collection/immutable/$colon$colon;)Lscala/Option;" , false ),
1123
1109
VarOp (ASTORE , 3 ),
1124
1110
VarOp (ALOAD , 3 ),
1125
- Invoke (INVOKEVIRTUAL , " scala/Option" , " isEmpty" , " ()Z" , false ),
1126
- Jump (IFNE , Label (53 )),
1127
- VarOp (ALOAD , 3 ),
1128
- Invoke (INVOKEVIRTUAL , " scala/Option" , " get" , " ()Ljava/lang/Object;" , false ),
1129
- TypeOp (CHECKCAST , " scala/Tuple2" ),
1130
- VarOp (ASTORE , 4 ),
1131
- VarOp (ALOAD , 4 ),
1132
- Invoke (INVOKEVIRTUAL , " scala/Tuple2" , " _1" , " ()Ljava/lang/Object;" , false ),
1111
+ Invoke (INVOKEVIRTUAL , " scala/collection/immutable/$colon$colon" , " head" , " ()Ljava/lang/Object;" , false ),
1133
1112
Invoke (INVOKESTATIC , " scala/runtime/BoxesRunTime" , " unboxToInt" , " (Ljava/lang/Object;)I" , false ),
1134
- VarOp (ISTORE , 5 ),
1135
- VarOp (ALOAD , 4 ),
1136
- Invoke (INVOKEVIRTUAL , " scala/Tuple2" , " _2" , " ()Ljava/lang/Object;" , false ),
1137
- TypeOp (CHECKCAST , " scala/collection/immutable/List" ),
1138
- VarOp (ASTORE , 6 ),
1113
+ VarOp (ISTORE , 4 ),
1114
+ VarOp (ALOAD , 3 ),
1115
+ Invoke (INVOKEVIRTUAL , " scala/collection/immutable/$colon$colon" , " next$access$1" , " ()Lscala/collection/immutable/List;" , false ),
1116
+ VarOp (ASTORE , 5 ),
1139
1117
Op (ICONST_1 ),
1140
- VarOp (ILOAD , 5 ),
1141
- Jump (IF_ICMPNE , Label (30 )),
1142
- Jump (GOTO , Label (39 )),
1143
- Label (30 ),
1118
+ VarOp (ILOAD , 4 ),
1119
+ Jump (IF_ICMPNE , Label (19 )),
1120
+ Jump (GOTO , Label (28 )),
1121
+ Label (19 ),
1144
1122
Op (ICONST_2 ),
1145
- VarOp (ILOAD , 5 ),
1146
- Jump (IF_ICMPNE , Label (36 )),
1147
- Jump (GOTO , Label (39 )),
1148
- Label (36 ),
1149
- Jump (GOTO , Label (45 )),
1150
- Label (39 ),
1151
- VarOp (ALOAD , 6 ),
1152
- VarOp (ASTORE , 7 ),
1123
+ VarOp (ILOAD , 4 ),
1124
+ Jump (IF_ICMPNE , Label (25 )),
1125
+ Jump (GOTO , Label (28 )),
1126
+ Label (25 ),
1127
+ Jump (GOTO , Label (34 )),
1128
+ Label (28 ),
1129
+ VarOp (ALOAD , 5 ),
1130
+ VarOp (ASTORE , 6 ),
1153
1131
IntOp (BIPUSH , 10 ),
1154
1132
Op (IRETURN ),
1155
- Label (45 ),
1156
- VarOp (ILOAD , 5 ),
1157
- VarOp (ISTORE , 8 ),
1158
- VarOp (ALOAD , 6 ),
1159
- VarOp (ASTORE , 9 ),
1160
- VarOp (ILOAD , 8 ),
1133
+ Label (34 ),
1134
+ VarOp (ILOAD , 4 ),
1135
+ VarOp (ISTORE , 7 ),
1136
+ VarOp (ALOAD , 5 ),
1137
+ VarOp (ASTORE , 8 ),
1138
+ VarOp (ILOAD , 7 ),
1161
1139
Op (IRETURN ),
1162
- Label (53 ),
1140
+ Label (42 ),
1163
1141
IntOp (BIPUSH , 20 ),
1164
1142
Op (IRETURN ),
1165
1143
))
0 commit comments