當前位置: 首頁>>代碼示例>>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;未經允許,請勿轉載。