예제 #1
0
파일: DType.cs 프로젝트: Orvid/D_Parser
 public TemplateParameterSymbol(TemplateParameter.Node tpn, ISemantic typeOrValue, ISyntaxRegion paramIdentifier = null)
     : base(tpn, AbstractType.Get(typeOrValue), paramIdentifier)
 {
     IsKnowinglyUndetermined = TemplateInstanceHandler.IsNonFinalArgument(typeOrValue);
     this.Parameter          = tpn.TemplateParameter;
     this.ParameterValue     = typeOrValue as ISymbolValue;
 }
예제 #2
0
            public AbstractType Visit(TemplateParameter.Node tpn)
            {
                TemplateParameterSymbol tpnBase;

                //TODO: Resolve the specialization type
                //var templateParameterType = TemplateInstanceHandler.ResolveTypeSpecialization(tmp, ctxt);

                if (ctxt.GetTemplateParam(tpn.NameHash, out tpnBase) && tpnBase.Parameter == tpn.TemplateParameter)
                {
                    return(tpnBase);
                }

                return(new TemplateParameterSymbol(tpn, null, typeBase));
            }
예제 #3
0
 public string Visit(TemplateParameter.Node templateParameterNode)
 {
     return(TemplateType);                // ? or a more special type ?
 }
예제 #4
0
파일: DIcons.cs 프로젝트: lenoil98/Mono-D
 public IconId Visit(TemplateParameter.Node n)
 {
     return(iconIdWithProtectionAttr(n, "template"));
 }
예제 #5
0
 public ulong Visit(TemplateParameter.Node templateParameterNode)
 {
     return(1000121);
 }
예제 #6
0
 public TemplateParameterSymbol(TemplateParameter.Node tpn, ISemantic typeOrValue, ISyntaxRegion paramIdentifier = null)
     : base(tpn, AbstractType.Get(typeOrValue), paramIdentifier)
 {
     this.Parameter      = tpn.TemplateParameter;
     this.ParameterValue = typeOrValue as ISymbolValue;
 }
예제 #7
0
 public CompletionItemKind Visit(TemplateParameter.Node n)
 {
     return(CompletionItemKind.TypeParameter);
 }
예제 #8
0
 public byte Visit(TemplateParameter.Node templateParameterNode)
 {
     return((byte)TypeReferenceKind.TemplateTypeParameter);
 }