mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
toString methods and @Overide annotations.
This commit is contained in:
parent
c0c636bc3c
commit
b62f1b0e6a
13 changed files with 255 additions and 288 deletions
|
@ -6,7 +6,7 @@
|
|||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Doug Schaefer (IBM) - Initial API and implementation
|
||||
* Doug Schaefer (IBM) - Initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.core.dom.ast;
|
||||
|
||||
|
@ -18,11 +18,8 @@ package org.eclipse.cdt.core.dom.ast;
|
|||
* @noimplement This interface is not intended to be implemented by clients.
|
||||
*/
|
||||
public interface ILabel extends IBinding {
|
||||
|
||||
/**
|
||||
* Returns the label statement for this label.
|
||||
*
|
||||
*/
|
||||
public IASTLabelStatement getLabelStatement();
|
||||
|
||||
}
|
||||
|
|
|
@ -25,7 +25,6 @@ import org.eclipse.core.runtime.PlatformObject;
|
|||
* Represents a label.
|
||||
*/
|
||||
public class CLabel extends PlatformObject implements ILabel {
|
||||
|
||||
private final IASTName labelStatement;
|
||||
|
||||
public CLabel(IASTName statement) {
|
||||
|
@ -37,42 +36,38 @@ public class CLabel extends PlatformObject implements ILabel {
|
|||
return labelStatement;
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see org.eclipse.cdt.core.dom.ast.ILabel#getLabelStatement()
|
||||
*/
|
||||
@Override
|
||||
public IASTLabelStatement getLabelStatement() {
|
||||
return (IASTLabelStatement) labelStatement.getParent();
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see org.eclipse.cdt.core.dom.ast.IBinding#getName()
|
||||
*/
|
||||
@Override
|
||||
public String getName() {
|
||||
return labelStatement.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public char[] getNameCharArray() {
|
||||
return labelStatement.toCharArray();
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see org.eclipse.cdt.core.dom.ast.IBinding#getScope()
|
||||
*/
|
||||
@Override
|
||||
public IScope getScope() {
|
||||
return CVisitor.getContainingScope(labelStatement.getParent());
|
||||
}
|
||||
|
||||
@Override
|
||||
public ILinkage getLinkage() {
|
||||
return Linkage.C_LINKAGE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IBinding getOwner() {
|
||||
return CVisitor.findEnclosingFunction(labelStatement);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return getName();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Devin Steffler (IBM Rational Software) - Initial API and implementation
|
||||
* Devin Steffler (IBM Rational Software) - Initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.internal.core.dom.parser.c;
|
||||
|
||||
|
@ -34,6 +34,7 @@ public class CPointerType implements ICPointerType, ITypeContainer, ISerializabl
|
|||
this.qualifiers = qualifiers;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSameType(IType obj) {
|
||||
if (obj == this)
|
||||
return true;
|
||||
|
@ -51,34 +52,27 @@ public class CPointerType implements ICPointerType, ITypeContainer, ISerializabl
|
|||
return false;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.dom.ast.c.ICPointerType#isRestrict()
|
||||
*/
|
||||
@Override
|
||||
public boolean isRestrict() {
|
||||
return (qualifiers & IS_RESTRICT) != 0;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.dom.ast.IPointerType#getType()
|
||||
*/
|
||||
@Override
|
||||
public IType getType() {
|
||||
return nextType;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setType(IType type) {
|
||||
nextType = type;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.dom.ast.IPointerType#isConst()
|
||||
*/
|
||||
@Override
|
||||
public boolean isConst() {
|
||||
return (qualifiers & IS_CONST) != 0;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.dom.ast.IPointerType#isVolatile()
|
||||
*/
|
||||
@Override
|
||||
public boolean isVolatile() {
|
||||
return (qualifiers & IS_VOLATILE) != 0;
|
||||
}
|
||||
|
@ -98,6 +92,7 @@ public class CPointerType implements ICPointerType, ITypeContainer, ISerializabl
|
|||
this.qualifiers = qualifiers;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void marshal(ITypeMarshalBuffer buffer) throws CoreException {
|
||||
int firstByte= ITypeMarshalBuffer.POINTER;
|
||||
if (isConst()) firstByte |= ITypeMarshalBuffer.FLAG1;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2005, 2010 IBM Corporation and others.
|
||||
* Copyright (c) 2005, 2011 IBM Corporation and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
|
@ -51,24 +51,28 @@ public class CStructure extends PlatformObject implements ICompositeType, ICInte
|
|||
super(node, id, arg);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IField findField(String name) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IScope getCompositeScope() {
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IField[] getFields() {
|
||||
return IField.EMPTY_FIELD_ARRAY;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getKey() {
|
||||
return k_struct;
|
||||
}
|
||||
}
|
||||
|
||||
private IASTName[] declarations = null;
|
||||
private IASTName[] declarations;
|
||||
private IASTName definition;
|
||||
private boolean checked;
|
||||
private ICompositeType typeInIndex;
|
||||
|
@ -82,8 +86,9 @@ public class CStructure extends PlatformObject implements ICompositeType, ICInte
|
|||
name.setBinding(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IASTNode getPhysicalNode() {
|
||||
return (definition != null) ? (IASTNode) definition : (IASTNode) declarations[0];
|
||||
return definition != null ? (IASTNode) definition : (IASTNode) declarations[0];
|
||||
}
|
||||
|
||||
private void checkForDefinition() {
|
||||
|
@ -109,11 +114,7 @@ public class CStructure extends PlatformObject implements ICompositeType, ICInte
|
|||
checked = true;
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see org.eclipse.cdt.core.dom.ast.IBinding#getName()
|
||||
*/
|
||||
@Override
|
||||
public String getName() {
|
||||
if (definition != null)
|
||||
return definition.toString();
|
||||
|
@ -121,6 +122,7 @@ public class CStructure extends PlatformObject implements ICompositeType, ICInte
|
|||
return declarations[0].toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public char[] getNameCharArray() {
|
||||
if (definition != null)
|
||||
return definition.toCharArray();
|
||||
|
@ -128,11 +130,7 @@ public class CStructure extends PlatformObject implements ICompositeType, ICInte
|
|||
return declarations[0].toCharArray();
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see org.eclipse.cdt.core.dom.ast.IBinding#getScope()
|
||||
*/
|
||||
@Override
|
||||
public IScope getScope() throws DOMException {
|
||||
IASTDeclSpecifier declSpec = (IASTDeclSpecifier) ((definition != null) ? (IASTNode) definition
|
||||
.getParent() : declarations[0].getParent());
|
||||
|
@ -143,11 +141,7 @@ public class CStructure extends PlatformObject implements ICompositeType, ICInte
|
|||
return scope;
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see org.eclipse.cdt.core.dom.ast.ICompositeType#getFields()
|
||||
*/
|
||||
@Override
|
||||
public IField[] getFields() {
|
||||
checkForDefinition();
|
||||
if (definition == null) {
|
||||
|
@ -186,6 +180,7 @@ public class CStructure extends PlatformObject implements ICompositeType, ICInte
|
|||
return fields;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IField findField(String name) {
|
||||
IScope scope = getCompositeScope();
|
||||
if (scope == null) {
|
||||
|
@ -202,22 +197,14 @@ public class CStructure extends PlatformObject implements ICompositeType, ICInte
|
|||
return null;
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see org.eclipse.cdt.core.dom.ast.ICompositeType#getKey()
|
||||
*/
|
||||
@Override
|
||||
public int getKey() {
|
||||
return definition != null ?
|
||||
((IASTCompositeTypeSpecifier) definition.getParent()).getKey() :
|
||||
((IASTElaboratedTypeSpecifier) declarations[0].getParent()).getKind();
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see org.eclipse.cdt.core.dom.ast.ICompositeType#getCompositeScope()
|
||||
*/
|
||||
@Override
|
||||
public IScope getCompositeScope() {
|
||||
checkForDefinition();
|
||||
if (definition != null) {
|
||||
|
@ -267,11 +254,7 @@ public class CStructure extends PlatformObject implements ICompositeType, ICInte
|
|||
declarations = (IASTName[]) ArrayUtil.append(IASTName.class, declarations, decl);
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see org.eclipse.cdt.core.dom.ast.IType#isSameType(org.eclipse.cdt.core.dom.ast.IType)
|
||||
*/
|
||||
@Override
|
||||
public boolean isSameType(IType type) {
|
||||
if (type == this)
|
||||
return true;
|
||||
|
@ -280,18 +263,22 @@ public class CStructure extends PlatformObject implements ICompositeType, ICInte
|
|||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ILinkage getLinkage() {
|
||||
return Linkage.C_LINKAGE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IASTNode[] getDeclarations() {
|
||||
return declarations;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IASTNode getDefinition() {
|
||||
return definition;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IBinding getOwner() {
|
||||
IASTNode node = definition;
|
||||
if (node == null) {
|
||||
|
@ -309,6 +296,7 @@ public class CStructure extends PlatformObject implements ICompositeType, ICInte
|
|||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAnonymous() {
|
||||
if (getNameCharArray().length > 0 || definition == null)
|
||||
return false;
|
||||
|
@ -324,4 +312,12 @@ public class CStructure extends PlatformObject implements ICompositeType, ICInte
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* For debugging purposes, only.
|
||||
*/
|
||||
@Override
|
||||
public String toString() {
|
||||
return getName();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,17 +1,18 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2005, 2010 IBM Corporation and others.
|
||||
* Copyright (c) 2005, 2011 IBM Corporation and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* IBM Rational Software - Initial API and implementation
|
||||
* Markus Schorn (Wind River Systems)
|
||||
* IBM Rational Software - Initial API and implementation
|
||||
* Markus Schorn (Wind River Systems)
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.internal.core.dom.parser.c;
|
||||
|
||||
import org.eclipse.cdt.core.dom.ILinkage;
|
||||
import org.eclipse.cdt.core.dom.ast.ASTTypeUtil;
|
||||
import org.eclipse.cdt.core.dom.ast.IASTDeclarator;
|
||||
import org.eclipse.cdt.core.dom.ast.IASTName;
|
||||
import org.eclipse.cdt.core.dom.ast.IASTNode;
|
||||
|
@ -30,87 +31,93 @@ public class CTypedef extends PlatformObject implements ITypedef, ITypeContainer
|
|||
private final IASTName name;
|
||||
private IType type = null;
|
||||
|
||||
public CTypedef( IASTName name ){
|
||||
public CTypedef(IASTName name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public IASTNode getPhysicalNode(){
|
||||
@Override
|
||||
public IASTNode getPhysicalNode() {
|
||||
return name;
|
||||
}
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.dom.ast.ITypedef#getType()
|
||||
*/
|
||||
|
||||
@Override
|
||||
public IType getType() {
|
||||
if (type == null && name.getParent() instanceof IASTDeclarator)
|
||||
type = CVisitor.createType((IASTDeclarator)name.getParent());
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType( IType t ){
|
||||
@Override
|
||||
public void setType(IType t) {
|
||||
type = t;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.dom.ast.IBinding#getName()
|
||||
*/
|
||||
@Override
|
||||
public String getName() {
|
||||
return name.toString();
|
||||
}
|
||||
public char[] getNameCharArray(){
|
||||
|
||||
@Override
|
||||
public char[] getNameCharArray() {
|
||||
return name.toCharArray();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.dom.ast.IBinding#getScope()
|
||||
*/
|
||||
@Override
|
||||
public IScope getScope() {
|
||||
IASTDeclarator declarator = (IASTDeclarator) name.getParent();
|
||||
return CVisitor.getContainingScope( declarator.getParent() );
|
||||
return CVisitor.getContainingScope(declarator.getParent());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object clone(){
|
||||
public Object clone() {
|
||||
IType t = null;
|
||||
try {
|
||||
t = (IType) super.clone();
|
||||
} catch ( CloneNotSupportedException e ) {
|
||||
} catch (CloneNotSupportedException e) {
|
||||
//not going to happen
|
||||
}
|
||||
return t;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.dom.ast.IType#isSameType(org.eclipse.cdt.core.dom.ast.IType)
|
||||
*/
|
||||
public boolean isSameType( IType t ) {
|
||||
if( t == this )
|
||||
@Override
|
||||
public boolean isSameType(IType t) {
|
||||
if (t == this)
|
||||
return true;
|
||||
if( t instanceof ITypedef ) {
|
||||
if (t instanceof ITypedef) {
|
||||
IType temp = getType();
|
||||
if( temp != null )
|
||||
return temp.isSameType( ((ITypedef)t).getType());
|
||||
if (temp != null)
|
||||
return temp.isSameType(((ITypedef)t).getType());
|
||||
return false;
|
||||
}
|
||||
|
||||
IType temp = getType();
|
||||
if( temp != null )
|
||||
return temp.isSameType( t );
|
||||
if (temp != null)
|
||||
return temp.isSameType(t);
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ILinkage getLinkage() {
|
||||
return Linkage.C_LINKAGE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IASTNode[] getDeclarations() {
|
||||
return IASTNode.EMPTY_NODE_ARRAY;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IASTNode getDefinition() {
|
||||
return name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IBinding getOwner() {
|
||||
return CVisitor.findEnclosingFunction(name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return getName() + " -> " + ASTTypeUtil.getType(this, true); //$NON-NLS-1$
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* IBM Rational Software - Initial API and implementation
|
||||
* Markus Schorn (Wind River Systems)
|
||||
* IBM Rational Software - Initial API and implementation
|
||||
* Markus Schorn (Wind River Systems)
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.internal.core.dom.parser.c;
|
||||
|
||||
|
@ -44,6 +44,7 @@ public class CVariable extends PlatformObject implements IInternalVariable, ICIn
|
|||
declarations = new IASTName[] { name };
|
||||
}
|
||||
|
||||
@Override
|
||||
public IASTNode getPhysicalNode() {
|
||||
return declarations[0];
|
||||
}
|
||||
|
@ -54,40 +55,30 @@ public class CVariable extends PlatformObject implements IInternalVariable, ICIn
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see org.eclipse.cdt.core.dom.ast.IVariable#getType()
|
||||
*/
|
||||
@Override
|
||||
public IType getType() {
|
||||
if (type == null && declarations[0].getParent() instanceof IASTDeclarator)
|
||||
type = CVisitor.createType((IASTDeclarator) declarations[0].getParent());
|
||||
return type;
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see org.eclipse.cdt.core.dom.ast.IBinding#getName()
|
||||
*/
|
||||
@Override
|
||||
public String getName() {
|
||||
return declarations[0].toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public char[] getNameCharArray() {
|
||||
return declarations[0].toCharArray();
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see org.eclipse.cdt.core.dom.ast.IBinding#getScope()
|
||||
*/
|
||||
@Override
|
||||
public IScope getScope() {
|
||||
IASTDeclarator declarator = (IASTDeclarator) declarations[0].getParent();
|
||||
return CVisitor.getContainingScope(declarator.getParent());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isStatic() {
|
||||
return hasStorageClass(IASTDeclSpecifier.sc_static);
|
||||
}
|
||||
|
@ -113,45 +104,37 @@ public class CVariable extends PlatformObject implements IInternalVariable, ICIn
|
|||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see org.eclipse.cdt.core.dom.ast.IVariable#isExtern()
|
||||
*/
|
||||
@Override
|
||||
public boolean isExtern() {
|
||||
return hasStorageClass(IASTDeclSpecifier.sc_extern);
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see org.eclipse.cdt.core.dom.ast.IVariable#isAuto()
|
||||
*/
|
||||
@Override
|
||||
public boolean isAuto() {
|
||||
return hasStorageClass(IASTDeclSpecifier.sc_auto);
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see org.eclipse.cdt.core.dom.ast.IVariable#isRegister()
|
||||
*/
|
||||
@Override
|
||||
public boolean isRegister() {
|
||||
return hasStorageClass(IASTDeclSpecifier.sc_register);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ILinkage getLinkage() {
|
||||
return Linkage.C_LINKAGE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IASTNode[] getDeclarations() {
|
||||
return declarations;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IASTNode getDefinition() {
|
||||
return getPhysicalNode();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IBinding getOwner() {
|
||||
if (declarations == null || declarations.length == 0)
|
||||
return null;
|
||||
|
@ -159,10 +142,12 @@ public class CVariable extends PlatformObject implements IInternalVariable, ICIn
|
|||
return CVisitor.findDeclarationOwner(declarations[0], true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IValue getInitialValue() {
|
||||
return getInitialValue(Value.MAX_RECURSION_DEPTH);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IValue getInitialValue(int maxDepth) {
|
||||
if (declarations != null) {
|
||||
for (IASTName decl : declarations) {
|
||||
|
@ -200,4 +185,9 @@ public class CVariable extends PlatformObject implements IInternalVariable, ICIn
|
|||
|
||||
return ASTQueries.findOutermostDeclarator((IASTDeclarator) node);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return getName();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Andrew Niefer (IBM Corporation) - Initial API and implementation
|
||||
* Markus Schorn (Wind River Systems)
|
||||
* Andrew Niefer (IBM Corporation) - Initial API and implementation
|
||||
* Markus Schorn (Wind River Systems)
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.internal.core.dom.parser.cpp;
|
||||
|
||||
|
@ -25,71 +25,88 @@ import org.eclipse.core.runtime.PlatformObject;
|
|||
public class CPPLabel extends PlatformObject implements ILabel, ICPPInternalBinding {
|
||||
private IASTName statement;
|
||||
|
||||
public CPPLabel( IASTName statement ) {
|
||||
public CPPLabel(IASTName statement) {
|
||||
this.statement = statement;
|
||||
statement.setBinding( this );
|
||||
statement.setBinding(this);
|
||||
}
|
||||
|
||||
public IASTNode[] getDeclarations() {
|
||||
@Override
|
||||
public IASTNode[] getDeclarations() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public IASTNode getDefinition() {
|
||||
@Override
|
||||
public IASTNode getDefinition() {
|
||||
return statement;
|
||||
}
|
||||
|
||||
public IASTLabelStatement getLabelStatement() {
|
||||
if( statement instanceof IASTLabelStatement )
|
||||
@Override
|
||||
public IASTLabelStatement getLabelStatement() {
|
||||
if (statement instanceof IASTLabelStatement)
|
||||
return (IASTLabelStatement) statement;
|
||||
|
||||
// TODO find label statement
|
||||
return null;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
@Override
|
||||
public String getName() {
|
||||
return new String(getNameCharArray());
|
||||
}
|
||||
|
||||
public char[] getNameCharArray() {
|
||||
@Override
|
||||
public char[] getNameCharArray() {
|
||||
return statement.getSimpleID();
|
||||
}
|
||||
|
||||
public IScope getScope() {
|
||||
return CPPVisitor.getContainingScope( statement );
|
||||
@Override
|
||||
public IScope getScope() {
|
||||
return CPPVisitor.getContainingScope(statement);
|
||||
}
|
||||
|
||||
public IASTNode getPhysicalNode() {
|
||||
return statement;
|
||||
}
|
||||
|
||||
|
||||
public void setLabelStatement( IASTName labelStatement ) {
|
||||
public void setLabelStatement(IASTName labelStatement) {
|
||||
statement = labelStatement;
|
||||
}
|
||||
|
||||
public String[] getQualifiedName() {
|
||||
@Override
|
||||
public String[] getQualifiedName() {
|
||||
return new String[] { getName() };
|
||||
}
|
||||
|
||||
public char[][] getQualifiedNameCharArray() {
|
||||
return new char [] [] { getNameCharArray() };
|
||||
@Override
|
||||
public char[][] getQualifiedNameCharArray() {
|
||||
return new char[][] { getNameCharArray() };
|
||||
}
|
||||
|
||||
public boolean isGloballyQualified() {
|
||||
@Override
|
||||
public boolean isGloballyQualified() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addDefinition(IASTNode node) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addDeclaration(IASTNode node) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ILinkage getLinkage() {
|
||||
return Linkage.CPP_LINKAGE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IBinding getOwner() {
|
||||
return CPPVisitor.findEnclosingFunction(statement);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return getName();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -46,6 +46,7 @@ public class CPPPointerType implements IPointerType, ITypeContainer, ISerializab
|
|||
this(type, false, false, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSameType(IType o) {
|
||||
if (o == this)
|
||||
return true;
|
||||
|
@ -68,23 +69,28 @@ public class CPPPointerType implements IPointerType, ITypeContainer, ISerializab
|
|||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IType getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setType(IType t) {
|
||||
assert t != null;
|
||||
type = t;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isConst() {
|
||||
return isConst;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isVolatile() {
|
||||
return isVolatile;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isRestrict() {
|
||||
return isRestrict;
|
||||
}
|
||||
|
@ -101,10 +107,6 @@ public class CPPPointerType implements IPointerType, ITypeContainer, ISerializab
|
|||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return ASTTypeUtil.getType(this);
|
||||
}
|
||||
|
||||
public void marshal(ITypeMarshalBuffer buffer) throws CoreException {
|
||||
int firstByte= ITypeMarshalBuffer.POINTER;
|
||||
if (isConst()) firstByte |= ITypeMarshalBuffer.FLAG1;
|
||||
|
@ -121,4 +123,9 @@ public class CPPPointerType implements IPointerType, ITypeContainer, ISerializab
|
|||
(firstByte & ITypeMarshalBuffer.FLAG2) != 0,
|
||||
(firstByte & ITypeMarshalBuffer.FLAG3) != 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return ASTTypeUtil.getType(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2004, 2010 IBM Corporation and others.
|
||||
* Copyright (c) 2004, 2011 IBM Corporation and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
|
@ -44,21 +44,18 @@ public class CPPTypedef extends PlatformObject implements ITypedef, ITypeContain
|
|||
name.setBinding(this);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPBinding#getDeclarations()
|
||||
*/
|
||||
public IASTNode[] getDeclarations() {
|
||||
@Override
|
||||
public IASTNode[] getDeclarations() {
|
||||
return declarations;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPBinding#getDefinition()
|
||||
*/
|
||||
public IASTNode getDefinition() {
|
||||
@Override
|
||||
public IASTNode getDefinition() {
|
||||
return declarations[0];
|
||||
}
|
||||
|
||||
public boolean isSameType(IType o) {
|
||||
@Override
|
||||
public boolean isSameType(IType o) {
|
||||
if (o == this)
|
||||
return true;
|
||||
if (o instanceof ITypedef) {
|
||||
|
@ -74,9 +71,7 @@ public class CPPTypedef extends PlatformObject implements ITypedef, ITypeContain
|
|||
return false;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.dom.ast.ITypedef#getType()
|
||||
*/
|
||||
@Override
|
||||
public IType getType() {
|
||||
if (type == null) {
|
||||
type = CPPVisitor.createType((IASTDeclarator) declarations[0].getParent());
|
||||
|
@ -84,27 +79,22 @@ public class CPPTypedef extends PlatformObject implements ITypedef, ITypeContain
|
|||
return type;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setType(IType t) {
|
||||
type = t;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.dom.ast.IBinding#getName()
|
||||
*/
|
||||
@Override
|
||||
public String getName() {
|
||||
return new String(getNameCharArray());
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.dom.ast.IBinding#getNameCharArray()
|
||||
*/
|
||||
@Override
|
||||
public char[] getNameCharArray() {
|
||||
return declarations[0].getSimpleID();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.dom.ast.IBinding#getScope()
|
||||
*/
|
||||
@Override
|
||||
public IScope getScope() {
|
||||
return CPPVisitor.getContainingScope(declarations[0].getParent());
|
||||
}
|
||||
|
@ -120,24 +110,18 @@ public class CPPTypedef extends PlatformObject implements ITypedef, ITypeContain
|
|||
return t;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.dom.ast.IBinding#getFullyQualifiedName()
|
||||
*/
|
||||
public String[] getQualifiedName() {
|
||||
@Override
|
||||
public String[] getQualifiedName() {
|
||||
return CPPVisitor.getQualifiedName(this);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.dom.ast.IBinding#getFullyQualifiedNameCharArray()
|
||||
*/
|
||||
public char[][] getQualifiedNameCharArray() {
|
||||
@Override
|
||||
public char[][] getQualifiedNameCharArray() {
|
||||
return CPPVisitor.getQualifiedNameCharArray(this);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.dom.ast.cpp.ICPPBinding#isGloballyQualified()
|
||||
*/
|
||||
public boolean isGloballyQualified() throws DOMException {
|
||||
@Override
|
||||
public boolean isGloballyQualified() throws DOMException {
|
||||
IScope scope = getScope();
|
||||
while(scope != null) {
|
||||
if (scope instanceof ICPPBlockScope)
|
||||
|
@ -147,32 +131,27 @@ public class CPPTypedef extends PlatformObject implements ITypedef, ITypeContain
|
|||
return true;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#addDefinition(org.eclipse.cdt.core.dom.ast.IASTNode)
|
||||
*/
|
||||
@Override
|
||||
public void addDefinition(IASTNode node) {
|
||||
addDeclaration(node);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#addDeclaration(org.eclipse.cdt.core.dom.ast.IASTNode)
|
||||
*/
|
||||
@Override
|
||||
public void addDeclaration(IASTNode node) {
|
||||
IASTName name;
|
||||
if (node instanceof IASTName) {
|
||||
if (node.getParent() instanceof ICPPASTQualifiedName) {
|
||||
name= (IASTName) node.getParent();
|
||||
} else {
|
||||
name= (IASTName) node;
|
||||
}
|
||||
} else {
|
||||
if (!(node instanceof IASTName)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (node.getParent() instanceof ICPPASTQualifiedName) {
|
||||
name= (IASTName) node.getParent();
|
||||
} else {
|
||||
name= (IASTName) node;
|
||||
}
|
||||
|
||||
if (declarations == null) {
|
||||
declarations = new IASTName[] { name };
|
||||
} else {
|
||||
// keep the lowest offset declaration in [0]
|
||||
// Keep the lowest offset declaration in [0]
|
||||
if (declarations.length > 0 &&
|
||||
((ASTNode) node).getOffset() < ((ASTNode) declarations[0]).getOffset()) {
|
||||
declarations = (IASTName[]) ArrayUtil.prepend(IASTName.class, declarations, name);
|
||||
|
@ -182,19 +161,21 @@ public class CPPTypedef extends PlatformObject implements ITypedef, ITypeContain
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ILinkage getLinkage() {
|
||||
return Linkage.CPP_LINKAGE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return ASTTypeUtil.getQualifiedName(this) + " -> " + ASTTypeUtil.getType(this, true); //$NON-NLS-1$
|
||||
}
|
||||
|
||||
public IBinding getOwner() {
|
||||
if (declarations != null && declarations.length > 0) {
|
||||
return CPPVisitor.findDeclarationOwner(declarations[0], true);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return ASTTypeUtil.getQualifiedName(this) + " -> " + ASTTypeUtil.getType(this, true); //$NON-NLS-1$
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2004, 2010 IBM Corporation and others.
|
||||
* Copyright (c) 2004, 2011 IBM Corporation and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Andrew Niefer (IBM Corporation) - Initial API and implementation
|
||||
* Markus Schorn (Wind River Systems)
|
||||
* Ed Swartz (Nokia)
|
||||
* Andrew Niefer (IBM Corporation) - Initial API and implementation
|
||||
* Markus Schorn (Wind River Systems)
|
||||
* Ed Swartz (Nokia)
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.internal.core.dom.parser.cpp;
|
||||
|
||||
|
@ -87,6 +87,7 @@ public class CPPVariable extends PlatformObject implements ICPPVariable, ICPPInt
|
|||
return dtor;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addDeclaration(IASTNode node) {
|
||||
if (!(node instanceof IASTName))
|
||||
return;
|
||||
|
@ -110,23 +111,17 @@ public class CPPVariable extends PlatformObject implements ICPPVariable, ICPPInt
|
|||
}
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPBinding#getDeclarations()
|
||||
*/
|
||||
public IASTNode[] getDeclarations() {
|
||||
@Override
|
||||
public IASTNode[] getDeclarations() {
|
||||
return fDeclarations;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPBinding#getDefinition()
|
||||
*/
|
||||
public IASTNode getDefinition() {
|
||||
@Override
|
||||
public IASTNode getDefinition() {
|
||||
return fDefinition;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.dom.ast.IVariable#getType()
|
||||
*/
|
||||
@Override
|
||||
public IType getType() {
|
||||
if (fType != null) {
|
||||
return fType;
|
||||
|
@ -135,7 +130,7 @@ public class CPPVariable extends PlatformObject implements ICPPVariable, ICPPInt
|
|||
IArrayType firstCandidate= null;
|
||||
final int length = fDeclarations == null ? 0 : fDeclarations.length;
|
||||
for (int i = -1; i < length; i++) {
|
||||
IASTName n = i==-1 ? fDefinition : fDeclarations[i];
|
||||
IASTName n = i == -1 ? fDefinition : fDeclarations[i];
|
||||
if (n != null) {
|
||||
while (n.getParent() instanceof IASTName)
|
||||
n = (IASTName) n.getParent();
|
||||
|
@ -167,7 +162,7 @@ public class CPPVariable extends PlatformObject implements ICPPVariable, ICPPInt
|
|||
fAllResolved= true;
|
||||
final int length = fDeclarations == null ? 0 : fDeclarations.length;
|
||||
for (int i = -1; i < length; i++) {
|
||||
IASTName n = i==-1 ? fDefinition : fDeclarations[i];
|
||||
IASTName n = i == -1 ? fDefinition : fDeclarations[i];
|
||||
if (n != null) {
|
||||
IASTTranslationUnit tu = n.getTranslationUnit();
|
||||
if (tu != null) {
|
||||
|
@ -178,16 +173,12 @@ public class CPPVariable extends PlatformObject implements ICPPVariable, ICPPInt
|
|||
}
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.dom.ast.IBinding#getName()
|
||||
*/
|
||||
@Override
|
||||
public String getName() {
|
||||
return new String(getNameCharArray());
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.dom.ast.IBinding#getNameCharArray()
|
||||
*/
|
||||
@Override
|
||||
public char[] getNameCharArray() {
|
||||
if (fDeclarations != null) {
|
||||
return fDeclarations[0].getSimpleID();
|
||||
|
@ -195,31 +186,23 @@ public class CPPVariable extends PlatformObject implements ICPPVariable, ICPPInt
|
|||
return fDefinition.getSimpleID();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.dom.ast.IBinding#getScope()
|
||||
*/
|
||||
@Override
|
||||
public IScope getScope() {
|
||||
return CPPVisitor.getContainingScope(fDefinition != null ? fDefinition : fDeclarations[0]);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.dom.ast.IBinding#getFullyQualifiedName()
|
||||
*/
|
||||
public String[] getQualifiedName() {
|
||||
@Override
|
||||
public String[] getQualifiedName() {
|
||||
return CPPVisitor.getQualifiedName(this);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.dom.ast.IBinding#getFullyQualifiedNameCharArray()
|
||||
*/
|
||||
public char[][] getQualifiedNameCharArray() {
|
||||
@Override
|
||||
public char[][] getQualifiedNameCharArray() {
|
||||
return CPPVisitor.getQualifiedNameCharArray(this);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.dom.ast.cpp.ICPPBinding#isGloballyQualified()
|
||||
*/
|
||||
public boolean isGloballyQualified() throws DOMException {
|
||||
@Override
|
||||
public boolean isGloballyQualified() throws DOMException {
|
||||
IScope scope = getScope();
|
||||
while (scope != null) {
|
||||
if (scope instanceof ICPPBlockScope)
|
||||
|
@ -229,9 +212,7 @@ public class CPPVariable extends PlatformObject implements ICPPVariable, ICPPInt
|
|||
return true;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#addDefinition(org.eclipse.cdt.core.dom.ast.IASTNode)
|
||||
*/
|
||||
@Override
|
||||
public void addDefinition(IASTNode node) {
|
||||
addDeclaration(node);
|
||||
}
|
||||
|
@ -254,37 +235,33 @@ public class CPPVariable extends PlatformObject implements ICPPVariable, ICPPInt
|
|||
}
|
||||
}
|
||||
}
|
||||
if (ns != null && ++i < ns.length)
|
||||
if (ns != null && ++i < ns.length) {
|
||||
name = (IASTName) ns[i];
|
||||
else
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
} while (name != null);
|
||||
return false;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.dom.ast.cpp.ICPPVariable#isMutable()
|
||||
*/
|
||||
public boolean isMutable() {
|
||||
@Override
|
||||
public boolean isMutable() {
|
||||
//7.1.1-8 the mutable specifier can only be applied to names of class data members
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isStatic() {
|
||||
@Override
|
||||
public boolean isStatic() {
|
||||
return hasStorageClass(IASTDeclSpecifier.sc_static);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.dom.ast.IVariable#isExtern()
|
||||
*/
|
||||
public boolean isExtern() {
|
||||
@Override
|
||||
public boolean isExtern() {
|
||||
return hasStorageClass(IASTDeclSpecifier.sc_extern);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.dom.ast.IVariable#isExtern()
|
||||
*/
|
||||
public boolean isExternC() {
|
||||
@Override
|
||||
public boolean isExternC() {
|
||||
if (CPPVisitor.isExternC(getDefinition())) {
|
||||
return true;
|
||||
}
|
||||
|
@ -299,38 +276,33 @@ public class CPPVariable extends PlatformObject implements ICPPVariable, ICPPInt
|
|||
return false;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.dom.ast.IVariable#isAuto()
|
||||
*/
|
||||
public boolean isAuto() {
|
||||
@Override
|
||||
public boolean isAuto() {
|
||||
return hasStorageClass(IASTDeclSpecifier.sc_auto);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.dom.ast.IVariable#isRegister()
|
||||
*/
|
||||
public boolean isRegister() {
|
||||
@Override
|
||||
public boolean isRegister() {
|
||||
return hasStorageClass(IASTDeclSpecifier.sc_register);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ILinkage getLinkage() {
|
||||
return Linkage.CPP_LINKAGE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IBinding getOwner() {
|
||||
IASTName node = fDefinition != null ? fDefinition : fDeclarations[0];
|
||||
return CPPVisitor.findNameOwner(node, !hasStorageClass(IASTDeclSpecifier.sc_extern));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return getName();
|
||||
}
|
||||
|
||||
public IValue getInitialValue() {
|
||||
return getInitialValue(Value.MAX_RECURSION_DEPTH);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IValue getInitialValue(int maxDepth) {
|
||||
if (fDefinition != null) {
|
||||
final IValue val= getInitialValue(fDefinition, maxDepth);
|
||||
|
@ -382,4 +354,9 @@ public class CPPVariable extends PlatformObject implements ICPPVariable, ICPPInt
|
|||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return getName();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,9 +6,9 @@
|
|||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Doug Schaefer (QNX) - Initial API and implementation
|
||||
* Markus Schorn (Wind River Systems)
|
||||
* IBM Corporation
|
||||
* Doug Schaefer (QNX) - Initial API and implementation
|
||||
* Markus Schorn (Wind River Systems)
|
||||
* IBM Corporation
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.internal.core.pdom.dom.c;
|
||||
|
||||
|
@ -33,7 +33,6 @@ import org.eclipse.core.runtime.CoreException;
|
|||
* Typedefs for c
|
||||
*/
|
||||
class PDOMCTypedef extends PDOMBinding implements ITypedef, ITypeContainer, IIndexType {
|
||||
|
||||
private static final int TYPE_OFFSET = PDOMBinding.RECORD_SIZE + 0;
|
||||
|
||||
@SuppressWarnings("hiding")
|
||||
|
@ -82,8 +81,7 @@ class PDOMCTypedef extends PDOMBinding implements ITypedef, ITypeContainer, IInd
|
|||
}
|
||||
if (type instanceof ITypeContainer) {
|
||||
type= ((ITypeContainer) type).getType();
|
||||
}
|
||||
else if (type instanceof IFunctionType) {
|
||||
} else if (type instanceof IFunctionType) {
|
||||
IFunctionType ft= (IFunctionType) type;
|
||||
if (introducesRecursion(ft.getReturnType(), tdname)) {
|
||||
return true;
|
||||
|
@ -113,6 +111,7 @@ class PDOMCTypedef extends PDOMBinding implements ITypedef, ITypeContainer, IInd
|
|||
return IIndexCBindingConstants.CTYPEDEF;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IType getType() {
|
||||
try {
|
||||
return getLinkage().loadType(record + TYPE_OFFSET);
|
||||
|
@ -122,6 +121,7 @@ class PDOMCTypedef extends PDOMBinding implements ITypedef, ITypeContainer, IInd
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSameType(IType type) {
|
||||
IType myrtype = getType();
|
||||
if (myrtype == null)
|
||||
|
@ -138,6 +138,7 @@ class PDOMCTypedef extends PDOMBinding implements ITypedef, ITypeContainer, IInd
|
|||
return getName() + ": " + super.toStringBase(); //$NON-NLS-1$
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setType(IType type) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Doug Schaefer (QNX) - Initial API and implementation
|
||||
* Markus Schorn (Wind River Systems)
|
||||
* Doug Schaefer (QNX) - Initial API and implementation
|
||||
* Markus Schorn (Wind River Systems)
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.internal.core.pdom.dom.cpp;
|
||||
|
||||
|
@ -32,7 +32,6 @@ import org.eclipse.core.runtime.CoreException;
|
|||
* Typedefs for c++
|
||||
*/
|
||||
class PDOMCPPTypedef extends PDOMCPPBinding implements ITypedef, ITypeContainer, IIndexType {
|
||||
|
||||
private static final int TYPE_OFFSET = PDOMBinding.RECORD_SIZE;
|
||||
|
||||
@SuppressWarnings("hiding")
|
||||
|
@ -107,6 +106,7 @@ class PDOMCPPTypedef extends PDOMCPPBinding implements ITypedef, ITypeContainer,
|
|||
return IIndexCPPBindingConstants.CPPTYPEDEF;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IType getType() {
|
||||
try {
|
||||
return getLinkage().loadType(record + TYPE_OFFSET);
|
||||
|
@ -116,6 +116,7 @@ class PDOMCPPTypedef extends PDOMCPPBinding implements ITypedef, ITypeContainer,
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSameType(IType type) {
|
||||
IType myrtype = getType();
|
||||
if (myrtype == null)
|
||||
|
@ -129,12 +130,8 @@ class PDOMCPPTypedef extends PDOMCPPBinding implements ITypedef, ITypeContainer,
|
|||
}
|
||||
return myrtype.isSameType(type);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String toStringBase() {
|
||||
return ASTTypeUtil.getQualifiedName(this) + " -> " + super.toStringBase(); //$NON-NLS-1$
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setType(IType type) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
@ -143,4 +140,9 @@ class PDOMCPPTypedef extends PDOMCPPBinding implements ITypedef, ITypeContainer,
|
|||
public Object clone() {
|
||||
return new CPPTypedefClone(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String toStringBase() {
|
||||
return ASTTypeUtil.getQualifiedName(this) + " -> " + super.toStringBase(); //$NON-NLS-1$
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
package org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings;
|
||||
|
||||
import org.eclipse.cdt.core.dom.ILinkage;
|
||||
import org.eclipse.cdt.core.dom.ast.ASTTypeUtil;
|
||||
import org.eclipse.cdt.core.dom.ast.IASTNode;
|
||||
import org.eclipse.cdt.core.dom.ast.IBinding;
|
||||
import org.eclipse.cdt.core.dom.ast.IScope;
|
||||
|
@ -23,7 +24,6 @@ import org.eclipse.core.runtime.PlatformObject;
|
|||
|
||||
@SuppressWarnings("restriction")
|
||||
public class C99Typedef extends PlatformObject implements IC99Binding, ITypedef, ITypeContainer, ITypeable {
|
||||
|
||||
private IType type;
|
||||
private String name;
|
||||
|
||||
|
@ -42,7 +42,6 @@ public class C99Typedef extends PlatformObject implements IC99Binding, ITypedef,
|
|||
this.name = name;
|
||||
}
|
||||
|
||||
|
||||
public IType getType() {
|
||||
return type;
|
||||
}
|
||||
|
@ -63,7 +62,6 @@ public class C99Typedef extends PlatformObject implements IC99Binding, ITypedef,
|
|||
return name.toCharArray();
|
||||
}
|
||||
|
||||
|
||||
public boolean isSameType(IType t) {
|
||||
if(t == this)
|
||||
return true;
|
||||
|
@ -71,7 +69,6 @@ public class C99Typedef extends PlatformObject implements IC99Binding, ITypedef,
|
|||
if(t instanceof ITypedef)
|
||||
return type.isSameType(((ITypedef)t).getType());
|
||||
return type.isSameType(t);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -104,4 +101,9 @@ public class C99Typedef extends PlatformObject implements IC99Binding, ITypedef,
|
|||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return getName() + " -> " + ASTTypeUtil.getType(this, true); //$NON-NLS-1$
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue