UPROPERTY Variable Naming Collisions

UHT (UnrealHeaderTool) generates code based on dummy macros like UPROPERTY (they do nothing during compilation) and rest of the header file code (function names etc.), that code is for reflation system and other fancy features you see in UMACROs making UE4 coding a lot easier. So your code collides with generated code, whatever this is bug depends if you consider rules forced by UHT as conventions. Btw you can find generated code somewhere in Intermidite directory in your project directory