ymandel added a comment. In D139737#3993813 <https://reviews.llvm.org/D139737#3993813>, @NoQ wrote:
> In D139737#3991699 <https://reviews.llvm.org/D139737#3991699>, @ymandel wrote: > >> 2. We (google) have a tool for changing the type of a variable which takes >> into account all cascading changes to other declarations that result from >> that type change. It is built on Transformer and another library that builds >> a graph of relationships in the AST, relevant to the type-rewriting problem. >> Unfortunately, that's all internal -- not for IP reasons but simply because >> we never had reason to upstream it (nor an obvioius place to put it). So, >> I'd say that this advanced tooling is useful here if you want to >> _selectively_ change type T to type S, so you need tooling to tell you >> specifically which S's to update. If you're changing all T to S, then the >> problem is simpler. > > Yeah we want to be selective, so in our case there's an extra analysis step > between noticing that the variable is of a certain type and realizing that we > want to change it to a different type. > > I guess I'm curious if there are smaller building blocks of your machine that > we could reuse. Like, for instance, the procedure of updating the type of the > variable (without even updating all uses): it's a somewhat self-contained > problem, and it's difficult enough on its own (you need to split up > multi-variable `DeclStmt`s in two or three, find the right source locations > for everything, and so on). I wonder if we could avoid reinventing the wheel > there somehow. Sure. I'll try to get you some sample code later today. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D139737/new/ https://reviews.llvm.org/D139737 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits