protected VariableInfo CreateFromSymbolCommon <T>(
                Compilation compilation,
                ISymbol symbol,
                ITypeSymbol type,
                VariableStyle style,
                HashSet <int> nonNoisySyntaxKindSet) where T : SyntaxNode
            {
                var local = symbol as ILocalSymbol;

                if (local != null)
                {
                    return(new VariableInfo(
                               new LocalVariableSymbol <T>(compilation, local, type, nonNoisySyntaxKindSet),
                               style));
                }

                var parameter = symbol as IParameterSymbol;

                if (parameter != null)
                {
                    return(new VariableInfo(new ParameterVariableSymbol(compilation, parameter, type), style));
                }

                var rangeVariable = symbol as IRangeVariableSymbol;

                if (rangeVariable != null)
                {
                    return(new VariableInfo(new QueryVariableSymbol(compilation, rangeVariable, type), style));
                }

                return(null);               //Contract.FailWithReturn<VariableInfo>(FeaturesResources.Unknown);
            }
 protected override VariableInfo CreateFromSymbol(
     Compilation compilation,
     ISymbol symbol,
     ITypeSymbol type,
     VariableStyle style,
     bool variableDeclared)
 {
     return CreateFromSymbolCommon<LocalDeclarationStatementSyntax>(compilation, symbol, type, style, s_nonNoisySyntaxKindSet);
 }
 public VariableInfo(
     VariableSymbol variableSymbol,
     VariableStyle variableStyle,
     bool useAsReturnValue = false)
 {
     _variableSymbol   = variableSymbol;
     _variableStyle    = variableStyle;
     _useAsReturnValue = useAsReturnValue;
 }
Beispiel #4
0
 protected override VariableInfo CreateFromSymbol(
     Compilation compilation,
     ISymbol symbol,
     ITypeSymbol type,
     VariableStyle style,
     bool variableDeclared)
 {
     return(CreateFromSymbolCommon <LocalDeclarationStatementSyntax>(compilation, symbol, type, style, s_nonNoisySyntaxKindSet));
 }
 public VariableInfo(
     VariableSymbol variableSymbol,
     VariableStyle variableStyle,
     bool useAsReturnValue = false)
 {
     _variableSymbol = variableSymbol;
     _variableStyle = variableStyle;
     _useAsReturnValue = useAsReturnValue;
 }
            protected VariableStyle AlwaysReturn(VariableStyle style)
            {
                if (style == VariableStyle.InputOnly)
                {
                    return(VariableStyle.Ref);
                }

                if (style == VariableStyle.MoveIn)
                {
                    return(VariableStyle.Out);
                }

                if (style == VariableStyle.SplitIn)
                {
                    return(VariableStyle.Out);
                }

                if (style == VariableStyle.SplitOut)
                {
                    return(VariableStyle.OutWithMoveOut);
                }

                return(style);
            }
 /// <summary>
 /// create VariableInfo type
 /// </summary>
 protected abstract VariableInfo CreateFromSymbol(Compilation compilation, ISymbol symbol, ITypeSymbol type, VariableStyle variableStyle, bool variableDeclared);