From: jhugunin Date: Fri, 3 Jan 2003 19:13:35 +0000 (+0000) Subject: horrible hack making this a subtype of SourceTypeBinding X-Git-Tag: V_1_1_b5~173 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=3fb52353cc63299ef545acd6540b90da084e35fa;p=aspectj.git horrible hack making this a subtype of SourceTypeBinding --- diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding.java index d7bab4f9e..be7b1c096 100644 --- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding.java +++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding.java @@ -7,6 +7,7 @@ * * Contributors: * IBM Corporation - initial API and implementation + * Palo Alto Research Center, Incorporated - AspectJ adaptation ******************************************************************************/ package org.eclipse.jdt.internal.compiler.lookup; @@ -28,15 +29,15 @@ Non-public fields have accessors which should be used everywhere you expect the null is NOT a valid value for a non-public field... it just means the field is not initialized. */ - -public final class BinaryTypeBinding extends ReferenceBinding { +//XXX extending SourceTypeBinding is a HORRIBLE hack +public final class BinaryTypeBinding extends SourceTypeBinding { // all of these fields are ONLY guaranteed to be initialized if accessed using their public accessor method - private ReferenceBinding superclass; +// private ReferenceBinding superclass; private ReferenceBinding enclosingType; - private ReferenceBinding[] superInterfaces; - private FieldBinding[] fields; - private MethodBinding[] methods; - private ReferenceBinding[] memberTypes; +// private ReferenceBinding[] superInterfaces; +// private FieldBinding[] fields; +// private MethodBinding[] methods; +// private ReferenceBinding[] memberTypes; // For the link with the principle structure private LookupEnvironment environment; @@ -285,7 +286,7 @@ public MethodBinding getExactConstructor(TypeBinding[] argumentTypes) { // NOTE: the return type, arg & exception types of each method of a binary type are resolved when needed // searches up the hierarchy as long as no potential (but not exact) match was found. -public MethodBinding getExactMethod(char[] selector, TypeBinding[] argumentTypes) { +public MethodBinding getExactMethodBase(char[] selector, TypeBinding[] argumentTypes) { int argCount = argumentTypes.length; int selectorLength = selector.length; boolean foundNothing = true; @@ -316,7 +317,7 @@ public MethodBinding getExactMethod(char[] selector, TypeBinding[] argumentTypes } // NOTE: the type of a field of a binary type is resolved when needed -public FieldBinding getField(char[] fieldName) { +public FieldBinding getFieldBase(char[] fieldName) { int fieldLength = fieldName.length; for (int f = fields.length; --f >= 0;) { char[] name = fields[f].name; @@ -327,7 +328,7 @@ public FieldBinding getField(char[] fieldName) { } // NOTE: the return type, arg & exception types of each method of a binary type are resolved when needed -public MethodBinding[] getMethods(char[] selector) { +public MethodBinding[] getMethodsBase(char[] selector) { int count = 0; int lastIndex = -1; int selectorLength = selector.length; @@ -386,7 +387,7 @@ private FieldBinding resolveTypeFor(FieldBinding field) { field.type = resolveType(field.type); return field; } -private MethodBinding resolveTypesFor(MethodBinding method) { +public MethodBinding resolveTypesFor(MethodBinding method) { if ((method.modifiers & AccUnresolved) == 0) return method;