Consider code like:
---
void main() {
}
---
There will be a synthetic unnamed class created, wrapping the top-level methods and fields. But, the start position of the synthetic unnamed class is (in the case above) "5", not "0", as it could be expected.
Also, the synthetic class has (synthetic) modifiers tree, which also has position "5", although "-1" (NOPOS) would be more adequate for synthetic modifiers.
---
void main() {
}
---
There will be a synthetic unnamed class created, wrapping the top-level methods and fields. But, the start position of the synthetic unnamed class is (in the case above) "5", not "0", as it could be expected.
Also, the synthetic class has (synthetic) modifiers tree, which also has position "5", although "-1" (NOPOS) would be more adequate for synthetic modifiers.