Beispiel #1
0
        private void BuildSelParameterSymbol(
            InvocableSymbol containingSymbol,
            ISelfParameterSyntax param,
            DataType type)
        {
            var symbol = new SelfParameterSymbol(containingSymbol, type);

            param.Symbol.Fulfill(symbol);
            symbolTree.Add(symbol);
        }
Beispiel #2
0
        private static ObjectType ResolveSelfParameterType(
            ISelfParameterSyntax selfParameter,
            IClassDeclarationSyntax declaringClass)
        {
            var selfType = declaringClass.Symbol.Result.DeclaresDataType;

            if (selfParameter.MutableSelf)
            {
                selfType = selfType.ToConstructorSelf();
            }
            return(selfType);
        }
 public AbstractMethodDeclarationSyntax(
     IClassDeclarationSyntax declaringClass,
     TextSpan span,
     CodeFile file,
     IAccessModifierToken?accessModifier,
     TextSpan nameSpan,
     Name name,
     ISelfParameterSyntax selfParameter,
     FixedList <INamedParameterSyntax> parameters,
     ITypeSyntax?returnType,
     IReachabilityAnnotationsSyntax reachabilityAnnotations)
     : base(declaringClass, span, file, accessModifier, nameSpan, name,
            selfParameter, parameters, returnType, reachabilityAnnotations)
 {
 }
 public ConstructorDeclarationSyntax(
     IClassDeclarationSyntax declaringType,
     TextSpan span,
     CodeFile file,
     IAccessModifierToken?accessModifier,
     TextSpan nameSpan,
     Name?name,
     ISelfParameterSyntax implicitSelfParameter,
     FixedList <IConstructorParameterSyntax> parameters,
     IReachabilityAnnotationsSyntax reachabilityAnnotations,
     IBodySyntax body)
     : base(span, file, accessModifier, nameSpan, name, parameters, reachabilityAnnotations,
            new AcyclicPromise <ConstructorSymbol>())
 {
     DeclaringClass        = declaringType;
     ImplicitSelfParameter = implicitSelfParameter;
     Parameters            = parameters;
     Body   = body;
     Symbol = (AcyclicPromise <ConstructorSymbol>)base.Symbol;
 }
Beispiel #5
0
 protected MethodDeclarationSyntax(
     IClassDeclarationSyntax declaringClass,
     TextSpan span,
     CodeFile file,
     IAccessModifierToken?accessModifier,
     TextSpan nameSpan,
     Name name,
     ISelfParameterSyntax selfParameter,
     FixedList <INamedParameterSyntax> parameters,
     ITypeSyntax?returnType,
     IReachabilityAnnotationsSyntax reachabilityAnnotations)
     : base(span, file, accessModifier, nameSpan, name,
            parameters, reachabilityAnnotations, new AcyclicPromise <MethodSymbol>())
 {
     DeclaringClass = declaringClass;
     Name           = name;
     SelfParameter  = selfParameter;
     Parameters     = parameters;
     ReturnType     = returnType;
     Symbol         = (AcyclicPromise <MethodSymbol>)base.Symbol;
 }