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; }
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);