Skip to content

Commit b4ff457

Browse files
committed
---
yaml --- r: 327167 b: refs/heads/tensorflow c: 6842134 h: refs/heads/master i: 327165: f4c9952 327163: db3acd2 327159: 09602ef 327151: 88e9eda 327135: 79fc198 327103: c8a3c2e 327039: bd26268 326911: 23f83a4 326655: caf4a22
1 parent 7a0db00 commit b4ff457

File tree

7 files changed

+70
-23
lines changed

7 files changed

+70
-23
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -816,7 +816,7 @@ refs/tags/swift-DEVELOPMENT-SNAPSHOT-2018-04-25-a: 22f738a831d43aff2b9c9773bcb65
816816
refs/tags/swift-DEVELOPMENT-SNAPSHOT-2018-05-08-a: 7d98cc16689baba5c8a3b90a9329bdcc1a12b4e9
817817
refs/heads/cherr42: a566ad54b073c2c56ac0a705d0a5bed9743135a5
818818
"refs/heads/codable_test_comment_fix": fc8f6824f7f347e1e8db55bff62db385c5728b5a
819-
refs/heads/tensorflow: 6fcbb4046293e9484c98cd03aca45bf4e1313d97
819+
refs/heads/tensorflow: 684213415224f8367c35734e8996d26d01e3202a
820820
refs/tags/swift-4.1-DEVELOPMENT-SNAPSHOT-2018-05-11-a: 8126fd7a652e2f70ad6d76505239e34fb2ef3e1a
821821
refs/tags/swift-4.1-DEVELOPMENT-SNAPSHOT-2018-05-12-a: b3fd3dd84df6717f2e2e9df58c6d7e99fed57086
822822
refs/tags/swift-4.1-DEVELOPMENT-SNAPSHOT-2018-05-13-a: 71135119579039dc321c5f65d870050fe36efda2

branches/tensorflow/lib/Parse/ParseType.cpp

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -391,7 +391,6 @@ Parser::TypeASTResult Parser::parseType(Diag<> MessageID,
391391
}
392392

