1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-06-07 17:56:01 +02:00

Bug 273471 - follow up fix

This commit is contained in:
Anton Leherbauer 2009-07-02 14:53:49 +00:00
parent 10107c0d8e
commit b63af6b179
2 changed files with 8 additions and 5 deletions

View file

@ -772,13 +772,15 @@ public class CModelBuilder2 implements IContributedModelBuilder {
// field // field
Field newElement= new Field(parent, variableName); Field newElement= new Field(parent, variableName);
setIndex(newElement); setIndex(newElement);
final FieldInfo fieldInfo= (FieldInfo)getElementInfo(newElement);
if (specifier instanceof ICPPASTDeclSpecifier) { if (specifier instanceof ICPPASTDeclSpecifier) {
final ICPPASTDeclSpecifier cppSpecifier= (ICPPASTDeclSpecifier)specifier; final ICPPASTDeclSpecifier cppSpecifier= (ICPPASTDeclSpecifier)specifier;
newElement.setMutable(cppSpecifier.getStorageClass() == ICPPASTDeclSpecifier.sc_mutable); fieldInfo.setMutable(cppSpecifier.getStorageClass() == ICPPASTDeclSpecifier.sc_mutable);
} }
final FieldInfo fieldInfo= (FieldInfo)getElementInfo(newElement);
fieldInfo.setTypeName(ASTStringUtil.getSignatureString(specifier, declarator)); fieldInfo.setTypeName(ASTStringUtil.getSignatureString(specifier, declarator));
fieldInfo.setVisibility(getCurrentVisibility()); fieldInfo.setVisibility(getCurrentVisibility());
fieldInfo.setConst(specifier.isConst());
fieldInfo.setVolatile(specifier.isVolatile());
element= newElement; element= newElement;
info= fieldInfo; info= fieldInfo;
} else { } else {
@ -800,11 +802,11 @@ public class CModelBuilder2 implements IContributedModelBuilder {
setIndex(element); setIndex(element);
VariableInfo varInfo= (VariableInfo) getElementInfo(element); VariableInfo varInfo= (VariableInfo) getElementInfo(element);
varInfo.setTypeName(ASTStringUtil.getSignatureString(specifier, declarator)); varInfo.setTypeName(ASTStringUtil.getSignatureString(specifier, declarator));
varInfo.setConst(specifier.isConst());
varInfo.setVolatile(specifier.isVolatile());
info= varInfo; info= varInfo;
} }
element.setActive(declarator.isActive()); element.setActive(declarator.isActive());
element.setConst(specifier.isConst());
element.setVolatile(specifier.isVolatile());
// TODO [cmodel] correctly resolve isStatic // TODO [cmodel] correctly resolve isStatic
element.setStatic(specifier.getStorageClass() == IASTDeclSpecifier.sc_static); element.setStatic(specifier.getStorageClass() == IASTDeclSpecifier.sc_static);
// add to parent // add to parent

View file

@ -200,11 +200,12 @@ public class SourceManipulation extends Parent implements ISourceManipulation, I
return; return;
} }
newElements.put(this, info);
CElementInfo openableParentInfo = (CElementInfo) CModelManager.getDefault().getInfo(openableParent); CElementInfo openableParentInfo = (CElementInfo) CModelManager.getDefault().getInfo(openableParent);
if (openableParentInfo == null) { if (openableParentInfo == null) {
openableParent.generateInfos(openableParent.createElementInfo(), newElements, pm); openableParent.generateInfos(openableParent.createElementInfo(), newElements, pm);
} }
newElements.put(this, info);
} }
public void setPos(int startPos, int length) { public void setPos(int startPos, int length) {