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) {
312
312
313
313
case ExprKind::DotSelf: {
314
314
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 ;
316
320
}
317
321
318
322
case ExprKind::UnderlyingToOpaque: {
Original file line number Diff line number Diff line change @@ -26,22 +26,22 @@ struct TypeValuePropertyStruct : MyProto {
26
26
// CHECK-NEXT: {
27
27
// CHECK-NEXT: "valueKind": "Type",
28
28
// 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 "
31
31
// CHECK-NEXT: }
32
32
// CHECK-NEXT: },
33
33
// CHECK-NEXT: {
34
34
// CHECK-NEXT: "valueKind": "Type",
35
35
// 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 "
38
38
// CHECK-NEXT: }
39
39
// CHECK-NEXT: },
40
40
// CHECK-NEXT: {
41
41
// CHECK-NEXT: "valueKind": "Type",
42
42
// 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 "
45
45
// CHECK-NEXT: }
46
46
// CHECK-NEXT: }
47
47
// CHECK-NEXT: ]
Original file line number Diff line number Diff line change @@ -26,22 +26,22 @@ public struct Types : MyProto {
26
26
// CHECK-NEXT: {
27
27
// CHECK-NEXT: "valueKind": "Type",
28
28
// 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 "
31
31
// CHECK-NEXT: }
32
32
// CHECK-NEXT: },
33
33
// CHECK-NEXT: {
34
34
// CHECK-NEXT: "valueKind": "Type",
35
35
// 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 "
38
38
// CHECK-NEXT: }
39
39
// CHECK-NEXT: },
40
40
// CHECK-NEXT: {
41
41
// CHECK-NEXT: "valueKind": "Type",
42
42
// 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 "
45
45
// CHECK-NEXT: }
46
46
// CHECK-NEXT: }
47
47
// CHECK-NEXT: ]
You can’t perform that action at this time.
0 commit comments