protected override Symbol MakePatternVariable(TypeSyntax type, SingleVariableDesignationSyntax designation, SyntaxNode nodeToBind) { return(designation == null ? null : GlobalExpressionVariable.Create( _containingType, _modifiers, type, designation.Identifier.ValueText, designation, designation.GetLocation(), _containingFieldOpt, nodeToBind)); }
static VariableDeclaration CreateSingle(Context cx, DeclarationExpressionSyntax node, SingleVariableDesignationSyntax designation, IExpressionParentEntity parent, int child) { bool isVar = node.Type.IsVar; var variableSymbol = cx.GetModel(designation).GetDeclaredSymbol(designation) as ILocalSymbol; if (variableSymbol == null) { cx.ModelError(node, "Failed to determine local variable"); return(Create(cx, node, NullType.Create(cx), isVar, parent, child)); } var type = Entities.Type.Create(cx, variableSymbol.GetAnnotatedType()); var location = cx.Create(designation.GetLocation()); var ret = Create(cx, designation, type, isVar, parent, child); cx.Try(null, null, () => LocalVariable.Create(cx, variableSymbol, ret, isVar, location)); return(ret); }