code: private LocalVariableScope calculateScope(LocalVariableScopeData scope) {
  		final TryCatchBlockLabels enclosingTry = getEnclosingTry(scope);
  		final Label start = scope.labels.start;
  		final Label end = getTryFixedEndLabel(scope, enclosingTry);
  		
  		int startIndex = getIndex(start);
  		int endIndex = getIndex(end);
  		
  		LocalVariableScopeData.LineNumbers scopeWithLineNumbers = getLineNumbers(scope, enclosingTry, start, end);
  		
  		return new LocalVariableScope(scope.var, scope.name, VariableType.getByDesc(scope.desc), scopeWithLineNumbers.startLine, scopeWithLineNumbers.endLine, startIndex, endIndex, getVarReferencesBeforeStart(scope));
  	}
docs: Calculate the start and end line numbers for variable scopes. If the
  LocalVariableScope start line is 0, then it is an input parameter, as
  it's scope start label appeared before the method body.