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


Java DotNetTypeResolveResult.getElement方法代码示例

本文整理汇总了Java中consulo.dotnet.resolve.DotNetTypeResolveResult.getElement方法的典型用法代码示例。如果您正苦于以下问题:Java DotNetTypeResolveResult.getElement方法的具体用法?Java DotNetTypeResolveResult.getElement怎么用?Java DotNetTypeResolveResult.getElement使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在consulo.dotnet.resolve.DotNetTypeResolveResult的用法示例。


在下文中一共展示了DotNetTypeResolveResult.getElement方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: checkImpl

import consulo.dotnet.resolve.DotNetTypeResolveResult; //导入方法依赖的package包/类
@RequiredReadAction
@Nullable
@Override
public HighlightInfoFactory checkImpl(@NotNull CSharpLanguageVersion languageVersion, @NotNull CSharpHighlightContext highlightContext, @NotNull CSharpUserType element)
{
	if(element.getParent() instanceof DotNetTypeList && element.getParent().getParent() instanceof CSharpTypeDeclaration)
	{
		CSharpTypeDeclaration parent = (CSharpTypeDeclaration) element.getParent().getParent();

		DotNetTypeResolveResult typeResolveResult = element.toTypeRef().resolve();

		PsiElement resolvedElement = typeResolveResult.getElement();
		if(resolvedElement instanceof CSharpTypeDeclaration)
		{
			CSharpTypeDeclaration resolvedTypeDeclaration = (CSharpTypeDeclaration) resolvedElement;
			if(resolvedElement == parent || resolvedTypeDeclaration.isInheritor(((CSharpTypeDeclaration) resolvedElement).getVmQName(), true))
			{
				return newBuilder(element, formatElement(parent), formatElement(resolvedElement));
			}
		}
	}
	return null;
}
 
开发者ID:consulo,项目名称:consulo-csharp,代码行数:24,代码来源:CS0146.java

示例2: getSuperContextImpl

import consulo.dotnet.resolve.DotNetTypeResolveResult; //导入方法依赖的package包/类
@NotNull
@RequiredReadAction
private CSharpResolveContext getSuperContextImpl(Set<PsiElement> alreadyProcessedItem)
{
	List<DotNetTypeRef> superTypes = getExtendTypeRefs();

	if(superTypes.isEmpty())
	{
		return EMPTY;
	}

	List<CSharpResolveContext> contexts = new ArrayList<>(superTypes.size());
	for(DotNetTypeRef dotNetTypeRef : superTypes)
	{
		DotNetTypeResolveResult typeResolveResult = dotNetTypeRef.resolve();
		PsiElement resolvedElement = typeResolveResult.getElement();

		if(resolvedElement != null && alreadyProcessedItem.add(resolvedElement))
		{
			DotNetGenericExtractor genericExtractor = typeResolveResult.getGenericExtractor();

			contexts.add(CSharpResolveContextUtil.createContext(genericExtractor, myElement.getResolveScope(), resolvedElement, alreadyProcessedItem));
		}
	}

	if(contexts.isEmpty())
	{
		return EMPTY;
	}
	return new CSharpCompositeResolveContext(myElement.getProject(), contexts.toArray(new CSharpResolveContext[contexts.size()]));
}
 
开发者ID:consulo,项目名称:consulo-csharp,代码行数:32,代码来源:CSharpBaseResolveContext.java

示例3: isValidTypeRef

import consulo.dotnet.resolve.DotNetTypeResolveResult; //导入方法依赖的package包/类
@RequiredReadAction
private boolean isValidTypeRef(DotNetTypeRef typeRef)
{
	DotNetTypeResolveResult typeResolveResult = typeRef.resolve();
	PsiElement resolvedElement = typeResolveResult.getElement();

	if(resolvedElement instanceof CSharpTypeDeclaration)
	{
		CSharpTypeDeclaration typeDeclaration = (CSharpTypeDeclaration) resolvedElement;
		if(typeDeclaration.isEnum())
		{
			return true;
		}
		String vmQName = typeDeclaration.getVmQName();
		if(ArrayUtil.contains(vmQName, ourSwitchTypes))
		{
			return true;
		}

		if(DotNetTypes.System.Nullable$1.equals(vmQName))
		{
			int genericParametersCount = typeDeclaration.getGenericParametersCount();
			if(genericParametersCount > 0)
			{
				DotNetGenericParameter genericParameter = typeDeclaration.getGenericParameters()[0];

				DotNetGenericExtractor genericExtractor = typeResolveResult.getGenericExtractor();
				DotNetTypeRef extractedTypRef = genericExtractor.extract(genericParameter);
				if(extractedTypRef == null)
				{
					return false;
				}

				return isValidTypeRef(extractedTypRef);
			}
		}
	}

	return false;
}
 
