Example #1
0
        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;
        }
Example #2
0
        private LocalFuncUsages GetOrCreateLocalFuncUsages(LocalFunctionSymbol localFunc)
        {
            LocalFuncUsages usages;

            if (!_localFuncVarUsages.TryGetValue(localFunc, out usages))
            {
                usages = _localFuncVarUsages[localFunc] = new LocalFuncUsages(UnreachableState());
            }
            return(usages);
        }
Example #3
0
        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;
 }