anchor.diff:      // TODO(efortuna, johnniwinther): We're not registering the type variables
       // like we are for the variable declarations. Is that okay or do we need to
       // make TypeVariableLocal a JLocal?
  -    return new TypeVariableLocal(elementMap.getTypeVariableType(node).element);
  +    return TypeVariableLocal(elementMap.getTypeVariableType(node).element);
     }
   
     @override
  
positive.code:     source.begin(tag);
      _currentMember = source.readMember();
      int localsCount = source.readInt();
      for (int i = 0; i < localsCount; i++) {
        int index = source.readInt();
        String name = source.readStringOrNull();
        bool isRegularParameter = source.readBool();
        ir.VariableDeclaration node = source.readTreeNode();
        JLocal local = new JLocal(name, currentMember,
            isRegularParameter: isRegularParameter);
        LocalData data = new LocalData(node);
        _locals.registerByIndex(index, local, data);
        _variableMap[node] = local;
      }
      int jumpCount = source.readInt();
      if (jumpCount > 0) {
        _jumpTargetMap = {};
        for (int i = 0; i < jumpCount; i++) {
          JJumpTarget target = new JJumpTarget.readFromDataSource(source);
          List<ir.TreeNode> nodes = source.readTreeNodes();
          for (ir.TreeNode node in nodes) {
            _jumpTargetMap[node] = target;
  
negative.code: 
    @override
    Local getLocalVariable(ir.VariableDeclaration node) {
      final variableMap = _variableMap ??= {};
      return variableMap.putIfAbsent(node, () {
        JLocal local = JLocal(node.name, currentMember,
            isRegularParameter: node.parent is ir.FunctionNode);
        _locals.register<JLocal, LocalData>(local, LocalData(node));
        return local;
      });
    }
  