[LLVMdev] RFC: variable names

Robinson, Paul Paul_Robinson at playstation.sony.com
Mon Oct 13 17:41:28 PDT 2014


> struct MyClass {
>  static int x;
>  int y;
>
>  void MyFunction(MyClass a, MyClass b) {
>    int c;
>
>    std::sort(......, [] {
>      std::ptrdiff_t d = ...;
>      ++c;
>      // ...
>      f(a.x);
>      g(x);
>      h(y);
>    });
>  }
> };
>
> Between arguments, lambda captures, non-static and static locals, I have 
> no idea how to usefully distinguish between x, y, a, b, c and d here. I 
> don't think it is meaningful to try. They are *all* variables.

You're too good a programmer. :-)  If you'd shot yourself in the foot more
often you might appreciate a convention that distinguishes between a
transient local variable and one that is the same entity used by twelve 
other methods in the class.

In this example I'd argue that x and y are meaningfully different things
than a, b, c, and d.  And, that if I see a lambda body that says
      ++c;
      f(a.x_);
      g(x_);
      h(y_);
it's useful to know *just by looking at it* that c belongs to the function 
and x_ and y_ belong to the class instance.
--paulr





More information about the llvm-dev mailing list