-
Notifications
You must be signed in to change notification settings - Fork 461
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Description
#2247 better isolates the AttributeRemoverTests to just AttributeRemover. Along the way, a new assert helper was created that, unlike assertMacroExpansion, doesn't trim newlines before comparing values.
Notably, this revealed a previously undetected behavior in AttributeRemover: it outputs an additional leading newline when the removed attribute isn't preceded by any tokens. For instance:
assertSyntaxRemovingTestAttributes {
"""
@Test
var x: Int
"""
} reduction: {
"var x: Int"
}
//failed - Attribute removal did not produce the expected reduced source
//+
// var x: Int
//
//Actual reduced source:
//
//var x: Intand:
assertSyntaxRemovingTestAttributes {
"""
@Test
/* comment */
var value: Int
"""
} reduction: {
"""
/* comment */
var value: Int
"""
}
//failed - Attribute removal did not produce the expected reduced source
//+
// /* comment */
// var value: Int
//
//Actual reduced source:
//
///* comment */
//var value: IntThe following tests outputs have an extra leading newline:
testEmptyOnOwnLineBeforeVariabletestEmptyTwiceOnOwnLineBeforeVariabletestEmpyNewlineBlockCommenttestEmptyAndAttributeOnOwnLinesBeforeVariabletestEmptyOnOwnLineThenEmptyBeforeVariable
Before #2247, this behavior is masked by assertMacroExpansion. In #2247, the above tests are "fixed" by including the unwanted leading newlines in the expected output and marking those tests with FIXMEs (to be properly fixed in a separate PR).
Steps to Reproduce
No response
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working