Skip to content

Commit 95eca59

Browse files
committed
Remove oparg builders
1 parent 3706c53 commit 95eca59

File tree

2 files changed

+10
-98
lines changed

2 files changed

+10
-98
lines changed

crates/codegen/src/compile.rs

Lines changed: 6 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -9041,20 +9041,14 @@ impl Compiler {
90419041
/// Emit LOAD_ATTR for attribute access (method=false).
90429042
/// Encodes: (name_idx << 1) | 0
90439043
fn emit_load_attr(&mut self, name_idx: u32) {
9044-
let encoded = LoadAttr::builder()
9045-
.name_idx(name_idx)
9046-
.is_method(false)
9047-
.build();
9044+
let encoded = LoadAttr::new(name_idx, false);
90489045
self.emit_arg(encoded, |namei| Instruction::LoadAttr { namei })
90499046
}
90509047

90519048
/// Emit LOAD_ATTR with method flag set (for method calls).
90529049
/// Encodes: (name_idx << 1) | 1
90539050
fn emit_load_attr_method(&mut self, name_idx: u32) {
9054-
let encoded = LoadAttr::builder()
9055-
.name_idx(name_idx)
9056-
.is_method(true)
9057-
.build();
9051+
let encoded = LoadAttr::new(name_idx, true);
90589052
self.emit_arg(encoded, |namei| Instruction::LoadAttr { namei })
90599053
}
90609054

@@ -9068,44 +9062,28 @@ impl Compiler {
90689062
/// Emit LOAD_SUPER_ATTR for 2-arg super().attr access.
90699063
/// Encodes: (name_idx << 2) | 0b10 (method=0, class=1)
90709064
fn emit_load_super_attr(&mut self, name_idx: u32) {
9071-
let encoded = LoadSuperAttr::builder()
9072-
.name_idx(name_idx)
9073-
.is_load_method(false)
9074-
.has_class(true)
9075-
.build();
9065+
let encoded = LoadSuperAttr::new(name_idx, false, true);
90769066
self.emit_arg(encoded, |namei| Instruction::LoadSuperAttr { namei })
90779067
}
90789068

90799069
/// Emit LOAD_SUPER_ATTR for 2-arg super().method() call.
90809070
/// Encodes: (name_idx << 2) | 0b11 (method=1, class=1)
90819071
fn emit_load_super_method(&mut self, name_idx: u32) {
9082-
let encoded = LoadSuperAttr::builder()
9083-
.name_idx(name_idx)
9084-
.is_load_method(true)
9085-
.has_class(true)
9086-
.build();
9072+
let encoded = LoadSuperAttr::new(name_idx, true, true);
90879073
self.emit_arg(encoded, |namei| Instruction::LoadSuperAttr { namei })
90889074
}
90899075

90909076
/// Emit LOAD_SUPER_ATTR for 0-arg super().attr access.
90919077
/// Encodes: (name_idx << 2) | 0b00 (method=0, class=0)
90929078
fn emit_load_zero_super_attr(&mut self, name_idx: u32) {
9093-
let encoded = LoadSuperAttr::builder()
9094-
.name_idx(name_idx)
9095-
.is_load_method(false)
9096-
.has_class(false)
9097-
.build();
9079+
let encoded = LoadSuperAttr::new(name_idx, false, false);
90989080
self.emit_arg(encoded, |namei| Instruction::LoadSuperAttr { namei })
90999081
}
91009082

91019083
/// Emit LOAD_SUPER_ATTR for 0-arg super().method() call.
91029084
/// Encodes: (name_idx << 2) | 0b01 (method=1, class=0)
91039085
fn emit_load_zero_super_method(&mut self, name_idx: u32) {
9104-
let encoded = LoadSuperAttr::builder()
9105-
.name_idx(name_idx)
9106-
.is_load_method(true)
9107-
.has_class(false)
9108-
.build();
9086+
let encoded = LoadSuperAttr::new(name_idx, true, false);
91099087
self.emit_arg(encoded, |namei| Instruction::LoadSuperAttr { namei })
91109088
}
91119089

crates/compiler-core/src/bytecode/oparg.rs

Lines changed: 4 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -918,8 +918,8 @@ impl VarNums {
918918

919919
impl LoadAttr {
920920
#[must_use]
921-
pub fn builder() -> LoadAttrBuilder {
922-
LoadAttrBuilder::default()
921+
pub const fn new(name_idx: u32, is_method: bool) -> Self {
922+
Self::from_u32((name_idx << 1) | (is_method as u32))
923923
}
924924

925925
#[must_use]
@@ -933,36 +933,10 @@ impl LoadAttr {
933933
}
934934
}
935935

936-
#[derive(Clone, Copy, Default)]
937-
pub struct LoadAttrBuilder {
938-
name_idx: u32,
939-
is_method: bool,
940-
}
941-
942-
impl LoadAttrBuilder {
943-
#[must_use]
944-
pub const fn build(self) -> LoadAttr {
945-
let value = (self.name_idx << 1) | (self.is_method as u32);
946-
LoadAttr::from_u32(value)
947-
}
948-
949-
#[must_use]
950-
pub const fn name_idx(mut self, value: u32) -> Self {
951-
self.name_idx = value;
952-
self
953-
}
954-
955-
#[must_use]
956-
pub const fn is_method(mut self, value: bool) -> Self {
957-
self.is_method = value;
958-
self
959-
}
960-
}
961-
962936
impl LoadSuperAttr {
963937
#[must_use]
964-
pub fn builder() -> LoadSuperAttrBuilder {
965-
LoadSuperAttrBuilder::default()
938+
pub const fn new(name_idx: u32, is_load_method: bool, has_class: bool) -> Self {
939+
Self::from_u32((name_idx << 2) | (is_load_method as u32) | ((has_class as u32) << 1))
966940
}
967941

968942
#[must_use]
@@ -980,43 +954,3 @@ impl LoadSuperAttr {
980954
(self.0 & 2) == 2
981955
}
982956
}
983-
984-
#[derive(Clone, Copy, Default)]
985-
pub struct LoadSuperAttrBuilder {
986-
name_idx: u32,
987-
is_load_method: bool,
988-
has_class: bool,
989-
}
990-
991-
impl LoadSuperAttrBuilder {
992-
#[must_use]
993-
pub const fn build(self) -> LoadSuperAttr {
994-
let value =
995-
(self.name_idx << 2) | ((self.has_class as u32) << 1) | (self.is_load_method as u32);
996-
LoadSuperAttr::from_u32(value)
997-
}
998-
999-
#[must_use]
1000-
pub const fn name_idx(mut self, value: u32) -> Self {
1001-
self.name_idx = value;
1002-
self
1003-
}
1004-
1005-
#[must_use]
1006-
pub const fn is_load_method(mut self, value: bool) -> Self {
1007-
self.is_load_method = value;
1008-
self
1009-
}
1010-
1011-
#[must_use]
1012-
pub const fn has_class(mut self, value: bool) -> Self {
1013-
self.has_class = value;
1014-
self
1015-
}
1016-
}
1017-
1018-
impl From<LoadSuperAttrBuilder> for LoadSuperAttr {
1019-
fn from(builder: LoadSuperAttrBuilder) -> Self {
1020-
builder.build()
1021-
}
1022-
}

0 commit comments

Comments
 (0)