Update of /cvsroot/cpptool/rfta/src/rfta
In directory sc8-pr-cvs1:/tmp/cvs-serv10111
Modified Files:
CodeModelElement.cpp CodeModelExpressions.cpp CodeRewriter.cpp
CodeRewriter.h CodeWriterTest.cpp CodeWriterTest.h
IndentLevelManager.h
Log Message:
* inserted return statement may have a value.
Index: CodeModelElement.cpp
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeModelElement.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** CodeModelElement.cpp 6 Mar 2003 22:17:57 -0000 1.4
--- CodeModelElement.cpp 7 Mar 2003 09:41:11 -0000 1.5
***************
*** 129,177 ****
- #if 0
- void
- Element::setSourceRange( const SourceRange &sourceRange )
- {
- sourceRange_ = sourceRange;
- wasReplaced_ = false;
- }
-
-
- void
- Element::unsetSourceRange()
- {
- sourceRange_ = SourceRange( -1, 0 );
- }
-
-
- const SourceRange &
- Element::getSourceRange() const
- {
- return sourceRange_;
- }
-
-
- bool
- Element::hasSourceRange() const
- {
- return sourceRange_.getStartIndex() != -1;
- }
-
-
- bool
- Element::wasReplaced() const
- {
- return wasReplaced_;
- }
-
-
- void
- Element::replace()
- {
- wasReplaced_ = true;
- }
- #endif
-
-
} // namespace CodeModel
} // namespace Refactoring
--- 129,132 ----
Index: CodeModelExpressions.cpp
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeModelExpressions.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** CodeModelExpressions.cpp 6 Mar 2003 22:17:57 -0000 1.4
--- CodeModelExpressions.cpp 7 Mar 2003 09:41:11 -0000 1.5
***************
*** 21,31 ****
}
! /*
GenericExpression::GenericExpression( const std::string &value )
- : value_( value )
{
}
!
const std::string
GenericExpression::getValue() const
--- 21,31 ----
}
!
GenericExpression::GenericExpression( const std::string &value )
{
+ setText( value );
}
! /*
const std::string
GenericExpression::getValue() const
Index: CodeRewriter.cpp
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeRewriter.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** CodeRewriter.cpp 7 Mar 2003 07:58:31 -0000 1.4
--- CodeRewriter.cpp 7 Mar 2003 09:41:11 -0000 1.5
***************
*** 11,15 ****
#include <rfta/refactoring/CodeModelStatements.h>
-
namespace Refactoring { namespace CodeModel {
--- 11,14 ----
***************
*** 64,67 ****
--- 63,73 ----
void
+ CodeRewriter::insertText( const std::string &content )
+ {
+ replaceText( getCurrentInsertionRange(), content );
+ }
+
+
+ void
CodeRewriter::setPreviousStatementEnd( CompoundStatement &statement,
int subStatementIndex )
***************
*** 209,213 ****
replaceText( text.getOriginalSourceRange(), text.getOriginalText() );
else if ( text.isNewText() )
! replaceText( getCurrentInsertionRange(), "\n" + indentManager_.getIndentSpacer() + "return;" );
}
--- 215,227 ----
replaceText( text.getOriginalSourceRange(), text.getOriginalText() );
else if ( text.isNewText() )
! {
! insertText( "\n" + indentManager_.getIndentSpacer() + "return" );
! if ( statement.hasValue() )
! {
! insertText( " " );
! statement.getValue()->accept( *this );
! }
! insertText( ";" );
! }
}
***************
*** 268,271 ****
--- 282,289 ----
replaceText( expression.getText().getOriginalSourceRange(),
expression.getText().getOriginalText() );
+ }
+ else if ( expression.getText().isNewText() )
+ {
+ insertText( expression.getText().getOriginalText() );
}
}
Index: CodeRewriter.h
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeRewriter.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** CodeRewriter.h 7 Mar 2003 07:58:31 -0000 1.4
--- CodeRewriter.h 7 Mar 2003 09:41:11 -0000 1.5
***************
*** 6,14 ****
#define RFTA_CODEREWRITER_H
#include <rfta/parser/SourceRange.h>
#include <rfta/refactoring/CodeModelVisitor.h>
- #include "IndentLevelManager.h"
- #include "TransformList.h"
#include <string>
--- 6,14 ----
#define RFTA_CODEREWRITER_H
+ #include "TransformList.h"
#include <rfta/parser/SourceRange.h>
#include <rfta/refactoring/CodeModelVisitor.h>
#include <string>
+ #include "IndentLevelManager.h"
***************
*** 76,79 ****
--- 76,81 ----
void deleteText( const SourceRange &range );
+
+ void insertText( const std::string &content );
private:
Index: CodeWriterTest.cpp
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeWriterTest.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** CodeWriterTest.cpp 7 Mar 2003 07:58:31 -0000 1.5
--- CodeWriterTest.cpp 7 Mar 2003 09:41:11 -0000 1.6
***************
*** 115,117 ****
--- 115,144 ----
+ void
+ CodeWriterTest::testInsertReturnValueStatement()
+ {
+ source_ = " {\n"
+ " }";
+
+ generateCompound();
+
+ RFTA_ASSERT_EQUAL( 0, compound_->getStatementCount() );
+ compound_->appendStatement( CodeModel::StatementPtr( new CodeModel::ReturnStatement( makeTrueExpression() ) ) );
+
+ rewriteSource();
+
+ std::string expectedSource = " {\n"
+ " return true;\n"
+ " }";
+ RFTA_ASSERT_EQUAL( expectedSource, document_->getAllText() );
+ }
+
+
+ CodeModel::ExpressionPtr
+ CodeWriterTest::makeTrueExpression()
+ {
+ return CodeModel::ExpressionPtr( new CodeModel::GenericExpression( "true" ) );
+ }
+
+
} // namespace Refactoring
Index: CodeWriterTest.h
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeWriterTest.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** CodeWriterTest.h 7 Mar 2003 07:58:31 -0000 1.3
--- CodeWriterTest.h 7 Mar 2003 09:41:11 -0000 1.4
***************
*** 6,14 ****
#define RFTA_CODEWRITERTEST_H
- #include "SourceBasedTestBase.h"
- #include "CodeRewriter.h"
#include <rfta/refactoring/CodeModelStatements.h>
#include <rfta/refactoring/CodeModelExpressions.h>
#include <rfta/refactoring/PlainTextDocument.h>
--- 6,14 ----
#define RFTA_CODEWRITERTEST_H
#include <rfta/refactoring/CodeModelStatements.h>
#include <rfta/refactoring/CodeModelExpressions.h>
#include <rfta/refactoring/PlainTextDocument.h>
+ #include "SourceBasedTestBase.h"
+ #include "CodeRewriter.h"
***************
*** 23,26 ****
--- 23,27 ----
CPPUNIT_TEST( testRewriteStatement );
CPPUNIT_TEST( testInsertStatement );
+ CPPUNIT_TEST( testInsertReturnValueStatement );
CPPUNIT_TEST_SUITE_END();
***************
*** 38,45 ****
--- 39,48 ----
void testRewriteStatement();
void testInsertStatement();
+ void testInsertReturnValueStatement();
private:
void generateCompound();
void rewriteSource();
+ CodeModel::ExpressionPtr makeTrueExpression();
CodeModel::CompoundStatementPtr compound_;
Index: IndentLevelManager.h
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/IndentLevelManager.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** IndentLevelManager.h 7 Mar 2003 07:58:31 -0000 1.2
--- IndentLevelManager.h 7 Mar 2003 09:41:11 -0000 1.3
***************
*** 6,9 ****
--- 6,11 ----
#define RFTA_INDENTLEVELMANAGER_H
+ #include <rfta/refactoring/Config.h>
+ #include <string>
namespace Refactoring
|