visitVariableDeclaration method

  1. @override
dynamic visitVariableDeclaration(
  1. VariableDeclaration node
)
override

Finds all the aliases for GetText functions.

Implementation

@override
visitVariableDeclaration(VariableDeclaration node) {
  // Only when imported and for constants whose value is an identifier.
  if (!_imported || !node.isConst || node.initializer is! Identifier) {
    return super.visitVariableDeclaration(node);
  }

  String alias = node.name.lexeme; // The name of the alias.
  String aliased; // The function it aliases.

  // Has the identifier prefix?
  if (node.initializer is PrefixedIdentifier) {
    // Valid only if the library is also imported with a prefix.
    if (_importPrefix == null) return;

    final initializer = node.initializer as PrefixedIdentifier;

    // Continue if the prefixes doesn't match.
    if (initializer.prefix.name != _importPrefix) return;

    aliased = initializer.identifier.name;
  } else {
    aliased = (node.initializer as SimpleIdentifier).name;
  }

  if (!functions.keys.contains(aliased)) return;

  _aliases[alias] = aliased;
}