开发者ID:consulo,项目名称:consulo-csharp,代码行数:41,代码来源:CS0151.java

示例4: fillFromTypeRef

import consulo.dotnet.resolve.DotNetTypeResolveResult; //导入方法依赖的package包/类
@RequiredReadAction
private static void fillFromTypeRef(DotNetTypeRef ref, Set<PsiElement> map)
{
	DotNetTypeResolveResult resolveResult = ref.resolve();

	PsiElement element = resolveResult.getElement();
	if(element instanceof CSharpTypeDeclaration)
	{
		map.add(element);
	}

	if(element instanceof DotNetGenericParameterListOwner)
	{
		DotNetGenericExtractor genericExtractor = resolveResult.getGenericExtractor();

		DotNetGenericParameter[] genericParameters = ((DotNetGenericParameterListOwner) element).getGenericParameters();

		for(DotNetGenericParameter genericParameter : genericParameters)
		{
			DotNetTypeRef extractedTypeRef = genericExtractor.extract(genericParameter);
			if(extractedTypeRef != null)
			{
				fillFromTypeRef(extractedTypeRef, map);
			}
		}
	}
}
 
开发者ID:consulo,项目名称:consulo-csharp,代码行数:28,代码来源:ExpectedUsingInfo.java

示例5: resolveTypeElement

import consulo.dotnet.resolve.DotNetTypeResolveResult; //导入方法依赖的package包/类
@Nullable
@RequiredReadAction
public static Pair<String, DotNetTypeDeclaration> resolveTypeElement(@NotNull DotNetTypeRef typeRef)
{
	DotNetTypeResolveResult typeResolveResult = typeRef.resolve();

	PsiElement typeResolveResultElement = typeResolveResult.getElement();
	if(typeResolveResultElement instanceof DotNetTypeDeclaration)
	{
		return Pair.create(((DotNetTypeDeclaration) typeResolveResultElement).getVmQName(), (DotNetTypeDeclaration) typeResolveResultElement);
	}
	return null;
}
 
开发者ID:consulo,项目名称:consulo-csharp,代码行数:14,代码来源:CSharpTypeUtil.java

示例6: unbox

import consulo.dotnet.resolve.DotNetTypeResolveResult; //导入方法依赖的package包/类
@NotNull
@RequiredReadAction
public static DotNetTypeRef unbox(@NotNull DotNetTypeRef typeRef)
{
	DotNetTypeResolveResult typeResolveResult = typeRef.resolve();
	PsiElement element = typeResolveResult.getElement();
	if(element == null)
	{
		return typeRef;
	}

	if(element instanceof CSharpTypeDeclaration && Comparing.equal(((CSharpTypeDeclaration) element).getVmQName(), DotNetTypes.System.Nullable$1))
	{
		DotNetGenericExtractor genericExtractor = typeResolveResult.getGenericExtractor();

		DotNetGenericParameter[] genericParameters = ((CSharpTypeDeclaration) element).getGenericParameters();
		if(genericParameters.length == 1)
		{
			DotNetTypeRef extract = genericExtractor.extract(genericParameters[0]);
			if(extract != null)
			{
				return extract;
			}
		}
	}
	return typeRef;
}
 
开发者ID:consulo,项目名称:consulo-csharp,代码行数:28,代码来源:CSharpNullableTypeUtil.java

示例7: pushTypeArgumentsDeep

