当前位置: 首页>>代码示例>>C#>>正文


C# Analyzer.ResolveTypeName方法代码示例

本文整理汇总了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);
		}
开发者ID:jdluzen,项目名称:Phalanger,代码行数:10,代码来源:FieldUse.cs

示例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;
		}
开发者ID:proff,项目名称:Phalanger,代码行数:18,代码来源:NewAndInstanceof.cs

示例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);
				}
			}
		}
开发者ID:Ashod,项目名称:Phalanger,代码行数:24,代码来源:TypeDecl.cs

示例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;
		}
开发者ID:Ashod,项目名称:Phalanger,代码行数:31,代码来源:TypeDecl.cs

示例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();
		}
开发者ID:hansdude,项目名称:Phalanger,代码行数:13,代码来源:TryStmt.cs

示例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);
		}
开发者ID:jdluzen,项目名称:Phalanger,代码行数:14,代码来源:FunctionCall.cs

示例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);
		}
开发者ID:jdluzen,项目名称:Phalanger,代码行数:10,代码来源:ConstantUse.cs


注:本文中的Analyzer.ResolveTypeName方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。