private void ReplayVarUsage(LocalFunctionSymbol localFunc, SyntaxNode syntax, bool isWrite) { LocalFuncUsages usages = GetOrCreateLocalFuncUsages(localFunc); var state = isWrite ? usages.WrittenVars : usages.ReadVars; // Start at slot 1 (slot 0 just indicates reachability) for (int slot = 1; slot < state.Capacity; slot++) { if (state[slot]) { if (isWrite) { SetSlotAssigned(slot); } else { var symbol = variableBySlot[slot].Symbol; CheckAssigned(symbol, syntax, slot); } } } usages.LocalFuncVisited = true; }
private LocalFuncUsages GetOrCreateLocalFuncUsages(LocalFunctionSymbol localFunc) { LocalFuncUsages usages; if (!_localFuncVarUsages.TryGetValue(localFunc, out usages)) { usages = _localFuncVarUsages[localFunc] = new LocalFuncUsages(UnreachableState()); } return(usages); }
private LocalFuncUsages GetOrCreateLocalFuncUsages(LocalFunctionSymbol localFunc) { LocalFuncUsages usages; if (!_localFuncVarUsages.TryGetValue(localFunc, out usages)) { usages = new LocalFuncUsages(); _localFuncVarUsages[localFunc] = usages; } return(usages); }
private LocalFuncUsages GetOrCreateLocalFuncUsages(LocalFunctionSymbol localFunc) { LocalFuncUsages usages; if (!_localFuncVarUsages.TryGetValue(localFunc, out usages)) { usages = new LocalFuncUsages(); _localFuncVarUsages[localFunc] = usages; } return usages; }
private LocalFuncUsages GetOrCreateLocalFuncUsages(LocalFunctionSymbol localFunc) { LocalFuncUsages usages; if (!_localFuncVarUsages.TryGetValue(localFunc, out usages)) { usages = _localFuncVarUsages[localFunc] = new LocalFuncUsages(UnreachableState()); } return usages; }