import consulo.dotnet.resolve.DotNetTypeResolveResult; //导入方法依赖的package包/类
@RequiredReadAction
private static void pushTypeArgumentsDeep(@NotNull List<Couple<DotNetTypeResolveResult>> levels,
		@NotNull DotNetGenericParameter[] expressionGenericParameters,
		@NotNull DotNetGenericExtractor expressionExtractor,
		@NotNull DotNetGenericExtractor parameterExtractor)
{
	for(DotNetGenericParameter expressionGenericParameter : expressionGenericParameters)
	{
		ProgressManager.checkCanceled();

		DotNetTypeRef expressionTypeRefFromGenericParameter = expressionExtractor.extract(expressionGenericParameter);

		DotNetTypeRef parameterTypeRefFromGenericParameter = parameterExtractor.extract(expressionGenericParameter);

		if(expressionTypeRefFromGenericParameter == null || parameterTypeRefFromGenericParameter == null)
		{
			continue;
		}

		DotNetTypeResolveResult exprTypeResult = expressionTypeRefFromGenericParameter.resolve();
		DotNetTypeResolveResult paramTypeResult = parameterTypeRefFromGenericParameter.resolve();

		// check is type equal 'Genre<System.String>' to 'Genre<T>'
		if(exprTypeResult.getElement() instanceof DotNetTypeDeclaration && exprTypeResult.getElement().isEquivalentTo(paramTypeResult.getElement()))
		{
			levels.add(Couple.of(exprTypeResult, paramTypeResult));

			DotNetGenericParameter[] genericParameters = ((DotNetTypeDeclaration) exprTypeResult.getElement()).getGenericParameters();
			pushTypeArgumentsDeep(levels, genericParameters, exprTypeResult.getGenericExtractor(), paramTypeResult.getGenericExtractor());
		}
	}
}
 
开发者ID:consulo,项目名称:consulo-csharp,代码行数:33,代码来源:GenericInferenceUtil.java

示例8: findIndexOfGeneric

import consulo.dotnet.resolve.DotNetTypeResolveResult; //导入方法依赖的package包/类
@RequiredReadAction
private static int findIndexOfGeneric(DotNetTypeResolveResult parameterTypeResolveResult, DotNetGenericParameter methodGenericParameter)
{
	PsiElement parameterElement = parameterTypeResolveResult.getElement();
	if(parameterElement instanceof DotNetGenericParameterListOwner)
	{
		DotNetGenericParameter[] genericParameters = ((DotNetGenericParameterListOwner) parameterElement).getGenericParameters();
		if(genericParameters.length == 0)
		{
			return -1;
		}

		DotNetGenericExtractor genericExtractor = parameterTypeResolveResult.getGenericExtractor();

		for(int i = 0; i < genericParameters.length; i++)
		{
			DotNetTypeRef extractedTypeRef = genericExtractor.extract(genericParameters[i]);
			if(extractedTypeRef == null)
			{
				continue;
			}
			DotNetTypeResolveResult extractedTypeResolveResult = extractedTypeRef.resolve();
			if(methodGenericParameter.isEquivalentTo(extractedTypeResolveResult.getElement()))
			{
				return i;
			}
		}
	}
	return -1;
}
 
开发者ID:consulo,项目名称:consulo-csharp,代码行数:31,代码来源:GenericInferenceUtil.java

示例9: findPropertyByName

import consulo.dotnet.resolve.DotNetTypeResolveResult; //导入方法依赖的package包/类
@Nullable
@RequiredReadAction
public static DotNetPropertyDeclaration findPropertyByName(@NotNull final String name, @Nullable String parentQName, @NotNull DotNetTypeRef typeRef)
{
	DotNetTypeResolveResult typeResolveResult = typeRef.resolve();
	PsiElement resolvedElement = typeResolveResult.getElement();
	if(resolvedElement == null)
	{
		return null;
	}
	DotNetGenericExtractor genericExtractor = typeResolveResult.getGenericExtractor();
	return findPropertyByName(name, resolvedElement, parentQName, genericExtractor);
}
 
开发者ID:consulo,项目名称:consulo-csharp,代码行数:14,代码来源:CSharpSearchUtil.java

示例10: findMethodByName

import consulo.dotnet.resolve.DotNetTypeResolveResult; //导入方法依赖的package包/类
@Nullable
@RequiredReadAction
public static DotNetMethodDeclaration findMethodByName(@NotNull final String name, @Nullable String parentQName, @NotNull DotNetTypeRef typeRef, int parameterSize)
{
	DotNetTypeResolveResult typeResolveResult = typeRef.resolve();
	PsiElement resolvedElement = typeResolveResult.getElement();
	if(resolvedElement == null)
	{
		return null;
	}
	return findMethodByName(name, resolvedElement, parentQName, typeResolveResult.getGenericExtractor(), parameterSize);
}
 
开发者ID:consulo,项目名称:consulo-csharp,代码行数:13,代码来源:CSharpSearchUtil.java

示例11: actionPerformed

