本文整理汇总了Java中org.eclipse.jdt.internal.compiler.lookup.TypeBinding.nullAnnotatedReadableName方法的典型用法代码示例。如果您正苦于以下问题:Java TypeBinding.nullAnnotatedReadableName方法的具体用法?Java TypeBinding.nullAnnotatedReadableName怎么用?Java TypeBinding.nullAnnotatedReadableName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.eclipse.jdt.internal.compiler.lookup.TypeBinding
的用法示例。
在下文中一共展示了TypeBinding.nullAnnotatedReadableName方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: nullityMismatchIsNull
import org.eclipse.jdt.internal.compiler.lookup.TypeBinding; //导入方法依赖的package包/类
public void nullityMismatchIsNull(Expression expression, TypeBinding requiredType) {
int problemId = IProblem.RequiredNonNullButProvidedNull;
boolean below18 = this.options.sourceLevel < ClassFileConstants.JDK1_8;
if (!below18 && requiredType.isTypeVariable() && !requiredType.hasNullTypeAnnotations())
problemId = IProblem.NullNotCompatibleToFreeTypeVariable;
if (requiredType instanceof CaptureBinding) {
CaptureBinding capture = (CaptureBinding) requiredType;
if (capture.wildcard != null)
requiredType = capture.wildcard;
}
String[] arguments;
String[] argumentsShort;
if (below18) {
arguments = new String[] { annotatedTypeName(requiredType, this.options.nonNullAnnotationName) };
argumentsShort = new String[] { shortAnnotatedTypeName(requiredType, this.options.nonNullAnnotationName) };
} else {
if (problemId == IProblem.NullNotCompatibleToFreeTypeVariable) {
arguments = new String[] { new String(requiredType.sourceName()) }; // don't show any bounds
argumentsShort = new String[] { new String(requiredType.sourceName()) };
} else {
arguments = new String[] { new String(requiredType.nullAnnotatedReadableName(this.options, false)) };
argumentsShort = new String[] { new String(requiredType.nullAnnotatedReadableName(this.options, true)) };
}
}
this.handle(problemId, arguments, argumentsShort, expression.sourceStart, expression.sourceEnd);
}
示例2: typeMismatchError
import org.eclipse.jdt.internal.compiler.lookup.TypeBinding; //导入方法依赖的package包/类
public void typeMismatchError(TypeBinding actualType, TypeBinding expectedType, ASTNode location, ASTNode expectingLocation) {
if (this.options.sourceLevel < ClassFileConstants.JDK1_5) { // don't expose type variable names, complain on erased types
if (actualType instanceof TypeVariableBinding)
actualType = actualType.erasure();
if (expectedType instanceof TypeVariableBinding)
expectedType = expectedType.erasure();
}
if (actualType != null && (actualType.tagBits & TagBits.HasMissingType) != 0) { // improve secondary error
if (location instanceof Annotation) {
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=376977
return; // Already reported, don't report a secondary error
}
this.handle(
IProblem.UndefinedType,
new String[] {new String(actualType.leafComponentType().readableName())},
new String[] {new String(actualType.leafComponentType().shortReadableName())},
location.sourceStart,
location.sourceEnd);
return;
}
if (expectingLocation != null && (expectedType.tagBits & TagBits.HasMissingType) != 0) { // improve secondary error
this.handle(
IProblem.UndefinedType,
new String[] {new String(expectedType.leafComponentType().readableName())},
new String[] {new String(expectedType.leafComponentType().shortReadableName())},
expectingLocation.sourceStart,
expectingLocation.sourceEnd);
return;
}
char[] actualShortReadableName = actualType.shortReadableName();
char[] expectedShortReadableName = expectedType.shortReadableName();
char[] actualReadableName = actualType.readableName();
char[] expectedReadableName = expectedType.readableName();
if (CharOperation.equals(actualShortReadableName, expectedShortReadableName)) {
if (CharOperation.equals(actualReadableName, expectedReadableName)) {
// if full type names are equal, assume the incompatibility is due to mismatching null annotations:
actualReadableName = actualType.nullAnnotatedReadableName(this.options, false);
expectedReadableName = expectedType.nullAnnotatedReadableName(this.options, false);
actualShortReadableName = actualType.nullAnnotatedReadableName(this.options, true);
expectedShortReadableName = expectedType.nullAnnotatedReadableName(this.options, true);
} else {
actualShortReadableName = actualReadableName;
expectedShortReadableName = expectedReadableName;
}
}
this.handle(
expectingLocation instanceof ReturnStatement ? IProblem.ReturnTypeMismatch : IProblem.TypeMismatch,
new String[] {new String(actualReadableName), new String(expectedReadableName)},
new String[] {new String(actualShortReadableName), new String(expectedShortReadableName)},
location.sourceStart,
location.sourceEnd);
}
示例3: nullityMismatchingTypeAnnotation
import org.eclipse.jdt.internal.compiler.lookup.TypeBinding; //导入方法依赖的package包/类
public void nullityMismatchingTypeAnnotation(Expression expression, TypeBinding providedType, TypeBinding requiredType, NullAnnotationMatching status)
{
if (providedType.id == TypeIds.T_null) {
nullityMismatchIsNull(expression, requiredType);
return;
}
String[] arguments ;
String[] shortArguments;
int problemId = 0;
String superHint = null;
String superHintShort = null;
if (status.superTypeHint != null) {
problemId = (status.isUnchecked()
? IProblem.NullityUncheckedTypeAnnotationDetailSuperHint
: IProblem.NullityMismatchingTypeAnnotationSuperHint);
superHint = status.superTypeHintName(this.options, false);
superHintShort = status.superTypeHintName(this.options, true);
} else {
problemId = (status.isUnchecked()
? IProblem.NullityUncheckedTypeAnnotationDetail
: (requiredType.isTypeVariable() && !requiredType.hasNullTypeAnnotations())
? IProblem.NullityMismatchAgainstFreeTypeVariable
: IProblem.NullityMismatchingTypeAnnotation);
if (problemId == IProblem.NullityMismatchAgainstFreeTypeVariable) {
arguments = new String[] { null, null, new String(requiredType.sourceName()) }; // don't show bounds here
shortArguments = new String[] { null, null, new String(requiredType.sourceName()) };
} else {
arguments = new String[2];
shortArguments = new String[2];
}
}
String requiredName;
String requiredNameShort;
if (problemId == IProblem.NullityMismatchAgainstFreeTypeVariable) {
requiredName = new String(requiredType.sourceName()); // don't show bounds here
requiredNameShort = new String(requiredType.sourceName()); // don't show bounds here
} else {
requiredName = new String(requiredType.nullAnnotatedReadableName(this.options, false));
requiredNameShort = new String(requiredType.nullAnnotatedReadableName(this.options, true));
}
String providedName = String.valueOf(providedType.nullAnnotatedReadableName(this.options, false));
String providedNameShort = String.valueOf(providedType.nullAnnotatedReadableName(this.options, true));
// assemble arguments:
if (superHint != null) {
arguments = new String[] { requiredName, providedName, superHint };
shortArguments = new String[] { requiredNameShort, providedNameShort, superHintShort };
} else {
arguments = new String[] { requiredName, providedName };
shortArguments = new String[] { requiredNameShort, providedNameShort };
}
this.handle(problemId, arguments, shortArguments, expression.sourceStart, expression.sourceEnd);
}