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));
 }
Example #2
0
        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);
        }