import consulo.dotnet.resolve.DotNetTypeResolveResult; //导入方法依赖的package包/类
@RequiredDispatchThread
@Override
public void actionPerformed(@NotNull AnActionEvent e)
{
	PsiElement psiElement = e.getData(CommonDataKeys.PSI_ELEMENT);
	if(!(psiElement instanceof DotNetVariable))
	{
		return;
	}

	DotNetTypeRef typeRef = ((DotNetVariable) psiElement).toTypeRef(true);

	DotNetTypeResolveResult typeResolveResult = typeRef.resolve();

	PsiElement element = typeResolveResult.getElement();
	if(!(element instanceof DotNetNamedElement))
	{
		return;
	}

	DotNetNamedElement extract = GenericUnwrapTool.extract((DotNetNamedElement) element, typeResolveResult.getGenericExtractor());

	List<StubBlock> stubBlocks = CSharpStubBuilderVisitor.buildBlocks(extract);

	CharSequence text = StubBlockUtil.buildText(stubBlocks);

	LightVirtualFile lightVirtualFile = new LightVirtualFile("dummy.cs", CSharpFileType.INSTANCE, text);

	OpenFileAction.openFile(lightVirtualFile, psiElement.getProject());
}
 
开发者ID:consulo,项目名称:consulo-csharp,代码行数:31,代码来源:OpenTypeFromVariableAction.java

示例12: multiResolve

import consulo.dotnet.resolve.DotNetTypeResolveResult; //导入方法依赖的package包/类
@NotNull
@Override
@RequiredReadAction
public ResolveResult[] multiResolve(boolean b)
{
	CSharpArrayInitializerOwner arrayInitializerOwner = PsiTreeUtil.getParentOfType(this, CSharpArrayInitializerOwner.class);
	if(arrayInitializerOwner instanceof CSharpNewExpressionImpl)
	{
		DotNetTypeRef typeRef = ((CSharpNewExpressionImpl) arrayInitializerOwner).toTypeRef(false);
		if(typeRef == DotNetTypeRef.ERROR_TYPE)
		{
			return ResolveResult.EMPTY_ARRAY;
		}

		DotNetTypeResolveResult typeResolveResult = typeRef.resolve();
		PsiElement resolvedElement = typeResolveResult.getElement();
		if(resolvedElement == null)
		{
			return ResolveResult.EMPTY_ARRAY;
		}

		CSharpResolveOptions options = new CSharpResolveOptions(CSharpReferenceExpression.ResolveToKind.METHOD,
				new MemberByNameSelector("Add"), this, this, false, true);

		CommonProcessors.CollectProcessor<ResolveResult> processor = new CommonProcessors.CollectProcessor<ResolveResult>();
		CSharpReferenceExpressionImplUtil.collectResults(options, typeResolveResult.getGenericExtractor(), resolvedElement, processor);
		return processor.toArray(ResolveResult.ARRAY_FACTORY);
	}
	return ResolveResult.EMPTY_ARRAY;
}
 
开发者ID:consulo,项目名称:consulo-csharp,代码行数:31,代码来源:CSharpArrayInitializerCompositeValueImpl.java

示例13: resolveVirtualImplementation

import consulo.dotnet.resolve.DotNetTypeResolveResult; //导入方法依赖的package包/类
@NotNull
@RequiredReadAction
public static Pair<ResolveVirtualImplementResult, PsiElement> resolveVirtualImplementation(@NotNull DotNetVirtualImplementOwner owner, @NotNull PsiElement scope)
{
	DotNetType typeForImplement = owner.getTypeForImplement();
	if(typeForImplement == null)
	{
		return Pair.create(ResolveVirtualImplementResult.CANT_HAVE, null);
	}

	DotNetTypeRef typeRefForImplement = typeForImplement.toTypeRef();

	DotNetTypeResolveResult typeResolveResult = typeRefForImplement.resolve();

	PsiElement resolvedElement = typeResolveResult.getElement();
	DotNetGenericExtractor genericExtractor = typeResolveResult.getGenericExtractor();
	if(!(resolvedElement instanceof CSharpTypeDeclaration))
	{
		return Pair.create(ResolveVirtualImplementResult.CANT_HAVE, null);
	}

	for(DotNetNamedElement namedElement : ((CSharpTypeDeclaration) resolvedElement).getMembers())
	{
		namedElement = GenericUnwrapTool.extract(namedElement, genericExtractor);

		if(CSharpElementCompareUtil.isEqual(namedElement, owner, scope))
		{
			return Pair.<ResolveVirtualImplementResult, PsiElement>create(ResolveVirtualImplementResult.FOUND, namedElement);
		}
	}
	return Pair.<ResolveVirtualImplementResult, PsiElement>create(ResolveVirtualImplementResult.NOT_FOUND, null);
}
 
