@@ -73,26 +73,27 @@ pub fn operator(buf: &mut impl OptimizationBuffer) {
73
73
}
74
74
}
75
75
76
- pub fn unpack ( buf : & mut impl OptimizationBuffer ) {
77
- let ( instruction, meta) = buf. pop ( ) ;
78
- if let Instruction :: UnpackSequence { size } = instruction {
79
- let ( arg, arg_meta) = buf. pop ( ) ;
80
- match arg {
81
- Instruction :: BuildTuple {
82
- size : tup_size,
83
- unpack,
84
- } if !unpack && tup_size == size => {
85
- buf. emit (
86
- Instruction :: Reverse { amount : size } ,
87
- vec ! [ arg_meta, meta] . into ( ) ,
88
- ) ;
89
- }
90
- arg => {
91
- buf. emit ( arg, arg_meta) ;
92
- buf. emit ( instruction, meta) ;
93
- }
94
- }
95
- } else {
96
- buf. emit ( instruction, meta)
97
- }
98
- }
76
+ // TODO: make a version of this that doesn't miscompile `a, b = (1, 2) if True else (3, 4)`
77
+ // pub fn unpack(buf: &mut impl OptimizationBuffer) {
78
+ // let (instruction, meta) = buf.pop();
79
+ // if let Instruction::UnpackSequence { size } = instruction {
80
+ // let (arg, arg_meta) = buf.pop();
81
+ // match arg {
82
+ // Instruction::BuildTuple {
83
+ // size: tup_size,
84
+ // unpack,
85
+ // } if !unpack && tup_size == size => {
86
+ // buf.emit(
87
+ // Instruction::Reverse { amount: size },
88
+ // vec![arg_meta, meta].into(),
89
+ // );
90
+ // }
91
+ // arg => {
92
+ // buf.emit(arg, arg_meta);
93
+ // buf.emit(instruction, meta);
94
+ // }
95
+ // }
96
+ // } else {
97
+ // buf.emit(instruction, meta)
98
+ // }
99
+ // }
0 commit comments