本文整理汇总了C#中Analyzer.ResolveTypeName方法的典型用法代码示例。如果您正苦于以下问题:C# Analyzer.ResolveTypeName方法的具体用法?C# Analyzer.ResolveTypeName怎么用?C# Analyzer.ResolveTypeName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Analyzer
的用法示例。
在下文中一共展示了Analyzer.ResolveTypeName方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Analyze
internal override Evaluation Analyze(Analyzer/*!*/ analyzer, ExInfoFromParent info)
{
access = info.Access;
type = analyzer.ResolveTypeName(typeName, analyzer.CurrentType, analyzer.CurrentRoutine, position, false);
analyzer.AnalyzeConstructedType(type);
return new Evaluation(this);
}
示例2: Analyze
internal override bool Analyze(Analyzer/*!*/ analyzer)
{
resolvedType = analyzer.ResolveTypeName(className, analyzer.CurrentType, analyzer.CurrentRoutine, position, false);
// base call must follow the class name resolution:
bool args_static = base.Analyze(analyzer);
if (args_static)
{
DTypeDesc[] resolved_arguments = (genericParams.Count > 0) ? new DTypeDesc[genericParams.Count] : DTypeDesc.EmptyArray;
for (int i = 0; i < genericParams.Count; i++)
resolved_arguments[i] = genericParams[i].ResolvedType.TypeDesc;
resolvedType = resolvedType.MakeConstructedType(analyzer, resolved_arguments, position);
}
return args_static;
}
示例3: ResolveBaseInterfaces
private void ResolveBaseInterfaces(Analyzer/*!*/ analyzer, List<DTypeDesc>/*!*/ interfaces)
{
for (int i = 0; i < implementsList.Count; i++)
{
DType base_type = analyzer.ResolveTypeName(implementsList[i].Key, type, null, implementsList[i].Value, true);
if (base_type.IsGenericParameter)
{
analyzer.ErrorSink.Add(Errors.CannotDeriveFromTypeParameter, analyzer.SourceUnit, position,
base_type.FullName);
}
else if (base_type.IsIdentityDefinite && !base_type.IsInterface)
{
if (type.IsInterface)
analyzer.ErrorSink.Add(Errors.NonInterfaceExtended, analyzer.SourceUnit, position, base_type.FullName);
else
analyzer.ErrorSink.Add(Errors.NonInterfaceImplemented, analyzer.SourceUnit, position, base_type.FullName);
}
else
{
interfaces.Add(base_type.TypeDesc);
}
}
}
示例4: ResolveBaseType
private DTypeDesc ResolveBaseType(Analyzer/*!*/ analyzer)
{
if (baseClassName.HasValue)
{
DType base_type = analyzer.ResolveTypeName(baseClassName.Value, type, null, position, true);
if (base_type.IsGenericParameter)
{
analyzer.ErrorSink.Add(Errors.CannotDeriveFromTypeParameter, analyzer.SourceUnit, position,
base_type.FullName);
return null;
}
else if (base_type.IsIdentityDefinite)
{
if (base_type.IsInterface)
{
analyzer.ErrorSink.Add(Errors.NonClassExtended, analyzer.SourceUnit, position, base_type.FullName);
return null;
}
else if (base_type.IsFinal)
{
analyzer.ErrorSink.Add(Errors.FinalClassExtended, analyzer.SourceUnit, position, base_type.FullName);
// do not remove the base class to make the further error reports consistent
}
}
return base_type.TypeDesc;
}
else
return null;
}
示例5: Analyze
internal void Analyze(Analyzer/*!*/ analyzer)
{
ExInfoFromParent info = new ExInfoFromParent(this);
info.Access = AccessType.Write;
resolvedType = analyzer.ResolveTypeName(className, analyzer.CurrentType, analyzer.CurrentRoutine, position, false);
variable.Analyze(analyzer, info);
analyzer.EnterConditionalCode();
this.Statements.Analyze(analyzer);
analyzer.LeaveConditionalCode();
}
示例6: Analyze
internal override Evaluation Analyze(Analyzer/*!*/ analyzer, ExInfoFromParent info)
{
base.Analyze(analyzer, info);
type = analyzer.ResolveTypeName(className, analyzer.CurrentType, analyzer.CurrentRoutine, position, false);
// analyze constructed type (new constructed type cane be used here):
analyzer.AnalyzeConstructedType(type);
if (type.TypeDesc.Equals(DTypeDesc.InterlockedTypeDesc))
analyzer.ErrorSink.Add(Warnings.ClassBehaviorMayBeUnexpected, analyzer.SourceUnit, position, type.FullName);
return new Evaluation(this);
}
示例7: ResolveName
internal override void ResolveName(Analyzer/*!*/ analyzer)
{
type = analyzer.ResolveTypeName(className, analyzer.CurrentType, analyzer.CurrentRoutine, position, false);
// analyze constructed type (we are in the full analysis):
analyzer.AnalyzeConstructedType(type);
constant = analyzer.ResolveClassConstantName(type, name, position, analyzer.CurrentType, analyzer.CurrentRoutine,
out runtimeVisibilityCheck);
}