开发者ID:consulo,项目名称:consulo-csharp,代码行数:33,代码来源:CSharpLikeMethodDeclarationImplUtil.java

示例14: buildNullableOperators

import consulo.dotnet.resolve.DotNetTypeResolveResult; //导入方法依赖的package包/类
@NotNull
@RequiredReadAction
private DotNetElement[] buildNullableOperators(@NotNull Project project,
		@NotNull GlobalSearchScope resolveScope,
		@NotNull DotNetTypeRef selfTypeRef,
		@NotNull CSharpTypeDeclaration typeDeclaration,
		@NotNull DotNetGenericExtractor extractor,
		@NotNull Consumer<PsiElement> consumer)
{
	DotNetGenericParameter[] genericParameters = typeDeclaration.getGenericParameters();
	if(genericParameters.length == 0)
	{
		return DotNetElement.EMPTY_ARRAY;
	}
	DotNetGenericParameter genericParameter = genericParameters[0];

	DotNetTypeRef extract = extractor.extract(genericParameter);
	if(extract == null)
	{
		return DotNetElement.EMPTY_ARRAY;
	}

	DotNetTypeResolveResult typeResolveResult = extract.resolve();
	PsiElement typeResolveResultElement = typeResolveResult.getElement();
	if(!(typeResolveResultElement instanceof DotNetTypeDeclaration))
	{
		return DotNetElement.EMPTY_ARRAY;
	}

	List<DotNetElement> elements = new ArrayList<DotNetElement>();

	DotNetTypeDeclaration forAddOperatorsElement = (DotNetTypeDeclaration) typeResolveResultElement;

	buildOperators(project, resolveScope, selfTypeRef, forAddOperatorsElement, OperatorStubsLoader.INSTANCE.myTypeOperators.get(forAddOperatorsElement.getVmQName()), consumer);

	if(forAddOperatorsElement.isEnum())
	{
		buildOperators(project, resolveScope, selfTypeRef, forAddOperatorsElement, OperatorStubsLoader.INSTANCE.myEnumOperators, consumer);
	}
	return ContainerUtil.toArray(elements, DotNetElement.ARRAY_FACTORY);
}
 
开发者ID:consulo,项目名称:consulo-csharp,代码行数:42,代码来源:OperatorsProvider.java

示例15: buildNullableConversionMethods

import consulo.dotnet.resolve.DotNetTypeResolveResult; //导入方法依赖的package包/类
@NotNull
@RequiredReadAction
private DotNetElement[] buildNullableConversionMethods(Project project,
		@NotNull DotNetTypeRef selfTypeRef,
		GlobalSearchScope resolveScope,
		@NotNull CSharpTypeDeclaration typeDeclaration,
		@NotNull DotNetGenericExtractor extractor,
		@NotNull Consumer<PsiElement> consumer)
{
	DotNetGenericParameter[] genericParameters = typeDeclaration.getGenericParameters();
	if(genericParameters.length == 0)
	{
		return DotNetElement.EMPTY_ARRAY;
	}
	DotNetGenericParameter genericParameter = genericParameters[0];

	DotNetTypeRef extract = extractor.extract(genericParameter);
	if(extract == null)
	{
		return DotNetElement.EMPTY_ARRAY;
	}

	DotNetTypeResolveResult typeResolveResult = extract.resolve();
	PsiElement typeResolveResultElement = typeResolveResult.getElement();
	if(!(typeResolveResultElement instanceof DotNetTypeDeclaration))
	{
		return DotNetElement.EMPTY_ARRAY;
	}

	List<DotNetElement> elements = new ArrayList<DotNetElement>();

	DotNetTypeDeclaration forAddOperatorsElement = (DotNetTypeDeclaration) typeResolveResultElement;

	buildConversionMethods(project, resolveScope, selfTypeRef, forAddOperatorsElement, OperatorStubsLoader.INSTANCE.myTypeOperators.get(forAddOperatorsElement.getVmQName()), consumer);

	if(forAddOperatorsElement.isEnum())
	{
		buildConversionMethods(project, resolveScope, selfTypeRef, forAddOperatorsElement, OperatorStubsLoader.INSTANCE.myEnumOperators, consumer);
	}
	return ContainerUtil.toArray(elements, DotNetElement.ARRAY_FACTORY);
}
 
开发者ID:consulo,项目名称:consulo-csharp,代码行数:42,代码来源:ConversionMethodsProvider.java


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