File tree Expand file tree Collapse file tree 3 files changed +24
-1
lines changed Expand file tree Collapse file tree 3 files changed +24
-1
lines changed Original file line number Diff line number Diff line change 1
1
---
2
2
refs/heads/master: 3574c513bbc5578dd9346b4ea9ab5995c5927bb5
3
- refs/heads/master-next: 558bb50560329352fce421203afdc8d7408070dc
3
+ refs/heads/master-next: 37138f69d3f41b51efb31297f55ec89eb654f95c
4
4
refs/tags/osx-passed: b6b74147ef8a386f532cf9357a1bde006e552c54
5
5
refs/tags/swift-2.2-SNAPSHOT-2015-12-01-a: 6bb18e013c2284f2b45f5f84f2df2887dc0f7dea
6
6
refs/tags/swift-2.2-SNAPSHOT-2015-12-01-b: 66d897bfcf64a82cb9a87f5e663d889189d06d07
Original file line number Diff line number Diff line change @@ -3583,6 +3583,14 @@ SubstitutionMap TypeBase::getMemberSubstitutionMap(
3583
3583
3584
3584
Type TypeBase::getTypeOfMember (ModuleDecl *module , const ValueDecl *member,
3585
3585
Type memberType) {
3586
+ if (is<ErrorType>())
3587
+ return ErrorType::get (getASTContext ());
3588
+
3589
+ if (auto *lvalue = getAs<LValueType>()) {
3590
+ auto objectTy = lvalue->getObjectType ();
3591
+ return objectTy->getTypeOfMember (module , member, memberType);
3592
+ }
3593
+
3586
3594
// If no member type was provided, use the member's type.
3587
3595
if (!memberType)
3588
3596
memberType = member->getInterfaceType ();
Original file line number Diff line number Diff line change @@ -1504,3 +1504,18 @@ struct AllCompositionsStruct {
1504
1504
}
1505
1505
}
1506
1506
1507
+ // rdar://problem/54184846 - crash while trying to retrieve wrapper info on l-value base type
1508
+ func test_missing_method_with_lvalue_base( ) {
1509
+ @propertyWrapper
1510
+ struct Ref < T> {
1511
+ var wrappedValue : T
1512
+ }
1513
+
1514
+ struct S < T> where T: RandomAccessCollection , T. Element: Equatable {
1515
+ @Ref var v : T . Element
1516
+
1517
+ init ( items: T , v: Ref < T . Element > ) {
1518
+ self . v. binding = v // expected-error {{value of type 'T.Element' has no member 'binding'}}
1519
+ }
1520
+ }
1521
+ }
You can’t perform that action at this time.
0 commit comments