File tree Expand file tree Collapse file tree 3 files changed +17
-13
lines changed Expand file tree Collapse file tree 3 files changed +17
-13
lines changed Original file line number Diff line number Diff line change @@ -312,7 +312,11 @@ static std::shared_ptr<CompileTimeValue> extractCompileTimeValue(Expr *expr) {
312312
313313 case ExprKind::DotSelf: {
314314 auto dotSelfExpr = cast<DotSelfExpr>(expr);
315- return std::make_shared<TypeValue>(dotSelfExpr->getType ());
315+ auto dotSelfMetaType = dotSelfExpr->getType ()->getAs <AnyMetatypeType>();
316+ if (dotSelfMetaType)
317+ return std::make_shared<TypeValue>(dotSelfMetaType->getInstanceType ());
318+ else
319+ break ;
316320 }
317321
318322 case ExprKind::UnderlyingToOpaque: {
Original file line number Diff line number Diff line change @@ -26,22 +26,22 @@ struct TypeValuePropertyStruct : MyProto {
2626// CHECK-NEXT: {
2727// CHECK-NEXT: "valueKind": "Type",
2828// CHECK-NEXT: "value": {
29- // CHECK-NEXT: "type": "ExtractTypeValue.Warbler<Swift.String>.Type ",
30- // CHECK-NEXT: "mangledName": "16ExtractTypeValue7WarblerVySSGm "
29+ // CHECK-NEXT: "type": "ExtractTypeValue.Warbler<Swift.String>",
30+ // CHECK-NEXT: "mangledName": "16ExtractTypeValue7WarblerVySSG "
3131// CHECK-NEXT: }
3232// CHECK-NEXT: },
3333// CHECK-NEXT: {
3434// CHECK-NEXT: "valueKind": "Type",
3535// CHECK-NEXT: "value": {
36- // CHECK-NEXT: "type": "ExtractTypeValue.Avocet.Type ",
37- // CHECK-NEXT: "mangledName": "16ExtractTypeValue6AvocetVm "
36+ // CHECK-NEXT: "type": "ExtractTypeValue.Avocet",
37+ // CHECK-NEXT: "mangledName": "16ExtractTypeValue6AvocetV "
3838// CHECK-NEXT: }
3939// CHECK-NEXT: },
4040// CHECK-NEXT: {
4141// CHECK-NEXT: "valueKind": "Type",
4242// CHECK-NEXT: "value": {
43- // CHECK-NEXT: "type": "ExtractTypeValue.RainbowLorikeet.Type ",
44- // CHECK-NEXT: "mangledName": "16ExtractTypeValue15RainbowLorikeetVm "
43+ // CHECK-NEXT: "type": "ExtractTypeValue.RainbowLorikeet",
44+ // CHECK-NEXT: "mangledName": "16ExtractTypeValue15RainbowLorikeetV "
4545// CHECK-NEXT: }
4646// CHECK-NEXT: }
4747// CHECK-NEXT: ]
Original file line number Diff line number Diff line change @@ -26,22 +26,22 @@ public struct Types : MyProto {
2626// CHECK-NEXT: {
2727// CHECK-NEXT: "valueKind": "Type",
2828// CHECK-NEXT: "value": {
29- // CHECK-NEXT: "type": "ExtractTypes.TypeA.Type "
30- // CHECK-NEXT: "mangledName": "12ExtractTypes5TypeAVm "
29+ // CHECK-NEXT: "type": "ExtractTypes.TypeA"
30+ // CHECK-NEXT: "mangledName": "12ExtractTypes5TypeAV "
3131// CHECK-NEXT: }
3232// CHECK-NEXT: },
3333// CHECK-NEXT: {
3434// CHECK-NEXT: "valueKind": "Type",
3535// CHECK-NEXT: "value": {
36- // CHECK-NEXT: "type": "ExtractTypes.TypeB.Type "
37- // CHECK-NEXT: "mangledName": "12ExtractTypes5TypeBOm "
36+ // CHECK-NEXT: "type": "ExtractTypes.TypeB"
37+ // CHECK-NEXT: "mangledName": "12ExtractTypes5TypeBO "
3838// CHECK-NEXT: }
3939// CHECK-NEXT: },
4040// CHECK-NEXT: {
4141// CHECK-NEXT: "valueKind": "Type",
4242// CHECK-NEXT: "value": {
43- // CHECK-NEXT: "type": "ExtractTypes.TypeC.Type "
44- // CHECK-NEXT: "mangledName": "12ExtractTypes5TypeCCm "
43+ // CHECK-NEXT: "type": "ExtractTypes.TypeC"
44+ // CHECK-NEXT: "mangledName": "12ExtractTypes5TypeCC "
4545// CHECK-NEXT: }
4646// CHECK-NEXT: }
4747// CHECK-NEXT: ]
You can’t perform that action at this time.
0 commit comments