本文整理汇总了Java中com.intellij.codeInsight.daemon.impl.analysis.JavaGenericsUtil.isRawToGeneric方法的典型用法代码示例。如果您正苦于以下问题:Java JavaGenericsUtil.isRawToGeneric方法的具体用法?Java JavaGenericsUtil.isRawToGeneric怎么用?Java JavaGenericsUtil.isRawToGeneric使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.intellij.codeInsight.daemon.impl.analysis.JavaGenericsUtil
的用法示例。
在下文中一共展示了JavaGenericsUtil.isRawToGeneric方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: checkRawToGenericsAssignment
import com.intellij.codeInsight.daemon.impl.analysis.JavaGenericsUtil; //导入方法依赖的package包/类
private void checkRawToGenericsAssignment(@NotNull PsiElement parameter,
PsiExpression expression,
PsiType parameterType,
PsiType itemType,
boolean checkAssignability,
@NotNull LocalQuickFix[] quickFixes)
{
if(parameterType == null || itemType == null)
{
return;
}
if(checkAssignability && !TypeConversionUtil.isAssignable(parameterType, itemType))
{
return;
}
if(JavaGenericsUtil.isRawToGeneric(parameterType, itemType))
{
String description = JavaErrorMessages.message("generics.unchecked.assignment", JavaHighlightUtil.formatType(itemType), JavaHighlightUtil.formatType(parameterType));
registerProblem(description, expression, parameter, quickFixes);
}
}
示例2: visitArrayInitializerExpression
import com.intellij.codeInsight.daemon.impl.analysis.JavaGenericsUtil; //导入方法依赖的package包/类
@Override
public void visitArrayInitializerExpression(PsiArrayInitializerExpression arrayInitializer) {
super.visitArrayInitializerExpression(arrayInitializer);
if (IGNORE_UNCHECKED_ASSIGNMENT) return;
final PsiType type = arrayInitializer.getType();
if (!(type instanceof PsiArrayType)) return;
final PsiType componentType = ((PsiArrayType)type).getComponentType();
boolean arrayTypeFixChecked = false;
VariableArrayTypeFix fix = null;
final PsiExpression[] initializers = arrayInitializer.getInitializers();
for (PsiExpression expression : initializers) {
final PsiType itemType = expression.getType();
if (itemType == null) continue;
if (!TypeConversionUtil.isAssignable(componentType, itemType)) continue;
if (JavaGenericsUtil.isRawToGeneric(componentType, itemType)) {
String description = JavaErrorMessages.message("generics.unchecked.assignment",
JavaHighlightUtil.formatType(itemType),
JavaHighlightUtil.formatType(componentType));
if (!arrayTypeFixChecked) {
final PsiType checkResult = JavaHighlightUtil.sameType(initializers);
fix = checkResult != null ? new VariableArrayTypeFix(arrayInitializer, checkResult) : null;
arrayTypeFixChecked = true;
}
if (fix != null) {
registerProblem(description, null, expression, new LocalQuickFix[]{fix});
}
}
}
}
示例3: checkRawToGenericsAssignment
import com.intellij.codeInsight.daemon.impl.analysis.JavaGenericsUtil; //导入方法依赖的package包/类
private void checkRawToGenericsAssignment(@NotNull PsiElement parameter,
PsiExpression expression, PsiType parameterType,
PsiType itemType,
boolean checkAssignability,
@NotNull LocalQuickFix[] quickFixes) {
if (parameterType == null || itemType == null) return;
if (checkAssignability && !TypeConversionUtil.isAssignable(parameterType, itemType)) return;
if (JavaGenericsUtil.isRawToGeneric(parameterType, itemType)) {
String description = JavaErrorMessages.message("generics.unchecked.assignment",
JavaHighlightUtil.formatType(itemType),
JavaHighlightUtil.formatType(parameterType));
registerProblem(description, expression, parameter, quickFixes);
}
}
示例4: visitMethod
import com.intellij.codeInsight.daemon.impl.analysis.JavaGenericsUtil; //导入方法依赖的package包/类
@Override
public void visitMethod(PsiMethod method) {
super.visitMethod(method);
if (IGNORE_UNCHECKED_OVERRIDING) return;
if (!method.isConstructor()) {
List<HierarchicalMethodSignature> superMethodSignatures = method.getHierarchicalMethodSignature().getSuperSignatures();
if (!superMethodSignatures.isEmpty() && !method.hasModifierProperty(PsiModifier.STATIC)) {
final MethodSignature signature = method.getSignature(PsiSubstitutor.EMPTY);
for (MethodSignatureBackedByPsiMethod superSignature : superMethodSignatures) {
PsiMethod baseMethod = superSignature.getMethod();
PsiSubstitutor substitutor = MethodSignatureUtil.getSuperMethodSignatureSubstitutor(signature, superSignature);
if (substitutor == null) substitutor = superSignature.getSubstitutor();
if (PsiUtil.isRawSubstitutor(baseMethod, superSignature.getSubstitutor())) continue;
final PsiType baseReturnType = substitutor.substitute(baseMethod.getReturnType());
final PsiType overriderReturnType = method.getReturnType();
if (baseReturnType == null || overriderReturnType == null) return;
if (JavaGenericsUtil.isRawToGeneric(baseReturnType, overriderReturnType)) {
final String message = JavaErrorMessages.message("unchecked.overriding.incompatible.return.type",
JavaHighlightUtil.formatType(overriderReturnType),
JavaHighlightUtil.formatType(baseReturnType));
final PsiTypeElement returnTypeElement = method.getReturnTypeElement();
LOG.assertTrue(returnTypeElement != null);
registerProblem(message, null, returnTypeElement, LocalQuickFix.EMPTY_ARRAY);
}
}
}
}
}
示例5: visitArrayInitializerExpression
import com.intellij.codeInsight.daemon.impl.analysis.JavaGenericsUtil; //导入方法依赖的package包/类
@Override
public void visitArrayInitializerExpression(PsiArrayInitializerExpression arrayInitializer) {
super.visitArrayInitializerExpression(arrayInitializer);
if (IGNORE_UNCHECKED_ASSIGNMENT) return;
final PsiType type = arrayInitializer.getType();
if (!(type instanceof PsiArrayType)) return;
final PsiType componentType = ((PsiArrayType)type).getComponentType();
boolean arrayTypeFixChecked = false;
VariableArrayTypeFix fix = null;
final PsiExpression[] initializers = arrayInitializer.getInitializers();
for (PsiExpression expression : initializers) {
final PsiType itemType = expression.getType();
if (itemType == null) continue;
if (!TypeConversionUtil.isAssignable(componentType, itemType)) continue;
if (JavaGenericsUtil.isRawToGeneric(componentType, itemType)) {
String description = JavaErrorMessages.message("generics.unchecked.assignment",
JavaHighlightUtil.formatType(itemType),
JavaHighlightUtil.formatType(componentType));
if (!arrayTypeFixChecked) {
final PsiType checkResult = JavaHighlightUtil.sameType(initializers);
fix = checkResult != null ? new VariableArrayTypeFix(arrayInitializer, checkResult) : null;
arrayTypeFixChecked = true;
}
if (fix != null) {
registerProblem(description, expression, new LocalQuickFix[]{fix});
}
}
}
}
示例6: checkRawToGenericsAssignment
import com.intellij.codeInsight.daemon.impl.analysis.JavaGenericsUtil; //导入方法依赖的package包/类
private void checkRawToGenericsAssignment(@NotNull PsiElement parameter,
PsiType parameterType,
PsiType itemType,
boolean checkAssignability,
@NotNull LocalQuickFix[] quickFixes) {
if (parameterType == null || itemType == null) return;
if (checkAssignability && !TypeConversionUtil.isAssignable(parameterType, itemType)) return;
if (JavaGenericsUtil.isRawToGeneric(parameterType, itemType)) {
String description = JavaErrorMessages.message("generics.unchecked.assignment",
JavaHighlightUtil.formatType(itemType),
JavaHighlightUtil.formatType(parameterType));
registerProblem(description, parameter, quickFixes);
}
}
示例7: visitMethod
import com.intellij.codeInsight.daemon.impl.analysis.JavaGenericsUtil; //导入方法依赖的package包/类
@Override
public void visitMethod(PsiMethod method) {
super.visitMethod(method);
if (IGNORE_UNCHECKED_OVERRIDING) return;
if (!method.isConstructor()) {
List<HierarchicalMethodSignature> superMethodSignatures = method.getHierarchicalMethodSignature().getSuperSignatures();
if (!superMethodSignatures.isEmpty() && !method.hasModifierProperty(PsiModifier.STATIC)) {
final MethodSignature signature = method.getSignature(PsiSubstitutor.EMPTY);
for (MethodSignatureBackedByPsiMethod superSignature : superMethodSignatures) {
PsiMethod baseMethod = superSignature.getMethod();
PsiSubstitutor substitutor = MethodSignatureUtil.getSuperMethodSignatureSubstitutor(signature, superSignature);
if (substitutor == null) substitutor = superSignature.getSubstitutor();
if (PsiUtil.isRawSubstitutor(baseMethod, superSignature.getSubstitutor())) continue;
final PsiType baseReturnType = substitutor.substitute(baseMethod.getReturnType());
final PsiType overriderReturnType = method.getReturnType();
if (baseReturnType == null || overriderReturnType == null) return;
if (JavaGenericsUtil.isRawToGeneric(baseReturnType, overriderReturnType)) {
final String message = JavaErrorMessages.message("unchecked.overriding.incompatible.return.type",
JavaHighlightUtil.formatType(overriderReturnType),
JavaHighlightUtil.formatType(baseReturnType));
final PsiTypeElement returnTypeElement = method.getReturnTypeElement();
LOG.assertTrue(returnTypeElement != null);
registerProblem(message, returnTypeElement, LocalQuickFix.EMPTY_ARRAY);
}
}
}
}
}
示例8: visitArrayInitializerExpression
import com.intellij.codeInsight.daemon.impl.analysis.JavaGenericsUtil; //导入方法依赖的package包/类
@Override
public void visitArrayInitializerExpression(PsiArrayInitializerExpression arrayInitializer)
{
super.visitArrayInitializerExpression(arrayInitializer);
if(IGNORE_UNCHECKED_ASSIGNMENT)
{
return;
}
final PsiType type = arrayInitializer.getType();
if(!(type instanceof PsiArrayType))
{
return;
}
final PsiType componentType = ((PsiArrayType) type).getComponentType();
boolean arrayTypeFixChecked = false;
VariableArrayTypeFix fix = null;
final PsiExpression[] initializers = arrayInitializer.getInitializers();
for(PsiExpression expression : initializers)
{
final PsiType itemType = expression.getType();
if(itemType == null)
{
continue;
}
if(!TypeConversionUtil.isAssignable(componentType, itemType))
{
continue;
}
if(JavaGenericsUtil.isRawToGeneric(componentType, itemType))
{
String description = JavaErrorMessages.message("generics.unchecked.assignment", JavaHighlightUtil.formatType(itemType), JavaHighlightUtil.formatType(componentType));
if(!arrayTypeFixChecked)
{
final PsiType checkResult = JavaHighlightUtil.sameType(initializers);
fix = checkResult != null ? VariableArrayTypeFix.createFix(arrayInitializer, checkResult) : null;
arrayTypeFixChecked = true;
}
if(fix != null)
{
registerProblem(description, null, expression, new LocalQuickFix[]{fix});
}
}
}
}
示例9: visitMethod
import com.intellij.codeInsight.daemon.impl.analysis.JavaGenericsUtil; //导入方法依赖的package包/类
@Override
public void visitMethod(PsiMethod method)
{
super.visitMethod(method);
if(IGNORE_UNCHECKED_OVERRIDING)
{
return;
}
if(!method.isConstructor())
{
List<HierarchicalMethodSignature> superMethodSignatures = method.getHierarchicalMethodSignature().getSuperSignatures();
if(!superMethodSignatures.isEmpty() && !method.hasModifierProperty(PsiModifier.STATIC))
{
final MethodSignature signature = method.getSignature(PsiSubstitutor.EMPTY);
for(MethodSignatureBackedByPsiMethod superSignature : superMethodSignatures)
{
PsiMethod baseMethod = superSignature.getMethod();
PsiSubstitutor substitutor = MethodSignatureUtil.getSuperMethodSignatureSubstitutor(signature, superSignature);
if(substitutor == null)
{
substitutor = superSignature.getSubstitutor();
}
if(PsiUtil.isRawSubstitutor(baseMethod, superSignature.getSubstitutor()))
{
continue;
}
final PsiType baseReturnType = substitutor.substitute(baseMethod.getReturnType());
final PsiType overriderReturnType = method.getReturnType();
if(baseReturnType == null || overriderReturnType == null)
{
return;
}
if(JavaGenericsUtil.isRawToGeneric(baseReturnType, overriderReturnType))
{
final String message = JavaErrorMessages.message("unchecked.overriding.incompatible.return.type", JavaHighlightUtil.formatType(overriderReturnType), JavaHighlightUtil
.formatType(baseReturnType));
final PsiTypeElement returnTypeElement = method.getReturnTypeElement();
LOG.assertTrue(returnTypeElement != null);
registerProblem(message, null, returnTypeElement, LocalQuickFix.EMPTY_ARRAY);
}
}
}
}
}