Example #1
0
        public override BoundNode VisitPreviousSubmissionReference(
            BoundPreviousSubmissionReference node
            )
        {
            var targetType = (ImplicitNamedTypeSymbol)node.Type;

            Debug.Assert(targetType.TypeKind == TypeKind.Submission);
            Debug.Assert(_factory.TopLevelMethod is { IsStatic: false });
        public override BoundNode VisitPreviousSubmissionReference(BoundPreviousSubmissionReference node)
        {
            var targetType = (ImplicitTypeSymbol)node.Type;
            Debug.Assert(targetType.IsScriptClass);
            Debug.Assert(!containingSymbol.IsStatic);

            Debug.Assert(previousSubmissionFields != null);

            var targetScriptReference = previousSubmissionFields.GetOrMakeField(targetType);
            var thisReference = new BoundThisReference(null, null, containingSymbol.ThisParameter, containingType);
            return new BoundFieldAccess(null, null, thisReference, targetScriptReference, constantValueOpt: null);
        }
        public override BoundNode VisitPreviousSubmissionReference(BoundPreviousSubmissionReference node)
        {
            var targetType = (ImplicitNamedTypeSymbol)node.Type;
            Debug.Assert(targetType.TypeKind == TypeKind.Submission);
            Debug.Assert(!_factory.CurrentMethod.IsStatic);

            Debug.Assert(_previousSubmissionFields != null);

            var syntax = node.Syntax;
            var targetScriptReference = _previousSubmissionFields.GetOrMakeField(targetType);
            var thisReference = new BoundThisReference(syntax, _factory.CurrentType);
            return new BoundFieldAccess(syntax, thisReference, targetScriptReference, ConstantValue.NotAvailable);
        }
Example #4
0
        public override BoundNode VisitPreviousSubmissionReference(BoundPreviousSubmissionReference node)
        {
            var targetType = (ImplicitTypeSymbol)node.Type;

            Debug.Assert(targetType.IsScriptClass);
            Debug.Assert(!containingSymbol.IsStatic);

            Debug.Assert(previousSubmissionFields != null);

            var targetScriptReference = previousSubmissionFields.GetOrMakeField(targetType);
            var thisReference         = new BoundThisReference(null, null, containingSymbol.ThisParameter, containingType);

            return(new BoundFieldAccess(null, null, thisReference, targetScriptReference, constantValueOpt: null));
        }
        public override BoundNode VisitPreviousSubmissionReference(BoundPreviousSubmissionReference node)
        {
            var targetType = (ImplicitNamedTypeSymbol)node.Type;

            Debug.Assert(targetType.TypeKind == TypeKind.Submission);
            Debug.Assert(!_factory.TopLevelMethod.IsStatic);

            Debug.Assert(_previousSubmissionFields != null);

            var syntax = node.Syntax;
            var targetScriptReference = _previousSubmissionFields.GetOrMakeField(targetType);
            var thisReference         = new BoundThisReference(syntax, _factory.CurrentType);

            return(new BoundFieldAccess(syntax, thisReference, targetScriptReference, ConstantValue.NotAvailable));
        }
Example #6
0
 public override object VisitPreviousSubmissionReference(BoundPreviousSubmissionReference node, object arg)
 {
     return(null);
 }