X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/SingleTypeReference.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/SingleTypeReference.java index 3ebd595..d86c411 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/SingleTypeReference.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/SingleTypeReference.java @@ -1,10 +1,10 @@ /******************************************************************************* * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials + * All rights reserved. This program and the accompanying materials * are made available under the terms of the Common Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/cpl-v10.html - * + * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ @@ -17,57 +17,81 @@ import net.sourceforge.phpdt.internal.compiler.lookup.ReferenceBinding; import net.sourceforge.phpdt.internal.compiler.lookup.Scope; import net.sourceforge.phpdt.internal.compiler.lookup.TypeBinding; +import org.eclipse.core.resources.IFile; + public class SingleTypeReference extends TypeReference { public char[] token; - -public SingleTypeReference(char[] source, long pos) { + public IFile file; + + public SingleTypeReference(IFile f, char[] source, int start, int end) { token = source; - sourceStart = (int) (pos>>>32) ; - sourceEnd = (int) (pos & 0x00000000FFFFFFFFL) ; - -} -public SingleTypeReference(char[] source ,TypeBinding type, long pos) { - this(source, pos) ; - this.resolvedType = type ; -} -public TypeReference copyDims(int dim){ - //return a type reference copy of me with some dimensions - //warning : the new type ref has a null binding - - return new ArrayTypeReference(token,null,dim,(((long)sourceStart)<<32)+sourceEnd) ; -} -public TypeBinding getTypeBinding(Scope scope) { - if (this.resolvedType != null) - return this.resolvedType; - return scope.getType(token); -} -public char [][] getTypeName() { - return new char[][] { token }; -} -public TypeBinding resolveTypeEnclosing(BlockScope scope, ReferenceBinding enclosingType) { - ReferenceBinding memberTb = scope.getMemberType(token, enclosingType); - if (!memberTb.isValidBinding()) { - scope.problemReporter().invalidEnclosingType(this, memberTb, enclosingType); - return null; + file = f; + sourceStart = start; + sourceEnd = end; + + } + + public SingleTypeReference(char[] source, long pos) { + token = source; + file = null; + sourceStart = (int) (pos >>> 32); + sourceEnd = (int) (pos & 0x00000000FFFFFFFFL); + + } + + public SingleTypeReference(char[] source, TypeBinding type, long pos) { + this(source, pos); + this.resolvedType = type; + } + + public TypeReference copyDims(int dim) { + // return a type reference copy of me with some dimensions + // warning : the new type ref has a null binding + + return new ArrayTypeReference(token, null, dim, + (((long) sourceStart) << 32) + sourceEnd); + } + + public TypeBinding getTypeBinding(Scope scope) { + if (this.resolvedType != null) + return this.resolvedType; + return scope.getType(token); + } + + public char[][] getTypeName() { + return new char[][] { token }; + } + + public TypeBinding resolveTypeEnclosing(BlockScope scope, + ReferenceBinding enclosingType) { + ReferenceBinding memberTb = scope.getMemberType(token, enclosingType); + if (!memberTb.isValidBinding()) { + scope.problemReporter().invalidEnclosingType(this, memberTb, + enclosingType); + return null; + } + if (isTypeUseDeprecated(memberTb, scope)) + scope.problemReporter().deprecatedType(memberTb, this); + return this.resolvedType = memberTb; + } + + public StringBuffer printExpression(int indent, StringBuffer output) { + + return output.append(token); + } + + public String toStringExpression(int tab) { + return new String(token); + } + + public void traverse(ASTVisitor visitor, BlockScope scope) { + visitor.visit(this, scope); + visitor.endVisit(this, scope); + } + + public void traverse(ASTVisitor visitor, ClassScope scope) { + visitor.visit(this, scope); + visitor.endVisit(this, scope); } - if (isTypeUseDeprecated(memberTb, scope)) - scope.problemReporter().deprecatedType(memberTb, this); - return this.resolvedType = memberTb; -} -public StringBuffer printExpression(int indent, StringBuffer output){ - - return output.append(token); -} -public String toStringExpression(int tab){ - return new String(token) ; -} -public void traverse(ASTVisitor visitor, BlockScope scope) { - visitor.visit(this, scope); - visitor.endVisit(this, scope); -} -public void traverse(ASTVisitor visitor, ClassScope scope) { - visitor.visit(this, scope); - visitor.endVisit(this, scope); -} }