@@ -1676,6 +1676,7 @@ StringRef DescriptionOf(APValue RV, bool Granular = true) {
16761676 return " an annotation" ;
16771677 }
16781678 }
1679+ return " unknown reflection" ;
16791680}
16801681
16811682bool DiagnoseReflectionKind (DiagFn Diagnoser, SourceRange Range,
@@ -6450,31 +6451,38 @@ bool reflection_hash(APValue &Result, ASTContext &C, MetaActions &Meta,
64506451 ID .AddInteger (static_cast <std::size_t >(R.getReflectionKind ()));
64516452
64526453 switch (R.getReflectionKind ()) {
6453- case ReflectionKind::Null: { // DONE
6454+ case ReflectionKind::Null: {
64546455 ID .AddInteger (0 );
64556456 } break ;
6456- case ReflectionKind::Type: { // DONE
6457+ case ReflectionKind::Type: {
64576458 appendQualType (ID , R.getReflectedType ());
64586459 } break ;
6459- case ReflectionKind::Declaration: { // DONE
6460- appendSourceRange (ID , R.getReflectedDecl ()->getSourceRange ());
6461- } break ;
6462- case ReflectionKind::Object: { // TODO
6460+ case ReflectionKind::Object: {
64636461 llvm_unreachable (" TODO - Object not yet hashable" );
64646462 } break ;
6465- case ReflectionKind::Value: { // DONE
6463+ case ReflectionKind::Value: {
64666464 R.getReflectedValue ().Profile (ID );
6467- break ; }
6468- case ReflectionKind::Template: { // DONE
6465+ break ; }
6466+ case ReflectionKind::Declaration: {
6467+ appendSourceRange (ID , R.getReflectedDecl ()->getSourceRange ());
6468+ } break ;
6469+ case ReflectionKind::Template: {
64696470 appendSourceRange (ID , R.getReflectedTemplate ().getAsTemplateDecl ()->getSourceRange ());
64706471 } break ;
6471- case ReflectionKind::Namespace: { // DONE
6472+ case ReflectionKind::Namespace: {
64726473 appendSourceRange (ID , R.getReflectedNamespace ()->getSourceRange ());
64736474 } break ;
6474- case ReflectionKind::BaseSpecifier: { // DONE
6475+ case ReflectionKind::EntityProxy: {
6476+ llvm_unreachable (" TODO - EntityProxy not yet hashable" );
6477+ appendSourceLocation (ID , R.getReflectedEntityProxy ()->getLocation ());
6478+ } break ;
6479+ case ReflectionKind::Parameter: {
6480+ llvm_unreachable (" TODO - Parameter not yet hashable" );
6481+ } break ;
6482+ case ReflectionKind::BaseSpecifier: {
64756483 appendSourceRange (ID , R.getReflectedBaseSpecifier ()->getSourceRange ());
64766484 } break ;
6477- case ReflectionKind::DataMemberSpec: { // DONE
6485+ case ReflectionKind::DataMemberSpec: {
64786486 TagDataMemberSpec *TDMS = R.getReflectedDataMemberSpec ();
64796487 appendQualType (ID , TDMS ->Ty );
64806488 if (TDMS ->Name ) {
@@ -6488,7 +6496,7 @@ bool reflection_hash(APValue &Result, ASTContext &C, MetaActions &Meta,
64886496 }
64896497 ID .AddInteger (TDMS ->NoUniqueAddress );
64906498 } break ;
6491- case ReflectionKind::Annotation: { // DONE
6499+ case ReflectionKind::Annotation: {
64926500 appendSourceLocation (ID , R.getReflectedAnnotation ()->getEqLoc ());
64936501 } break ;
64946502 default :
0 commit comments