mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
It better matches with SwiftSyntax model. Using TrailingObjects reduces the number of heap allocation which gains 18% performance improvement.
41 lines
1.4 KiB
C++
41 lines
1.4 KiB
C++
#include "swift/Parse/Token.h"
|
|
#include "swift/Syntax/RawSyntax.h"
|
|
#include "swift/Syntax/SyntaxFactory.h"
|
|
#include "llvm/ADT/SmallString.h"
|
|
#include "gtest/gtest.h"
|
|
|
|
using namespace swift;
|
|
using namespace swift::syntax;
|
|
|
|
// TODO
|
|
|
|
TEST(RawSyntaxTests, accumulateAbsolutePosition1) {
|
|
auto Token = RawSyntax::make(tok::identifier,
|
|
OwnedString("aaa"),
|
|
SourcePresence::Present,
|
|
{
|
|
TriviaPiece::newlines(2),
|
|
TriviaPiece::carriageReturns(2),
|
|
TriviaPiece::carriageReturnLineFeeds(2)
|
|
},
|
|
{ });
|
|
AbsolutePosition Pos;
|
|
Token->accumulateAbsolutePosition(Pos);
|
|
ASSERT_EQ(7u, Pos.getLine());
|
|
ASSERT_EQ(4u, Pos.getColumn());
|
|
ASSERT_EQ(11u, Pos.getOffset());
|
|
}
|
|
|
|
TEST(RawSyntaxTests, accumulateAbsolutePosition2) {
|
|
auto Token = RawSyntax::make(tok::identifier,
|
|
OwnedString("aaa"),
|
|
SourcePresence::Present,
|
|
{TriviaPiece::blockComment("/* \n\r\r\n */")},
|
|
{ });
|
|
AbsolutePosition Pos;
|
|
Token->accumulateAbsolutePosition(Pos);
|
|
ASSERT_EQ(4u, Pos.getLine());
|
|
ASSERT_EQ(7u, Pos.getColumn());
|
|
ASSERT_EQ(13u, Pos.getOffset());
|
|
}
|