本文整理汇总了Java中org.eclipse.jdt.internal.compiler.lookup.ProblemReferenceBinding类的典型用法代码示例。如果您正苦于以下问题:Java ProblemReferenceBinding类的具体用法?Java ProblemReferenceBinding怎么用?Java ProblemReferenceBinding使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
ProblemReferenceBinding类属于org.eclipse.jdt.internal.compiler.lookup包,在下文中一共展示了ProblemReferenceBinding类的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getTypeBinding
import org.eclipse.jdt.internal.compiler.lookup.ProblemReferenceBinding; //导入依赖的package包/类
protected TypeBinding getTypeBinding(Scope scope) {
// it can be a package, type or member type
Binding binding = scope.getTypeOrPackage(this.tokens);
if (!binding.isValidBinding()) {
// tolerate some error cases
if (binding.problemId() == ProblemReasons.NotVisible){
throw new SelectionNodeFound(binding);
}
if (binding instanceof TypeBinding) {
scope.problemReporter().invalidType(this, (TypeBinding) binding);
} else if (binding instanceof PackageBinding) {
ProblemReferenceBinding problemBinding = new ProblemReferenceBinding(((PackageBinding)binding).compoundName, null, binding.problemId());
scope.problemReporter().invalidType(this, problemBinding);
}
throw new SelectionNodeFound();
}
throw new SelectionNodeFound(binding);
}
开发者ID:trylimits,项目名称:Eclipse-Postfix-Code-Completion,代码行数:22,代码来源:SelectionOnQualifiedTypeReference.java
示例2: resolveType
import org.eclipse.jdt.internal.compiler.lookup.ProblemReferenceBinding; //导入依赖的package包/类
public TypeBinding resolveType(BlockScope scope) {
// it can be a package, type, member type, local variable or field
this.binding = scope.getBinding(this.tokens, this);
if (!this.binding.isValidBinding()) {
if (this.binding instanceof ProblemFieldBinding) {
// tolerate some error cases
if (this.binding.problemId() == ProblemReasons.NotVisible
|| this.binding.problemId() == ProblemReasons.InheritedNameHidesEnclosingName
|| this.binding.problemId() == ProblemReasons.NonStaticReferenceInConstructorInvocation
|| this.binding.problemId() == ProblemReasons.NonStaticReferenceInStaticContext) {
throw new SelectionNodeFound(this.binding);
}
scope.problemReporter().invalidField(this, (FieldBinding) this.binding);
} else if (this.binding instanceof ProblemReferenceBinding || this.binding instanceof MissingTypeBinding) {
// tolerate some error cases
if (this.binding.problemId() == ProblemReasons.NotVisible){
throw new SelectionNodeFound(this.binding);
}
scope.problemReporter().invalidType(this, (TypeBinding) this.binding);
} else {
scope.problemReporter().unresolvableReference(this, this.binding);
}
throw new SelectionNodeFound();
}
throw new SelectionNodeFound(this.binding);
}
开发者ID:trylimits,项目名称:Eclipse-Postfix-Code-Completion,代码行数:27,代码来源:SelectionOnQualifiedNameReference.java
示例3: findClass
import org.eclipse.jdt.internal.compiler.lookup.ProblemReferenceBinding; //导入依赖的package包/类
@Nullable
@Override
public ResolvedClass findClass(@NonNull JavaContext context,
@NonNull String fullyQualifiedName) {
Node compilationUnit = context.getCompilationUnit();
if (compilationUnit == null) {
return null;
}
Object nativeObj = getNativeNode(compilationUnit);
if (!(nativeObj instanceof CompilationUnitDeclaration)) {
return null;
}
CompilationUnitDeclaration ecjUnit = (CompilationUnitDeclaration) nativeObj;
// Convert "foo.bar.Baz" into char[][] 'foo','bar','Baz' as required for
// ECJ name lookup
List<char[]> arrays = Lists.newArrayList();
for (String segment : Splitter.on('.').split(fullyQualifiedName)) {
arrays.add(segment.toCharArray());
}
char[][] compoundName = new char[arrays.size()][];
for (int i = 0, n = arrays.size(); i < n; i++) {
compoundName[i] = arrays.get(i);
}
Binding typeOrPackage = ecjUnit.scope.getTypeOrPackage(compoundName);
if (typeOrPackage instanceof TypeBinding && !(typeOrPackage instanceof ProblemReferenceBinding)) {
return new EcjResolvedClass((TypeBinding)typeOrPackage);
}
return null;
}
示例4: getTypeBinding
import org.eclipse.jdt.internal.compiler.lookup.ProblemReferenceBinding; //导入依赖的package包/类
protected TypeBinding getTypeBinding(Scope scope) {
// it can be a package, type or member type
Binding binding = scope.getTypeOrPackage(new char[][] {this.token});
if (!binding.isValidBinding()) {
if (binding instanceof TypeBinding) {
scope.problemReporter().invalidType(this, (TypeBinding) binding);
} else if (binding instanceof PackageBinding) {
ProblemReferenceBinding problemBinding = new ProblemReferenceBinding(((PackageBinding)binding).compoundName, null, binding.problemId());
scope.problemReporter().invalidType(this, problemBinding);
}
throw new SelectionNodeFound();
}
throw new SelectionNodeFound(binding);
}
开发者ID:trylimits,项目名称:Eclipse-Postfix-Code-Completion,代码行数:15,代码来源:SelectionOnSingleTypeReference.java
示例5: resolveType
import org.eclipse.jdt.internal.compiler.lookup.ProblemReferenceBinding; //导入依赖的package包/类
public TypeBinding resolveType(BlockScope scope) {
if (this.actualReceiverType != null) {
this.binding = scope.getField(this.actualReceiverType, this.token, this);
if (this.binding != null && this.binding.isValidBinding()) {
throw new SelectionNodeFound(this.binding);
}
}
// it can be a package, type, member type, local variable or field
this.binding = scope.getBinding(this.token, Binding.VARIABLE | Binding.TYPE | Binding.PACKAGE, this, true /*resolve*/);
if (!this.binding.isValidBinding()) {
if (this.binding instanceof ProblemFieldBinding) {
// tolerate some error cases
if (this.binding.problemId() == ProblemReasons.NotVisible
|| this.binding.problemId() == ProblemReasons.InheritedNameHidesEnclosingName
|| this.binding.problemId() == ProblemReasons.NonStaticReferenceInConstructorInvocation
|| this.binding.problemId() == ProblemReasons.NonStaticReferenceInStaticContext){
throw new SelectionNodeFound(this.binding);
}
scope.problemReporter().invalidField(this, (FieldBinding) this.binding);
} else if (this.binding instanceof ProblemReferenceBinding || this.binding instanceof MissingTypeBinding) {
// tolerate some error cases
if (this.binding.problemId() == ProblemReasons.NotVisible){
throw new SelectionNodeFound(this.binding);
}
scope.problemReporter().invalidType(this, (TypeBinding) this.binding);
} else {
scope.problemReporter().unresolvableReference(this, this.binding);
}
throw new SelectionNodeFound();
}
throw new SelectionNodeFound(this.binding);
}
开发者ID:trylimits,项目名称:Eclipse-Postfix-Code-Completion,代码行数:34,代码来源:SelectionOnSingleNameReference.java
示例6: resolveSuperType
import org.eclipse.jdt.internal.compiler.lookup.ProblemReferenceBinding; //导入依赖的package包/类
public TypeBinding resolveSuperType(ClassScope scope) {
// assumes the implementation of resolveType(ClassScope) will call back to detect cycles
TypeBinding superType = resolveType(scope);
if (superType == null) return null;
if (superType.isTypeVariable()) {
if (this.resolvedType.isValidBinding()) {
this.resolvedType = new ProblemReferenceBinding(getTypeName(), (ReferenceBinding)this.resolvedType, ProblemReasons.IllegalSuperTypeVariable);
reportInvalidType(scope);
}
return null;
}
return superType;
}
示例7: computeConversion
import org.eclipse.jdt.internal.compiler.lookup.ProblemReferenceBinding; //导入依赖的package包/类
/**
* @see org.eclipse.jdt.internal.compiler.ast.Expression#computeConversion(org.eclipse.jdt.internal.compiler.lookup.Scope, org.eclipse.jdt.internal.compiler.lookup.TypeBinding, org.eclipse.jdt.internal.compiler.lookup.TypeBinding)
*/
public void computeConversion(Scope scope, TypeBinding runtimeTimeType, TypeBinding compileTimeType) {
if (runtimeTimeType == null || compileTimeType == null)
return;
if ((this.bits & Binding.FIELD) != 0 && this.binding != null && this.binding.isValidBinding()) {
// set the generic cast after the fact, once the type expectation is fully known (no need for strict cast)
FieldBinding field = (FieldBinding) this.binding;
FieldBinding originalBinding = field.original();
TypeBinding originalType = originalBinding.type;
// extra cast needed if field type is type variable
if (originalType.leafComponentType().isTypeVariable()) {
TypeBinding targetType = (!compileTimeType.isBaseType() && runtimeTimeType.isBaseType())
? compileTimeType // unboxing: checkcast before conversion
: runtimeTimeType;
this.genericCast = originalType.genericCast(scope.boxing(targetType));
if (this.genericCast instanceof ReferenceBinding) {
ReferenceBinding referenceCast = (ReferenceBinding) this.genericCast;
if (!referenceCast.canBeSeenBy(scope)) {
scope.problemReporter().invalidType(this,
new ProblemReferenceBinding(
CharOperation.splitOn('.', referenceCast.shortReadableName()),
referenceCast,
ProblemReasons.NotVisible));
}
}
}
}
super.computeConversion(scope, runtimeTimeType, compileTimeType);
}
示例8: reportError
import org.eclipse.jdt.internal.compiler.lookup.ProblemReferenceBinding; //导入依赖的package包/类
public TypeBinding reportError(BlockScope scope) {
//=====error cases=======
this.constant = Constant.NotAConstant;
if (this.binding instanceof ProblemFieldBinding) {
scope.problemReporter().invalidField(this, (FieldBinding) this.binding);
} else if (this.binding instanceof ProblemReferenceBinding || this.binding instanceof MissingTypeBinding) {
scope.problemReporter().invalidType(this, (TypeBinding) this.binding);
} else {
scope.problemReporter().unresolvableReference(this, this.binding);
}
return null;
}
示例9: computeConversion
import org.eclipse.jdt.internal.compiler.lookup.ProblemReferenceBinding; //导入依赖的package包/类
/**
* @see org.eclipse.jdt.internal.compiler.ast.Expression#computeConversion(org.eclipse.jdt.internal.compiler.lookup.Scope, org.eclipse.jdt.internal.compiler.lookup.TypeBinding, org.eclipse.jdt.internal.compiler.lookup.TypeBinding)
*/
public void computeConversion(Scope scope, TypeBinding runtimeTimeType, TypeBinding compileTimeType) {
if (runtimeTimeType == null || compileTimeType == null)
return;
// set the generic cast after the fact, once the type expectation is fully known (no need for strict cast)
if (this.binding != null && this.binding.isValidBinding()) {
FieldBinding originalBinding = this.binding.original();
TypeBinding originalType = originalBinding.type;
// extra cast needed if field type is type variable
if (originalType.leafComponentType().isTypeVariable()) {
TypeBinding targetType = (!compileTimeType.isBaseType() && runtimeTimeType.isBaseType())
? compileTimeType // unboxing: checkcast before conversion
: runtimeTimeType;
this.genericCast = originalBinding.type.genericCast(targetType);
if (this.genericCast instanceof ReferenceBinding) {
ReferenceBinding referenceCast = (ReferenceBinding) this.genericCast;
if (!referenceCast.canBeSeenBy(scope)) {
scope.problemReporter().invalidType(this,
new ProblemReferenceBinding(
CharOperation.splitOn('.', referenceCast.shortReadableName()),
referenceCast,
ProblemReasons.NotVisible));
}
}
}
}
super.computeConversion(scope, runtimeTimeType, compileTimeType);
}
示例10: reportError
import org.eclipse.jdt.internal.compiler.lookup.ProblemReferenceBinding; //导入依赖的package包/类
/**
* Normal field binding did not work, try to bind to a field of the delegate receiver.
*/
public TypeBinding reportError(BlockScope scope) {
if (this.binding instanceof ProblemFieldBinding) {
scope.problemReporter().invalidField(this, (FieldBinding) this.binding);
} else if (this.binding instanceof ProblemReferenceBinding || this.binding instanceof MissingTypeBinding) {
scope.problemReporter().invalidType(this, (TypeBinding) this.binding);
} else {
scope.problemReporter().unresolvableReference(this, this.binding);
}
return null;
}
示例11: computeConversion
import org.eclipse.jdt.internal.compiler.lookup.ProblemReferenceBinding; //导入依赖的package包/类
/**
* @see org.eclipse.jdt.internal.compiler.ast.Expression#computeConversion(org.eclipse.jdt.internal.compiler.lookup.Scope, org.eclipse.jdt.internal.compiler.lookup.TypeBinding, org.eclipse.jdt.internal.compiler.lookup.TypeBinding)
*/
public void computeConversion(Scope scope, TypeBinding runtimeTimeType, TypeBinding compileTimeType) {
if (runtimeTimeType == null || compileTimeType == null)
return;
// set the generic cast after the fact, once the type expectation is fully known (no need for strict cast)
if (this.binding != null && this.binding.isValidBinding()) {
MethodBinding originalBinding = this.binding.original();
TypeBinding originalType = originalBinding.returnType;
// extra cast needed if method return type is type variable
if (originalType.leafComponentType().isTypeVariable()) {
TypeBinding targetType = (!compileTimeType.isBaseType() && runtimeTimeType.isBaseType())
? compileTimeType // unboxing: checkcast before conversion
: runtimeTimeType;
this.valueCast = originalType.genericCast(targetType);
} else if (this.binding == scope.environment().arrayClone
&& runtimeTimeType.id != TypeIds.T_JavaLangObject
&& scope.compilerOptions().sourceLevel >= ClassFileConstants.JDK1_5) {
// from 1.5 source level on, array#clone() resolves to array type, but codegen to #clone()Object - thus require extra inserted cast
this.valueCast = runtimeTimeType;
}
if (this.valueCast instanceof ReferenceBinding) {
ReferenceBinding referenceCast = (ReferenceBinding) this.valueCast;
if (!referenceCast.canBeSeenBy(scope)) {
scope.problemReporter().invalidType(this,
new ProblemReferenceBinding(
CharOperation.splitOn('.', referenceCast.shortReadableName()),
referenceCast,
ProblemReasons.NotVisible));
}
}
}
super.computeConversion(scope, runtimeTimeType, compileTimeType);
}