final PsiElement at = context.getPsiElementAtStartOffset();
final Set<HaxeComponentName> variables = HaxeMacroUtil.findVariables(at);
final List<HaxeComponentName> filtered = ContainerUtil.filter(variables, new Condition<HaxeComponentName>() {
@Override
public boolean value(HaxeComponentName name) {
final HaxeClassResolveResult result = HaxeResolveUtil.getHaxeClassResolveResult(name.getParent());
final HaxeClass haxeClass = result.getHaxeClass();
return haxeClass != null && "Array".equalsIgnoreCase(haxeClass.getQualifiedName());
}
});
return filtered.isEmpty() ? null : new PsiElementResult(filtered.iterator().next());
}