ast: speed up the frequently called methods .find_field, .find_method etc

pull/12410/head
Delyan Angelov 2021-11-07 18:05:20 +02:00
parent 9ec1262734
commit bc98da9111
No known key found for this signature in database
GPG Key ID: 66886C0F12D595ED
1 changed files with 9 additions and 9 deletions

View File

@ -1184,7 +1184,7 @@ pub fn (t &TypeSymbol) embed_name() string {
} }
pub fn (t &TypeSymbol) has_method(name string) bool { pub fn (t &TypeSymbol) has_method(name string) bool {
for method in t.methods { for mut method in unsafe { t.methods } {
if method.name == name { if method.name == name {
return true return true
} }
@ -1198,7 +1198,7 @@ pub fn (t &TypeSymbol) has_method_with_generic_parent(name string) bool {
} }
pub fn (t &TypeSymbol) find_method(name string) ?Fn { pub fn (t &TypeSymbol) find_method(name string) ?Fn {
for method in t.methods { for mut method in unsafe { t.methods } {
if method.name == name { if method.name == name {
return method return method
} }
@ -1272,7 +1272,7 @@ pub fn (t &TypeSymbol) find_field(name string) ?StructField {
} }
fn (a &Aggregate) find_field(name string) ?StructField { fn (a &Aggregate) find_field(name string) ?StructField {
for field in a.fields { for mut field in unsafe { a.fields } {
if field.name == name { if field.name == name {
return field return field
} }
@ -1281,7 +1281,7 @@ fn (a &Aggregate) find_field(name string) ?StructField {
} }
pub fn (i &Interface) find_field(name string) ?StructField { pub fn (i &Interface) find_field(name string) ?StructField {
for field in i.fields { for mut field in unsafe { i.fields } {
if field.name == name { if field.name == name {
return field return field
} }
@ -1290,7 +1290,7 @@ pub fn (i &Interface) find_field(name string) ?StructField {
} }
pub fn (i &Interface) find_method(name string) ?Fn { pub fn (i &Interface) find_method(name string) ?Fn {
for method in i.methods { for mut method in unsafe { i.methods } {
if method.name == name { if method.name == name {
return method return method
} }
@ -1299,7 +1299,7 @@ pub fn (i &Interface) find_method(name string) ?Fn {
} }
pub fn (i &Interface) has_method(name string) bool { pub fn (i &Interface) has_method(name string) bool {
for method in i.methods { for mut method in unsafe { i.methods } {
if method.name == name { if method.name == name {
return true return true
} }
@ -1308,7 +1308,7 @@ pub fn (i &Interface) has_method(name string) bool {
} }
pub fn (s Struct) find_field(name string) ?StructField { pub fn (s Struct) find_field(name string) ?StructField {
for field in s.fields { for mut field in unsafe { s.fields } {
if field.name == name { if field.name == name {
return field return field
} }
@ -1324,7 +1324,7 @@ pub fn (s Struct) get_field(name string) StructField {
} }
pub fn (s &SumType) find_field(name string) ?StructField { pub fn (s &SumType) find_field(name string) ?StructField {
for field in s.fields { for mut field in unsafe { s.fields } {
if field.name == name { if field.name == name {
return field return field
} }
@ -1333,7 +1333,7 @@ pub fn (s &SumType) find_field(name string) ?StructField {
} }
pub fn (i Interface) defines_method(name string) bool { pub fn (i Interface) defines_method(name string) bool {
for method in i.methods { for mut method in unsafe { i.methods } {
if method.name == name { if method.name == name {
return true return true
} }