anchor.diff:  
     final int functionNestingLevel;
   
  -  final MemberBuilder parent;
  +  final Uri fileUri;
   
     final int charOffset;
   
     JumpTarget(
  -      this.kind, this.functionNestingLevel, this.parent, this.charOffset);
  -
  -  Uri get fileUri => parent.fileUri!;
  +      this.kind, this.functionNestingLevel, this.fileUri, this.charOffset);
   
     bool get isBreakTarget => kind == JumpTargetKind.Break;
   
  
positive.code:   }
  
    JumpTarget createJumpTarget(JumpTargetKind kind, int charOffset) {
      return new JumpTarget(
          kind, functionNestingLevel, member as MemberBuilder, charOffset);
    }
  
    void inferAnnotations(TreeNode? parent, List<Expression>? annotations) {
  
negative.code:   final int functionNestingLevel;
  
    @override
    final Uri fileUri;
  
    @override
    final int charOffset;
  
    LabelTarget(this.functionNestingLevel, this.fileUri, this.charOffset)
        : breakTarget = new JumpTarget(
              JumpTargetKind.Break, functionNestingLevel, fileUri, charOffset),
          continueTarget = new JumpTarget(
              JumpTargetKind.Continue, functionNestingLevel, fileUri, charOffset);
  
    @override
    bool get hasUsers => breakTarget.hasUsers || continueTarget.hasUsers;
  