Skip to content

Commit 9c032b0

Browse files
committed
Support for qualified references in ADR
1 parent f657ad3 commit 9c032b0

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

src/builtins.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,15 @@ lazy_static! {
5050
generic_name_resolver: no_generic_name_resolver,
5151
code: |generator, params, location| {
5252
if let [reference] = params {
53+
// TODO(vosa): See if there is a better way
54+
// Check if this is a qualified method reference like fb.fbSpecificMethod
55+
if let Some(resolver::StatementAnnotation::Function { qualified_name, .. }) = generator.annotations.get(reference) {
56+
// This is a qualified method reference - return the function pointer directly
57+
if let Some(fn_value) = generator.llvm_index.find_associated_implementation(qualified_name) {
58+
return Ok(ExpressionValue::RValue(fn_value.as_global_value().as_pointer_value().as_basic_value_enum()));
59+
}
60+
}
61+
5362
generator
5463
.generate_lvalue(reference)
5564
.map(|it| ExpressionValue::RValue(it.as_basic_value_enum()))

0 commit comments

Comments
 (0)