Java Code Examples for org.eclipse.jdt.internal.compiler.lookup.Binding#WILDCARD_TYPE
The following examples show how to use
org.eclipse.jdt.internal.compiler.lookup.Binding#WILDCARD_TYPE .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: RecoveredTypeBinding.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 6 votes |
public IPackageBinding getPackage() { if (this.binding != null) { switch (this.binding.kind()) { case Binding.BASE_TYPE : case Binding.ARRAY_TYPE : case Binding.TYPE_PARAMETER : // includes capture scenario case Binding.WILDCARD_TYPE : case Binding.INTERSECTION_TYPE: return null; } IPackageBinding packageBinding = this.resolver.getPackageBinding(this.binding.getPackage()); if (packageBinding != null) return packageBinding; } if (this.innerTypeBinding != null && this.dimensions > 0) { return null; } CompilationUnitScope scope = this.resolver.scope(); if (scope != null) { return this.resolver.getPackageBinding(scope.getCurrentPackage()); } return null; }
Example 2
Source File: ASTNode.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 6 votes |
private static int checkInvocationArgument(BlockScope scope, Expression argument, TypeBinding parameterType, TypeBinding argumentType, TypeBinding originalParameterType) { argument.computeConversion(scope, parameterType, argumentType); if (argumentType != TypeBinding.NULL && parameterType.kind() == Binding.WILDCARD_TYPE) { // intersection types are tolerated WildcardBinding wildcard = (WildcardBinding) parameterType; if (wildcard.boundKind != Wildcard.SUPER) { return INVOCATION_ARGUMENT_WILDCARD; } } TypeBinding checkedParameterType = parameterType; // originalParameterType == null ? parameterType : originalParameterType; if (TypeBinding.notEquals(argumentType, checkedParameterType) && argumentType.needsUncheckedConversion(checkedParameterType)) { scope.problemReporter().unsafeTypeConversion(argument, argumentType, checkedParameterType); return INVOCATION_ARGUMENT_UNCHECKED; } return INVOCATION_ARGUMENT_OK; }
Example 3
Source File: Factory.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 5 votes |
/** * Create a new element that knows what kind it is even if the binding is unresolved. */ public Element newElement(Binding binding, ElementKind kindHint) { if (binding == null) return null; switch (binding.kind()) { case Binding.FIELD: case Binding.LOCAL: case Binding.VARIABLE: return new VariableElementImpl(_env, (VariableBinding) binding); case Binding.TYPE: case Binding.GENERIC_TYPE: ReferenceBinding referenceBinding = (ReferenceBinding)binding; if ((referenceBinding.tagBits & TagBits.HasMissingType) != 0) { return new ErrorTypeElement(this._env, referenceBinding); } if (CharOperation.equals(referenceBinding.sourceName, TypeConstants.PACKAGE_INFO_NAME)) { return new PackageElementImpl(_env, referenceBinding.fPackage); } return new TypeElementImpl(_env, referenceBinding, kindHint); case Binding.METHOD: return new ExecutableElementImpl(_env, (MethodBinding)binding); case Binding.RAW_TYPE: case Binding.PARAMETERIZED_TYPE: return new TypeElementImpl(_env, ((ParameterizedTypeBinding)binding).genericType(), kindHint); case Binding.PACKAGE: return new PackageElementImpl(_env, (PackageBinding)binding); case Binding.TYPE_PARAMETER: return new TypeParameterElementImpl(_env, (TypeVariableBinding)binding); // TODO: fill in the rest of these case Binding.IMPORT: case Binding.ARRAY_TYPE: case Binding.BASE_TYPE: case Binding.WILDCARD_TYPE: case Binding.INTERSECTION_TYPE: throw new UnsupportedOperationException("NYI: binding type " + binding.kind()); //$NON-NLS-1$ } return null; }
Example 4
Source File: TypeBinding.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 5 votes |
public ITypeBinding getBound() { switch (this.binding.kind()) { case Binding.WILDCARD_TYPE : case Binding.INTERSECTION_TYPE : WildcardBinding wildcardBinding = (WildcardBinding) this.binding; if (wildcardBinding.bound != null) { return this.resolver.getTypeBinding(wildcardBinding.bound); } break; } return null; }
Example 5
Source File: TypeBinding.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 5 votes |
public ITypeBinding getGenericTypeOfWildcardType() { switch (this.binding.kind()) { case Binding.WILDCARD_TYPE : WildcardBinding wildcardBinding = (WildcardBinding) this.binding; if (wildcardBinding.genericType != null) { return this.resolver.getTypeBinding(wildcardBinding.genericType); } break; } return null; }
Example 6
Source File: TypeBinding.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 5 votes |
public int getRank() { switch (this.binding.kind()) { case Binding.WILDCARD_TYPE : case Binding.INTERSECTION_TYPE : WildcardBinding wildcardBinding = (WildcardBinding) this.binding; return wildcardBinding.rank; default: return -1; } }
Example 7
Source File: TypeBinding.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 5 votes |
public IPackageBinding getPackage() { switch (this.binding.kind()) { case Binding.BASE_TYPE : case Binding.ARRAY_TYPE : case Binding.TYPE_PARAMETER : // includes capture scenario case Binding.WILDCARD_TYPE : case Binding.INTERSECTION_TYPE: case Binding.INTERSECTION_CAST_TYPE: return null; } ReferenceBinding referenceBinding = (ReferenceBinding) this.binding; return this.resolver.getPackageBinding(referenceBinding.getPackage()); }
Example 8
Source File: TypeBinding.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 5 votes |
public boolean isClass() { switch (this.binding.kind()) { case Binding.TYPE_PARAMETER : case Binding.WILDCARD_TYPE : case Binding.INTERSECTION_TYPE : return false; } return this.binding.isClass(); }
Example 9
Source File: TypeBinding.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 5 votes |
public boolean isInterface() { switch (this.binding.kind()) { case Binding.TYPE_PARAMETER : case Binding.WILDCARD_TYPE : case Binding.INTERSECTION_TYPE : return false; } return this.binding.isInterface(); }
Example 10
Source File: TypeBinding.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 5 votes |
public boolean isUpperbound() { switch (this.binding.kind()) { case Binding.WILDCARD_TYPE : return ((WildcardBinding) this.binding).boundKind == Wildcard.EXTENDS; case Binding.INTERSECTION_TYPE : return true; } return false; }
Example 11
Source File: Factory.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 4 votes |
/** * Given a binding of uncertain type, try to create the right sort of TypeMirror for it. */ public TypeMirror newTypeMirror(Binding binding) { switch (binding.kind()) { case Binding.FIELD: case Binding.LOCAL: case Binding.VARIABLE: // For variables, return the type of the variable return newTypeMirror(((VariableBinding)binding).type); case Binding.PACKAGE: return getNoType(TypeKind.PACKAGE); case Binding.IMPORT: throw new UnsupportedOperationException("NYI: import type " + binding.kind()); //$NON-NLS-1$ case Binding.METHOD: return new ExecutableTypeImpl(_env, (MethodBinding) binding); case Binding.TYPE: case Binding.RAW_TYPE: case Binding.GENERIC_TYPE: case Binding.PARAMETERIZED_TYPE: ReferenceBinding referenceBinding = (ReferenceBinding) binding; if ((referenceBinding.tagBits & TagBits.HasMissingType) != 0) { return getErrorType(referenceBinding); } return new DeclaredTypeImpl(_env, (ReferenceBinding)binding); case Binding.ARRAY_TYPE: return new ArrayTypeImpl(_env, (ArrayBinding)binding); case Binding.BASE_TYPE: BaseTypeBinding btb = (BaseTypeBinding)binding; switch (btb.id) { case TypeIds.T_void: return getNoType(TypeKind.VOID); case TypeIds.T_null: return getNullType(); default: return getPrimitiveType(btb); } case Binding.WILDCARD_TYPE: case Binding.INTERSECTION_TYPE: // TODO compatible, but shouldn't it really be an intersection type? return new WildcardTypeImpl(_env, (WildcardBinding) binding); case Binding.TYPE_PARAMETER: return new TypeVariableImpl(_env, (TypeVariableBinding) binding); } return null; }
Example 12
Source File: TypeBinding.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 4 votes |
public String getName() { StringBuffer buffer; switch (this.binding.kind()) { case Binding.WILDCARD_TYPE : case Binding.INTERSECTION_TYPE: WildcardBinding wildcardBinding = (WildcardBinding) this.binding; buffer = new StringBuffer(); buffer.append(TypeConstants.WILDCARD_NAME); if (wildcardBinding.bound != null) { switch(wildcardBinding.boundKind) { case Wildcard.SUPER : buffer.append(TypeConstants.WILDCARD_SUPER); break; case Wildcard.EXTENDS : buffer.append(TypeConstants.WILDCARD_EXTENDS); } buffer.append(getBound().getName()); } return String.valueOf(buffer); case Binding.TYPE_PARAMETER : if (isCapture()) { return NO_NAME; } TypeVariableBinding typeVariableBinding = (TypeVariableBinding) this.binding; return new String(typeVariableBinding.sourceName); case Binding.PARAMETERIZED_TYPE : ParameterizedTypeBinding parameterizedTypeBinding = (ParameterizedTypeBinding) this.binding; buffer = new StringBuffer(); buffer.append(parameterizedTypeBinding.sourceName()); ITypeBinding[] tArguments = getTypeArguments(); final int typeArgumentsLength = tArguments.length; if (typeArgumentsLength != 0) { buffer.append('<'); for (int i = 0; i < typeArgumentsLength; i++) { if (i > 0) { buffer.append(','); } buffer.append(tArguments[i].getName()); } buffer.append('>'); } return String.valueOf(buffer); case Binding.RAW_TYPE : return getTypeDeclaration().getName(); case Binding.ARRAY_TYPE : ITypeBinding elementType = getElementType(); if (elementType.isLocal() || elementType.isAnonymous() || elementType.isCapture()) { return NO_NAME; } int dimensions = getDimensions(); char[] brackets = new char[dimensions * 2]; for (int i = dimensions * 2 - 1; i >= 0; i -= 2) { brackets[i] = ']'; brackets[i - 1] = '['; } buffer = new StringBuffer(elementType.getName()); buffer.append(brackets); return String.valueOf(buffer); default : if (isPrimitive() || isNullType()) { BaseTypeBinding baseTypeBinding = (BaseTypeBinding) this.binding; return new String(baseTypeBinding.simpleName); } if (isAnonymous()) { return NO_NAME; } return new String(this.binding.sourceName()); } }