visitArrayAccessAsync method

  1. @override
Future visitArrayAccessAsync(
  1. ArrayAccess arrayAccess
)

Implementation

@override
Future<dynamic> visitArrayAccessAsync(ArrayAccess arrayAccess) async {
  final array = await arrayAccess.array.acceptAsync(this);
  final key = await arrayAccess.key.acceptAsync(this);
  if (array is List) {
    final index = key is int ? key : int.parse(key);
    if (index >= 0 && index < array.length) {
      return array[index];
    }
  } else if (array is Map && array.containsKey(key)) {
    return array[key];
  }
  return null;
}