[AST] Sink 'part of explicit cast' down into ImplicitCastExpr

Authored by lebedev.ri on Jul 27 2018, 12:27 AM.


[AST] Sink 'part of explicit cast' down into ImplicitCastExpr

As discussed in IRC with @rsmith, it is slightly not good to keep that in the CastExpr itself:
Given the explicit cast, which is represented in AST as an ExplicitCastExpr + ImplicitCastExpr's,
only the ImplicitCastExpr's will be marked as PartOfExplicitCast, but not the ExplicitCastExpr itself.
Thus, it is only ever true for ImplicitCastExpr's, so we don't need to write/read/dump it for ExplicitCastExpr's.

We don't need to worry that we write the PartOfExplicitCast in PCH after CastExpr::path_iterator,
since the ExprImplicitCastAbbrev is only used when the NumBaseSpecs == 0, i.e. there is no 'path'.

Reviewers: rsmith, rjmccall, erichkeane, aaron.ballman

Reviewed By: rsmith, erichkeane

Subscribers: vsk, cfe-commits, rsmith

Tags: #clang

Differential Revision: https://reviews.llvm.org/D49838

llvm-svn: 338108