Java 类org.eclipse.jdt.internal.compiler.ast.Wildcard 实例源码
项目:lombok-ianchiu
文件:EclipseSingularsRecipes.java
protected TypeReference cloneParamType(int index, List<TypeReference> typeArgs, EclipseNode builderType) {
if (typeArgs != null && typeArgs.size() > index) {
TypeReference originalType = typeArgs.get(index);
if (originalType instanceof Wildcard) {
Wildcard wOriginalType = (Wildcard) originalType;
if (wOriginalType.kind == Wildcard.EXTENDS) {
try {
return copyType(wOriginalType.bound);
} catch (Exception e) {
// fallthrough
}
}
} else {
return copyType(originalType);
}
}
return new QualifiedTypeReference(TypeConstants.JAVA_LANG_OBJECT, NULL_POSS);
}
项目:EasyMPermission
文件:EclipseSingularsRecipes.java
protected TypeReference cloneParamType(int index, List<TypeReference> typeArgs, EclipseNode builderType) {
if (typeArgs != null && typeArgs.size() > index) {
TypeReference originalType = typeArgs.get(index);
if (originalType instanceof Wildcard) {
Wildcard wOriginalType = (Wildcard) originalType;
if (wOriginalType.kind == Wildcard.EXTENDS) {
try {
return copyType(wOriginalType.bound);
} catch (Exception e) {
// fallthrough
}
}
} else {
return copyType(originalType);
}
}
return new QualifiedTypeReference(TypeConstants.JAVA_LANG_OBJECT, NULL_POSS);
}
项目:Eclipse-Postfix-Code-Completion
文件:CodeFormatterVisitor.java
public boolean visit(Wildcard wildcard, BlockScope scope) {
if (wildcard.annotations != null) {
if (formatInlineAnnotations(wildcard.annotations[0], false)) this.scribe.space();
}
this.scribe.printNextToken(TerminalTokens.TokenNameQUESTION, this.preferences.insert_space_before_question_in_wilcard);
switch(wildcard.kind) {
case Wildcard.SUPER :
this.scribe.printNextToken(TerminalTokens.TokenNamesuper, true);
this.scribe.space();
wildcard.bound.traverse(this, scope);
break;
case Wildcard.EXTENDS :
this.scribe.printNextToken(TerminalTokens.TokenNameextends, true);
this.scribe.space();
wildcard.bound.traverse(this, scope);
break;
case Wildcard.UNBOUND :
if (this.preferences.insert_space_after_question_in_wilcard) {
this.scribe.space();
}
}
return false;
}
项目:Eclipse-Postfix-Code-Completion
文件:CodeFormatterVisitor.java
public boolean visit(Wildcard wildcard, ClassScope scope) {
if (wildcard.annotations != null) {
if (formatInlineAnnotations(wildcard.annotations[0], false)) this.scribe.space();
}
this.scribe.printNextToken(TerminalTokens.TokenNameQUESTION, this.preferences.insert_space_before_question_in_wilcard);
switch(wildcard.kind) {
case Wildcard.SUPER :
this.scribe.printNextToken(TerminalTokens.TokenNamesuper, true);
this.scribe.space();
wildcard.bound.traverse(this, scope);
break;
case Wildcard.EXTENDS :
this.scribe.printNextToken(TerminalTokens.TokenNameextends, true);
this.scribe.space();
wildcard.bound.traverse(this, scope);
break;
case Wildcard.UNBOUND :
if (this.preferences.insert_space_after_question_in_wilcard) {
this.scribe.space();
}
}
return false;
}
项目:Eclipse-Postfix-Code-Completion
文件:KeyToSignature.java
public void consumeWildCard(int wildCardKind) {
// don't put generic type in signature
this.signature = new StringBuffer();
switch (wildCardKind) {
case Wildcard.UNBOUND:
this.signature.append('*');
break;
case Wildcard.EXTENDS:
this.signature.append('+');
this.signature.append(((KeyToSignature) this.arguments.get(0)).signature);
break;
case Wildcard.SUPER:
this.signature.append('-');
this.signature.append(((KeyToSignature) this.arguments.get(0)).signature);
break;
default:
// malformed
return;
}
}
项目:Eclipse-Postfix-Code-Completion
文件:BindingKeyResolver.java
public void consumeWildCard(int kind) {
switch (kind) {
case Wildcard.EXTENDS:
case Wildcard.SUPER:
BindingKeyResolver boundResolver = (BindingKeyResolver) this.types.get(0);
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=157847, do not allow creation of
// internally inconsistent wildcards of the form '? super <null>' or '? extends <null>'
final Binding boundBinding = boundResolver.compilerBinding;
if (boundBinding instanceof TypeBinding) {
this.typeBinding = this.environment.createWildcard((ReferenceBinding) this.typeBinding, this.wildcardRank, (TypeBinding) boundBinding, null /*no extra bound*/, kind);
} else {
this.typeBinding = null;
}
break;
case Wildcard.UNBOUND:
this.typeBinding = this.environment.createWildcard((ReferenceBinding) this.typeBinding, this.wildcardRank, null/*no bound*/, null /*no extra bound*/, kind);
break;
}
}
项目:Eclipse-Postfix-Code-Completion
文件:Parser.java
protected void annotateTypeReference(Wildcard ref) {
int length;
if ((length = this.typeAnnotationLengthStack[this.typeAnnotationLengthPtr--]) != 0) {
if (ref.annotations == null)
ref.annotations = new Annotation[ref.getAnnotatableLevels()][];
System.arraycopy(
this.typeAnnotationStack,
(this.typeAnnotationPtr -= length) + 1,
ref.annotations[0] = new Annotation[length],
0,
length);
if (ref.sourceStart > ref.annotations[0][0].sourceStart) {
ref.sourceStart = ref.annotations[0][0].sourceStart;
}
ref.bits |= ASTNode.HasTypeAnnotations;
}
if (ref.bound != null) {
ref.bits |= (ref.bound.bits & ASTNode.HasTypeAnnotations);
}
}
项目:Eclipse-Postfix-Code-Completion
文件:ParameterizedMethodBinding.java
/**
* The type of x.getClass() is substituted from 'Class<? extends Object>' into: 'Class<? extends raw(X)>
*/
public static ParameterizedMethodBinding instantiateGetClass(TypeBinding receiverType, MethodBinding originalMethod, Scope scope) {
ParameterizedMethodBinding method = new ParameterizedMethodBinding();
method.modifiers = originalMethod.modifiers;
method.selector = originalMethod.selector;
method.declaringClass = originalMethod.declaringClass;
method.typeVariables = Binding.NO_TYPE_VARIABLES;
method.originalMethod = originalMethod;
method.parameters = originalMethod.parameters;
method.thrownExceptions = originalMethod.thrownExceptions;
method.tagBits = originalMethod.tagBits;
ReferenceBinding genericClassType = scope.getJavaLangClass();
LookupEnvironment environment = scope.environment();
TypeBinding rawType = environment.convertToRawType(receiverType.erasure(), false /*do not force conversion of enclosing types*/);
method.returnType = environment.createParameterizedType(
genericClassType,
new TypeBinding[] { environment.createWildcard(genericClassType, 0, rawType, null /*no extra bound*/, Wildcard.EXTENDS) },
null);
if ((method.returnType.tagBits & TagBits.HasMissingType) != 0) {
method.tagBits |= TagBits.HasMissingType;
}
return method;
}
项目:Eclipse-Postfix-Code-Completion
文件:WildcardBinding.java
/**
* Returns true if the argument type satisfies the wildcard bound(s)
*/
public boolean boundCheck(TypeBinding argumentType) {
switch (this.boundKind) {
case Wildcard.UNBOUND :
return true;
case Wildcard.EXTENDS :
if (!argumentType.isCompatibleWith(this.bound)) return false;
// check other bounds (lub scenario)
for (int i = 0, length = this.otherBounds == null ? 0 : this.otherBounds.length; i < length; i++) {
if (!argumentType.isCompatibleWith(this.otherBounds[i])) return false;
}
return true;
default: // SUPER
// ? super Exception ok for: IOException, since it would be ok for (Exception)ioException
return argumentType.isCompatibleWith(this.bound);
}
}
项目:Eclipse-Postfix-Code-Completion
文件:WildcardBinding.java
public char[] computeUniqueKey(boolean isLeaf) {
char[] genericTypeKey = this.genericType.computeUniqueKey(false/*not a leaf*/);
char[] wildCardKey;
// We now encode the rank also in the binding key - https://bugs.eclipse.org/bugs/show_bug.cgi?id=234609
char[] rankComponent = ('{' + String.valueOf(this.rank) + '}').toCharArray();
switch (this.boundKind) {
case Wildcard.UNBOUND :
wildCardKey = TypeConstants.WILDCARD_STAR;
break;
case Wildcard.EXTENDS :
wildCardKey = CharOperation.concat(TypeConstants.WILDCARD_PLUS, this.bound.computeUniqueKey(false/*not a leaf*/));
break;
default: // SUPER
wildCardKey = CharOperation.concat(TypeConstants.WILDCARD_MINUS, this.bound.computeUniqueKey(false/*not a leaf*/));
break;
}
return CharOperation.concat(genericTypeKey, rankComponent, wildCardKey);
}
项目:Eclipse-Postfix-Code-Completion
文件:WildcardBinding.java
public String annotatedDebugName() {
StringBuffer buffer = new StringBuffer(16);
AnnotationBinding [] annotations = getTypeAnnotations();
for (int i = 0, length = annotations == null ? 0 : annotations.length; i < length; i++) {
buffer.append(annotations[i]);
buffer.append(' ');
}
switch (this.boundKind) {
case Wildcard.UNBOUND :
return buffer.append(TypeConstants.WILDCARD_NAME).toString();
case Wildcard.EXTENDS :
if (this.otherBounds == null)
return buffer.append(CharOperation.concat(TypeConstants.WILDCARD_NAME, TypeConstants.WILDCARD_EXTENDS, this.bound.annotatedDebugName().toCharArray())).toString();
buffer.append(this.bound.annotatedDebugName());
for (int i = 0, length = this.otherBounds.length; i < length; i++) {
buffer.append(" & ").append(this.otherBounds[i].annotatedDebugName()); //$NON-NLS-1$
}
return buffer.toString();
default: // SUPER
return buffer.append(CharOperation.concat(TypeConstants.WILDCARD_NAME, TypeConstants.WILDCARD_SUPER, this.bound.annotatedDebugName().toCharArray())).toString();
}
}
项目:Eclipse-Postfix-Code-Completion
文件:WildcardBinding.java
public ReferenceBinding superclass() {
if (this.superclass == null) {
TypeBinding superType = null;
if (this.boundKind == Wildcard.EXTENDS && !this.bound.isInterface()) {
superType = this.bound;
} else {
TypeVariableBinding variable = typeVariable();
if (variable != null) superType = variable.firstBound;
}
this.superclass = superType instanceof ReferenceBinding && !superType.isInterface()
? (ReferenceBinding) superType
: this.environment.getResolvedType(TypeConstants.JAVA_LANG_OBJECT, null);
}
return this.superclass;
}
项目:Eclipse-Postfix-Code-Completion
文件:WildcardBinding.java
/**
* @see java.lang.Object#toString()
*/
public String toString() {
if (this.hasTypeAnnotations())
return annotatedDebugName();
switch (this.boundKind) {
case Wildcard.UNBOUND :
return new String(TypeConstants.WILDCARD_NAME);
case Wildcard.EXTENDS :
if (this.otherBounds == null)
return new String(CharOperation.concat(TypeConstants.WILDCARD_NAME, TypeConstants.WILDCARD_EXTENDS, this.bound.debugName().toCharArray()));
StringBuffer buffer = new StringBuffer(this.bound.debugName());
for (int i = 0, length = this.otherBounds.length; i < length; i++) {
buffer.append('&').append(this.otherBounds[i].debugName());
}
return buffer.toString();
default: // SUPER
return new String(CharOperation.concat(TypeConstants.WILDCARD_NAME, TypeConstants.WILDCARD_SUPER, this.bound.debugName().toCharArray()));
}
}
项目:Eclipse-Postfix-Code-Completion-Juno38
文件:CodeFormatterVisitor.java
public boolean visit(Wildcard wildcard, BlockScope scope) {
this.scribe.printNextToken(TerminalTokens.TokenNameQUESTION, this.preferences.insert_space_before_question_in_wilcard);
switch(wildcard.kind) {
case Wildcard.SUPER :
this.scribe.printNextToken(TerminalTokens.TokenNamesuper, true);
this.scribe.space();
wildcard.bound.traverse(this, scope);
break;
case Wildcard.EXTENDS :
this.scribe.printNextToken(TerminalTokens.TokenNameextends, true);
this.scribe.space();
wildcard.bound.traverse(this, scope);
break;
case Wildcard.UNBOUND :
if (this.preferences.insert_space_after_question_in_wilcard) {
this.scribe.space();
}
}
return false;
}
项目:Eclipse-Postfix-Code-Completion-Juno38
文件:CodeFormatterVisitor.java
public boolean visit(Wildcard wildcard, ClassScope scope) {
this.scribe.printNextToken(TerminalTokens.TokenNameQUESTION, this.preferences.insert_space_before_question_in_wilcard);
switch(wildcard.kind) {
case Wildcard.SUPER :
this.scribe.printNextToken(TerminalTokens.TokenNamesuper, true);
this.scribe.space();
wildcard.bound.traverse(this, scope);
break;
case Wildcard.EXTENDS :
this.scribe.printNextToken(TerminalTokens.TokenNameextends, true);
this.scribe.space();
wildcard.bound.traverse(this, scope);
break;
case Wildcard.UNBOUND :
if (this.preferences.insert_space_after_question_in_wilcard) {
this.scribe.space();
}
}
return false;
}
项目:Eclipse-Postfix-Code-Completion-Juno38
文件:KeyToSignature.java
public void consumeWildCard(int wildCardKind) {
// don't put generic type in signature
this.signature = new StringBuffer();
switch (wildCardKind) {
case Wildcard.UNBOUND:
this.signature.append('*');
break;
case Wildcard.EXTENDS:
this.signature.append('+');
this.signature.append(((KeyToSignature) this.arguments.get(0)).signature);
break;
case Wildcard.SUPER:
this.signature.append('-');
this.signature.append(((KeyToSignature) this.arguments.get(0)).signature);
break;
default:
// malformed
return;
}
}
项目:Eclipse-Postfix-Code-Completion-Juno38
文件:BindingKeyResolver.java
public void consumeWildCard(int kind) {
switch (kind) {
case Wildcard.EXTENDS:
case Wildcard.SUPER:
BindingKeyResolver boundResolver = (BindingKeyResolver) this.types.get(0);
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=157847, do not allow creation of
// internally inconsistent wildcards of the form '? super <null>' or '? extends <null>'
final Binding boundBinding = boundResolver.compilerBinding;
if (boundBinding instanceof TypeBinding) {
this.typeBinding = this.environment.createWildcard((ReferenceBinding) this.typeBinding, this.wildcardRank, (TypeBinding) boundBinding, null /*no extra bound*/, kind);
} else {
this.typeBinding = null;
}
break;
case Wildcard.UNBOUND:
this.typeBinding = this.environment.createWildcard((ReferenceBinding) this.typeBinding, this.wildcardRank, null/*no bound*/, null /*no extra bound*/, kind);
break;
}
}
项目:Eclipse-Postfix-Code-Completion-Juno38
文件:ParameterizedMethodBinding.java
/**
* The type of x.getClass() is substituted from 'Class<? extends Object>' into: 'Class<? extends raw(X)>
*/
public static ParameterizedMethodBinding instantiateGetClass(TypeBinding receiverType, MethodBinding originalMethod, Scope scope) {
ParameterizedMethodBinding method = new ParameterizedMethodBinding();
method.modifiers = originalMethod.modifiers;
method.selector = originalMethod.selector;
method.declaringClass = originalMethod.declaringClass;
method.typeVariables = Binding.NO_TYPE_VARIABLES;
method.originalMethod = originalMethod;
method.parameters = originalMethod.parameters;
method.thrownExceptions = originalMethod.thrownExceptions;
method.tagBits = originalMethod.tagBits;
ReferenceBinding genericClassType = scope.getJavaLangClass();
LookupEnvironment environment = scope.environment();
TypeBinding rawType = environment.convertToRawType(receiverType.erasure(), false /*do not force conversion of enclosing types*/);
method.returnType = environment.createParameterizedType(
genericClassType,
new TypeBinding[] { environment.createWildcard(genericClassType, 0, rawType, null /*no extra bound*/, Wildcard.EXTENDS) },
null);
if ((method.returnType.tagBits & TagBits.HasMissingType) != 0) {
method.tagBits |= TagBits.HasMissingType;
}
return method;
}
项目:Eclipse-Postfix-Code-Completion-Juno38
文件:WildcardBinding.java
/**
* Returns true if the argument type satisfies the wildcard bound(s)
*/
public boolean boundCheck(TypeBinding argumentType) {
switch (this.boundKind) {
case Wildcard.UNBOUND :
return true;
case Wildcard.EXTENDS :
if (!argumentType.isCompatibleWith(this.bound)) return false;
// check other bounds (lub scenario)
for (int i = 0, length = this.otherBounds == null ? 0 : this.otherBounds.length; i < length; i++) {
if (!argumentType.isCompatibleWith(this.otherBounds[i])) return false;
}
return true;
default: // SUPER
// ? super Exception ok for: IOException, since it would be ok for (Exception)ioException
return argumentType.isCompatibleWith(this.bound);
}
}
项目:Eclipse-Postfix-Code-Completion-Juno38
文件:WildcardBinding.java
public char[] computeUniqueKey(boolean isLeaf) {
char[] genericTypeKey = this.genericType.computeUniqueKey(false/*not a leaf*/);
char[] wildCardKey;
// We now encode the rank also in the binding key - https://bugs.eclipse.org/bugs/show_bug.cgi?id=234609
char[] rankComponent = ('{' + String.valueOf(this.rank) + '}').toCharArray();
switch (this.boundKind) {
case Wildcard.UNBOUND :
wildCardKey = TypeConstants.WILDCARD_STAR;
break;
case Wildcard.EXTENDS :
wildCardKey = CharOperation.concat(TypeConstants.WILDCARD_PLUS, this.bound.computeUniqueKey(false/*not a leaf*/));
break;
default: // SUPER
wildCardKey = CharOperation.concat(TypeConstants.WILDCARD_MINUS, this.bound.computeUniqueKey(false/*not a leaf*/));
break;
}
return CharOperation.concat(genericTypeKey, rankComponent, wildCardKey);
}
项目:Eclipse-Postfix-Code-Completion-Juno38
文件:WildcardBinding.java
public ReferenceBinding superclass() {
if (this.superclass == null) {
TypeBinding superType = null;
if (this.boundKind == Wildcard.EXTENDS && !this.bound.isInterface()) {
superType = this.bound;
} else {
TypeVariableBinding variable = typeVariable();
if (variable != null) superType = variable.firstBound;
}
this.superclass = superType instanceof ReferenceBinding && !superType.isInterface()
? (ReferenceBinding) superType
: this.environment.getResolvedType(TypeConstants.JAVA_LANG_OBJECT, null);
}
return this.superclass;
}
项目:Eclipse-Postfix-Code-Completion-Juno38
文件:WildcardBinding.java
/**
* @see java.lang.Object#toString()
*/
public String toString() {
switch (this.boundKind) {
case Wildcard.UNBOUND :
return new String(TypeConstants.WILDCARD_NAME);
case Wildcard.EXTENDS :
if (this.otherBounds == null)
return new String(CharOperation.concat(TypeConstants.WILDCARD_NAME, TypeConstants.WILDCARD_EXTENDS, this.bound.debugName().toCharArray()));
StringBuffer buffer = new StringBuffer(this.bound.debugName());
for (int i = 0, length = this.otherBounds.length; i < length; i++) {
buffer.append('&').append(this.otherBounds[i].debugName());
}
return buffer.toString();
default: // SUPER
return new String(CharOperation.concat(TypeConstants.WILDCARD_NAME, TypeConstants.WILDCARD_SUPER, this.bound.debugName().toCharArray()));
}
}
项目:Eclipse-Postfix-Code-Completion
文件:WildcardTypeImpl.java
@Override
public TypeMirror getExtendsBound() {
WildcardBinding wildcardBinding = (WildcardBinding) this._binding;
if (wildcardBinding.boundKind != Wildcard.EXTENDS) return null;
TypeBinding bound = wildcardBinding.bound;
if (bound == null) return null;
return _env.getFactory().newTypeMirror(bound);
}
项目:Eclipse-Postfix-Code-Completion
文件:WildcardTypeImpl.java
@Override
public TypeMirror getSuperBound() {
WildcardBinding wildcardBinding = (WildcardBinding) this._binding;
if (wildcardBinding.boundKind != Wildcard.SUPER) return null;
TypeBinding bound = wildcardBinding.bound;
if (bound == null) return null;
return _env.getFactory().newTypeMirror(bound);
}
项目:Eclipse-Postfix-Code-Completion
文件:CompletionOnReferenceExpressionName.java
@Override
public TypeBinding resolveType(BlockScope scope) {
final CompilerOptions compilerOptions = scope.compilerOptions();
TypeBinding lhsType;
boolean typeArgumentsHaveErrors;
this.constant = Constant.NotAConstant;
lhsType = this.lhs.resolveType(scope);
if (this.typeArguments != null) {
int length = this.typeArguments.length;
typeArgumentsHaveErrors = compilerOptions.sourceLevel < ClassFileConstants.JDK1_5;
this.resolvedTypeArguments = new TypeBinding[length];
for (int i = 0; i < length; i++) {
TypeReference typeReference = this.typeArguments[i];
if ((this.resolvedTypeArguments[i] = typeReference.resolveType(scope, true /* check bounds*/)) == null) {
typeArgumentsHaveErrors = true;
}
if (typeArgumentsHaveErrors && typeReference instanceof Wildcard) { // resolveType on wildcard always return null above, resolveTypeArgument is the real workhorse.
scope.problemReporter().illegalUsageOfWildcard(typeReference);
}
}
if (typeArgumentsHaveErrors || lhsType == null)
throw new CompletionNodeFound();
}
if (lhsType != null && lhsType.isValidBinding())
throw new CompletionNodeFound(this, lhsType, scope);
throw new CompletionNodeFound();
}
项目:Eclipse-Postfix-Code-Completion
文件:BindingKeyParser.java
private void parseWildcard() {
parseWildcardRank();
if (this.scanner.nextToken() != Scanner.WILDCARD) return;
char[] source = this.scanner.getTokenSource();
if (source.length == 0) {
malformedKey();
return;
}
int kind = -1;
switch (source[0]) {
case '*':
kind = Wildcard.UNBOUND;
break;
case '+':
kind = Wildcard.EXTENDS;
break;
case '-':
kind = Wildcard.SUPER;
break;
}
if (kind == -1) {
malformedKey();
return;
}
if (kind != Wildcard.UNBOUND)
parseWildcardBound();
consumeWildCard(kind);
}
项目:Eclipse-Postfix-Code-Completion
文件:TypeBinding.java
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;
}
项目:Eclipse-Postfix-Code-Completion
文件:Parser.java
protected void consumeWildcard() {
final Wildcard wildcard = new Wildcard(Wildcard.UNBOUND);
wildcard.sourceEnd = this.intStack[this.intPtr--];
wildcard.sourceStart = this.intStack[this.intPtr--];
annotateTypeReference(wildcard);
pushOnGenericsStack(wildcard);
}
项目:Eclipse-Postfix-Code-Completion
文件:Parser.java
protected void consumeWildcard1() {
final Wildcard wildcard = new Wildcard(Wildcard.UNBOUND);
wildcard.sourceEnd = this.intStack[this.intPtr--];
wildcard.sourceStart = this.intStack[this.intPtr--];
annotateTypeReference(wildcard);
pushOnGenericsStack(wildcard);
}
项目:Eclipse-Postfix-Code-Completion
文件:Parser.java
protected void consumeWildcard2() {
final Wildcard wildcard = new Wildcard(Wildcard.UNBOUND);
wildcard.sourceEnd = this.intStack[this.intPtr--];
wildcard.sourceStart = this.intStack[this.intPtr--];
annotateTypeReference(wildcard);
pushOnGenericsStack(wildcard);
}
项目:Eclipse-Postfix-Code-Completion
文件:Parser.java
protected void consumeWildcard3() {
final Wildcard wildcard = new Wildcard(Wildcard.UNBOUND);
wildcard.sourceEnd = this.intStack[this.intPtr--];
wildcard.sourceStart = this.intStack[this.intPtr--];
annotateTypeReference(wildcard);
pushOnGenericsStack(wildcard);
}
项目:Eclipse-Postfix-Code-Completion
文件:Parser.java
protected void consumeWildcardBounds1Extends() {
Wildcard wildcard = new Wildcard(Wildcard.EXTENDS);
wildcard.bound = (TypeReference) this.genericsStack[this.genericsPtr];
wildcard.sourceEnd = wildcard.bound.sourceEnd;
this.intPtr--; // remove end position of the '?'
wildcard.sourceStart = this.intStack[this.intPtr--];
annotateTypeReference(wildcard);
this.genericsStack[this.genericsPtr] = wildcard;
}
项目:Eclipse-Postfix-Code-Completion
文件:Parser.java
protected void consumeWildcardBounds1Super() {
Wildcard wildcard = new Wildcard(Wildcard.SUPER);
wildcard.bound = (TypeReference) this.genericsStack[this.genericsPtr];
this.intPtr--; // remove the starting position of the super keyword
wildcard.sourceEnd = wildcard.bound.sourceEnd;
this.intPtr--; // remove end position of the '?'
wildcard.sourceStart = this.intStack[this.intPtr--];
annotateTypeReference(wildcard);
this.genericsStack[this.genericsPtr] = wildcard;
}
项目:Eclipse-Postfix-Code-Completion
文件:Parser.java
protected void consumeWildcardBounds2Extends() {
Wildcard wildcard = new Wildcard(Wildcard.EXTENDS);
wildcard.bound = (TypeReference) this.genericsStack[this.genericsPtr];
wildcard.sourceEnd = wildcard.bound.sourceEnd;
this.intPtr--; // remove end position of the '?'
wildcard.sourceStart = this.intStack[this.intPtr--];
annotateTypeReference(wildcard);
this.genericsStack[this.genericsPtr] = wildcard;
}
项目:Eclipse-Postfix-Code-Completion
文件:Parser.java
protected void consumeWildcardBounds2Super() {
Wildcard wildcard = new Wildcard(Wildcard.SUPER);
wildcard.bound = (TypeReference) this.genericsStack[this.genericsPtr];
this.intPtr--; // remove the starting position of the super keyword
wildcard.sourceEnd = wildcard.bound.sourceEnd;
this.intPtr--; // remove end position of the '?'
wildcard.sourceStart = this.intStack[this.intPtr--];
annotateTypeReference(wildcard);
this.genericsStack[this.genericsPtr] = wildcard;
}
项目:Eclipse-Postfix-Code-Completion
文件:Parser.java
protected void consumeWildcardBounds3Extends() {
Wildcard wildcard = new Wildcard(Wildcard.EXTENDS);
wildcard.bound = (TypeReference) this.genericsStack[this.genericsPtr];
wildcard.sourceEnd = wildcard.bound.sourceEnd;
this.intPtr--; // remove end position of the '?'
wildcard.sourceStart = this.intStack[this.intPtr--];
annotateTypeReference(wildcard);
this.genericsStack[this.genericsPtr] = wildcard;
}
项目:Eclipse-Postfix-Code-Completion
文件:Parser.java
protected void consumeWildcardBounds3Super() {
Wildcard wildcard = new Wildcard(Wildcard.SUPER);
wildcard.bound = (TypeReference) this.genericsStack[this.genericsPtr];
this.intPtr--; // remove the starting position of the super keyword
wildcard.sourceEnd = wildcard.bound.sourceEnd;
this.intPtr--; // remove end position of the '?'
wildcard.sourceStart = this.intStack[this.intPtr--];
annotateTypeReference(wildcard);
this.genericsStack[this.genericsPtr] = wildcard;
}
项目:Eclipse-Postfix-Code-Completion
文件:Parser.java
protected void consumeWildcardBoundsExtends() {
Wildcard wildcard = new Wildcard(Wildcard.EXTENDS);
wildcard.bound = getTypeReference(this.intStack[this.intPtr--]);
wildcard.sourceEnd = wildcard.bound.sourceEnd;
this.intPtr--; // remove end position of the '?'
wildcard.sourceStart = this.intStack[this.intPtr--];
annotateTypeReference(wildcard);
pushOnGenericsStack(wildcard);
}
项目:Eclipse-Postfix-Code-Completion
文件:Parser.java
protected void consumeWildcardBoundsSuper() {
Wildcard wildcard = new Wildcard(Wildcard.SUPER);
wildcard.bound = getTypeReference(this.intStack[this.intPtr--]);
this.intPtr--; // remove the starting position of the super keyword
wildcard.sourceEnd = wildcard.bound.sourceEnd;
this.intPtr--; // remove end position of the '?'
wildcard.sourceStart = this.intStack[this.intPtr--];
annotateTypeReference(wildcard);
pushOnGenericsStack(wildcard);
}
项目:Eclipse-Postfix-Code-Completion
文件:BoundSet.java
void addTypeBoundsFromWildcardBound(InferenceContext18 context, InferenceSubstitution theta, int boundKind, TypeBinding t,
TypeBinding r, TypeBinding bi) throws InferenceFailureException {
ConstraintFormula formula = null;
if (boundKind == Wildcard.EXTENDS) {
if (bi.id == TypeIds.T_JavaLangObject)
formula = ConstraintTypeFormula.create(t, r, ReductionResult.SUBTYPE);
if (t.id == TypeIds.T_JavaLangObject)
formula = ConstraintTypeFormula.create(theta.substitute(theta, bi), r, ReductionResult.SUBTYPE);
} else {
formula = ConstraintTypeFormula.create(theta.substitute(theta, bi), r, ReductionResult.SUBTYPE);
}
if (formula != null)
reduceOneConstraint(context, formula);
}