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; }
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)); }
public string Visit(TemplateParameter.Node templateParameterNode) { return(TemplateType); // ? or a more special type ? }
public IconId Visit(TemplateParameter.Node n) { return(iconIdWithProtectionAttr(n, "template")); }
public ulong Visit(TemplateParameter.Node templateParameterNode) { return(1000121); }
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; }
public CompletionItemKind Visit(TemplateParameter.Node n) { return(CompletionItemKind.TypeParameter); }
public byte Visit(TemplateParameter.Node templateParameterNode) { return((byte)TypeReferenceKind.TemplateTypeParameter); }