public FlowInfo analyseCode(
      MethodScope initializationScope, FlowContext flowContext, FlowInfo flowInfo) {
    if (this.binding != null && !this.binding.isUsed()) {
      if (this.binding.isPrivate()
          || (this.binding.declaringClass != null && this.binding.declaringClass.isLocalType())) {
        if (!initializationScope.referenceCompilationUnit().compilationResult.hasSyntaxError) {
          initializationScope.problemReporter().unusedPrivateField(this);
        }
      }
    }

    if (this.initialization != null) {
      flowInfo =
          this.initialization
              .analyseCode(initializationScope, flowContext, flowInfo)
              .unconditionalInits();
      flowInfo.markAsDefinitelyAssigned(this.binding);
    }
    return flowInfo;
  }