393393
if (Tok.is(tok::arrow)) {
394-
auto InputNode = SyntaxContext->popIf<ParsedTypeSyntax>().getValue();
395394
// Handle type-function if we have an arrow.
396395
auto ArrowLoc = Tok.getLoc();
397396
auto Arrow = consumeTokenSyntax();
@@ -404,21 +403,23 @@ Parser::TypeASTResult Parser::parseType(Diag<> MessageID,
404403
}
405404
ParserResult<TypeRepr> SecondHalf =
406405
parseType(diag::expected_type_function_result);
407-
auto SecondTy = SyntaxContext->popIf<ParsedTypeSyntax>();
408406
if (SecondHalf.isParseError()) {
409-
SyntaxContext->addSyntax(InputNode);
410407
if (Throws)
411408
SyntaxContext->addSyntax(*Throws);
412409
SyntaxContext->addSyntax(Arrow);
413-
if (SecondTy)
414-
SyntaxContext->addSyntax(*SecondTy);
415410
if (SecondHalf.hasCodeCompletion())
416411
return makeParserCodeCompletionResult<TypeRepr>();
417412
if (SecondHalf.isNull())
418413
return nullptr;
419414
}
420415

421416
ParsedFunctionTypeSyntaxBuilder Builder(*SyntaxContext);
417+
Builder.useReturnType(SyntaxContext->popIf<ParsedTypeSyntax>().getValue());
418+
Builder.useArrow(Arrow);
419+
if (Throws)
420+
Builder.useThrowsOrRethrowsKeyword(*Throws);
421+
422+
auto InputNode = SyntaxContext->popIf<ParsedTypeSyntax>().getValue();
422423
bool isVoid = false;
423424
if (auto TupleTypeNode = InputNode.getAs<ParsedTupleTypeSyntax>()) {
424425
// Decompose TupleTypeSyntax and repack into FunctionType.
@@ -446,13 +447,6 @@ Parser::TypeASTResult Parser::parseType(Diag<> MessageID,
446447
Builder.addArgumentsMember(ParsedSyntaxRecorder::makeTupleTypeElement(
447448
InputNode, /*TrailingComma=*/None, *SyntaxContext));
448449
}
449-
450-
Builder.useReturnType(*SecondTy);
451-
if (Throws)
452-
Builder.useThrowsOrRethrowsKeyword(*Throws);
453-
Builder.useArrow(Arrow);
454-
Builder.useReturnType(*SecondTy);
455-
456450
SyntaxContext->addSyntax(Builder.build());
457451

458452
auto FunctionType = SyntaxContext->topNode<FunctionTypeSyntax>();
@@ -1113,20 +1107,21 @@ Parser::TypeResult Parser::parseTypeTupleBody() {
11131107
// Parse the type annotation.
11141108
auto TypeLoc = Tok.getLoc();
11151109
auto TypeASTResult = parseType(diag::expected_type);
1116-
auto Type = SyntaxContext->popIf<ParsedTypeSyntax>();
11171110
if (TypeASTResult.hasCodeCompletion() || TypeASTResult.isNull()) {
11181111
Junk.append(LocalJunk.begin(), LocalJunk.end());
1119-
if (Type)
1120-
Junk.push_back(*Type);
1112+
if (auto parsedT = SyntaxContext->popIf<ParsedTypeSyntax>())
1113+
Junk.push_back(*parsedT);
11211114
skipListUntilDeclRBraceSyntax(Junk, LParenLoc, tok::r_paren, tok::comma);
11221115
return TypeASTResult.hasCodeCompletion()
11231116
? makeParserCodeCompletionStatus()
11241117
: makeParserError();
11251118
}
11261119

1120+
auto Type = *SyntaxContext->popIf<ParsedTypeSyntax>();
1121+
11271122
if (IsInOutObsoleted) {
11281123
bool IsTypeAlreadyAttributed = false;
1129-
if (auto AttributedType = Type->getAs<ParsedAttributedTypeSyntax>())
1124+
if (auto AttributedType = Type.getAs<ParsedAttributedTypeSyntax>())
11301125
IsTypeAlreadyAttributed = AttributedType->getDeferredSpecifier().hasValue();
11311126

11321127
if (IsTypeAlreadyAttributed) {
@@ -1172,7 +1167,7 @@ Parser::TypeResult Parser::parseTypeTupleBody() {
11721167
Comma = consumeTokenSyntaxIf(tok::comma);
11731168

11741169
auto Element = ParsedSyntaxRecorder::makeTupleTypeElement(
1175-
InOut, Name, SecondName, Colon, *Type, ElementEllipsis, Initializer,
1170+
InOut, Name, SecondName, Colon, Type, ElementEllipsis, Initializer,
11761171
Comma, *SyntaxContext);
11771172

11781173
Junk.push_back(Element);

branches/tensorflow/lib/SILOptimizer/Transforms/Outliner.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -737,7 +737,7 @@ BridgedArgument BridgedArgument::match(unsigned ArgIdx, SILValue Arg,
737737
// release_value %17 : $Optional<NSString>
738738
//
739739
auto *Enum = dyn_cast<EnumInst>(Arg);
740-
if (!Enum)
740+
if (!Enum || !Enum->hasOperand())
741741
return BridgedArgument();
742742

743743
if (SILBasicBlock::iterator(Enum) == Enum->getParent()->begin())

branches/tensorflow/test/Frontend/dump-parse.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: not %target-swift-frontend -dump-parse %s | %FileCheck %s
1+
// RUN: not %target-swift-frontend -dump-parse %s 2>&1 | %FileCheck %s
22
// RUN: not %target-swift-frontend -dump-ast %s | %FileCheck %s -check-prefix=CHECK-AST
33

44
// CHECK-LABEL: (func_decl{{.*}}"foo(_:)"

branches/tensorflow/test/SILOptimizer/Inputs/Outliner.h

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,37 @@
2323
- (id) doSomething2 : (NSArray<NSString*>*) arr;
2424
@end
2525

26+
typedef NS_ENUM(NSUInteger, MyEventType) {
27+
MyEventTypeA = 1,
28+
MyEventTypeB = 2
29+
};
30+
31+
@interface MyWindow : NSObject
32+
@property NSInteger windowNumber;
33+
@end
34+
35+
@interface MyView : NSObject
36+
@property (nonatomic, nullable, readonly, strong) MyWindow *window;
37+
@end
38+
39+
typedef struct MyPoint {
40+
NSInteger x;
41+
NSInteger y;
42+
} MyPoint;
43+
44+
@interface MyGraphicsContext : NSObject
45+
@end
46+
47+
@interface MyEvent : NSObject
48+
+ (nullable MyEvent *)mouseEventWithType:(MyEventType)type
49+
location:(MyPoint)pt
50+
windowNumber:(NSInteger)wNum
51+
context:(nullable MyGraphicsContext * __unused)context
52+
eventNumber:(NSInteger)eNum
53+
clickCount:(NSInteger)cnt
54+
pressure:(float)pressure;
55+
@end
56+
2657
NS_ASSUME_NONNULL_BEGIN
2758
@protocol Treeish <NSObject>
2859
- (nullable NSArray *) treeishChildren;

branches/tensorflow/test/SILOptimizer/outliner.swift

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,3 +184,27 @@ extension Operation {
184184
public func dontCrash(a: Any) {
185185
(a as AnyObject).treeishChildren()
186186
}
187+
188+
public class Foo : NSObject {
189+
var x: MyView? = nil
190+
191+
public func dontCrash(_ pt: MyPoint) -> Bool {
192+
guard let somView = x,
193+
let window = somView.window else {
194+
return false
195+
}
196+
197+
guard let event = MyEvent.mouseEvent(with: .A,
198+
location: pt,
199+
windowNumber: window.windowNumber,
200+
context: nil,
201+
eventNumber: 0,
202+
clickCount: 1,
203+
pressure:1) else {
204+
print("failure")
205+
return false
206+
}
207+
print(event)
208+
return true
209+
}
210+
}

branches/tensorflow/test/Syntax/round_trip_misc.swift

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,6 @@ do {
1919
do {
2020
typealias Alias3 = (a b C,
2121
}
22-
do {
23-
typealias Alias3 = () -> @objc func
24-
}
2522

2623
// Orphan '}' at top level
2724
}

0 commit comments

Comments
 (0)