File tree Expand file tree Collapse file tree 4 files changed +309
-1
lines changed
src/compiler/scala/tools/nsc/backend/jribble Expand file tree Collapse file tree 4 files changed +309
-1
lines changed Original file line number Diff line number Diff line change @@ -465,7 +465,7 @@ abstract class ProtobufConverter extends AnyRef with JribbleAnalysis {
465
465
val tpe : P .Type = convert(exBinding.symbol.tpe)
466
466
assert(tpe.getType == P .Type .TypeType .Named )
467
467
proto.setTpe(tpe.getNamedType)
468
- proto.setParam(exName .encode.toString)
468
+ proto.setParam(exBinding.symbol.name .encode.toString)
469
469
470
470
case CaseDef (Typed (Ident (nme.WILDCARD ), tpt), _, catchBody) =>
471
471
val tpe : P .Type = convert(tpt.tpe)
Original file line number Diff line number Diff line change
1
+ name {
2
+ name: "Try$$anonfun$1"
3
+ }
4
+ modifiers {
5
+ isPublic: true
6
+ isFinal: true
7
+ }
8
+ ext {
9
+ pkg: "scala.runtime"
10
+ name: "AbstractFunction0"
11
+ }
12
+ implements {
13
+ pkg: "scala"
14
+ name: "Serializable"
15
+ }
16
+ member {
17
+ type: Method
18
+ modifiers {
19
+ isPublic: true
20
+ isFinal: true
21
+ }
22
+ method {
23
+ name: "apply"
24
+ returnType {
25
+ type: Named
26
+ namedType {
27
+ pkg: "java.lang"
28
+ name: "Exception"
29
+ }
30
+ }
31
+ body {
32
+ type: Block
33
+ block {
34
+ statement {
35
+ type: Return
36
+ returnStat {
37
+ expression {
38
+ type: FieldRef
39
+ fieldRef {
40
+ qualifier {
41
+ type: ThisRef
42
+ }
43
+ enclosingType {
44
+ name: "Try$$anonfun$1"
45
+ }
46
+ name: "ex$2"
47
+ }
48
+ }
49
+ }
50
+ }
51
+ }
52
+ }
53
+ }
54
+ }
55
+ member {
56
+ type: Method
57
+ modifiers {
58
+ isPublic: true
59
+ isFinal: true
60
+ }
61
+ method {
62
+ name: "apply"
63
+ returnType {
64
+ type: Named
65
+ namedType {
66
+ pkg: "java.lang"
67
+ name: "Object"
68
+ }
69
+ }
70
+ body {
71
+ type: Block
72
+ block {
73
+ statement {
74
+ type: Return
75
+ returnStat {
76
+ expression {
77
+ type: MethodCall
78
+ methodCall {
79
+ receiver {
80
+ type: ThisRef
81
+ }
82
+ signature {
83
+ name: "apply"
84
+ owner {
85
+ name: "Try$$anonfun$1"
86
+ }
87
+ returnType {
88
+ type: Named
89
+ namedType {
90
+ pkg: "java.lang"
91
+ name: "Exception"
92
+ }
93
+ }
94
+ }
95
+ }
96
+ }
97
+ }
98
+ }
99
+ }
100
+ }
101
+ }
102
+ }
103
+ member {
104
+ type: Field
105
+ modifiers {
106
+ isPrivate: true
107
+ }
108
+ fieldDef {
109
+ tpe {
110
+ type: Named
111
+ namedType {
112
+ pkg: "java.lang"
113
+ name: "Exception"
114
+ }
115
+ }
116
+ name: "ex$2"
117
+ }
118
+ }
119
+ member {
120
+ type: Method
121
+ modifiers {
122
+ isPublic: true
123
+ }
124
+ method {
125
+ isConstructor: true
126
+ name: "new"
127
+ paramDef {
128
+ name: "$outer"
129
+ tpe {
130
+ type: Named
131
+ namedType {
132
+ name: "Try"
133
+ }
134
+ }
135
+ }
136
+ paramDef {
137
+ name: "ex$2"
138
+ tpe {
139
+ type: Named
140
+ namedType {
141
+ pkg: "java.lang"
142
+ name: "Exception"
143
+ }
144
+ }
145
+ }
146
+ returnType {
147
+ type: Named
148
+ namedType {
149
+ name: "Try$$anonfun$1"
150
+ }
151
+ }
152
+ body {
153
+ type: Block
154
+ block {
155
+ statement {
156
+ type: Expr
157
+ expr {
158
+ type: Assignment
159
+ assignment {
160
+ lhs {
161
+ type: FieldRef
162
+ fieldRef {
163
+ qualifier {
164
+ type: ThisRef
165
+ }
166
+ enclosingType {
167
+ name: "Try$$anonfun$1"
168
+ }
169
+ name: "ex$2"
170
+ }
171
+ }
172
+ rhs {
173
+ type: VarRef
174
+ varRef {
175
+ name: "ex$2"
176
+ }
177
+ }
178
+ }
179
+ }
180
+ }
181
+ statement {
182
+ type: Expr
183
+ expr {
184
+ type: MethodCall
185
+ methodCall {
186
+ receiver {
187
+ type: ThisRef
188
+ }
189
+ signature {
190
+ name: "new"
191
+ owner {
192
+ pkg: "scala.runtime"
193
+ name: "AbstractFunction0"
194
+ }
195
+ returnType {
196
+ type: Named
197
+ namedType {
198
+ pkg: "scala.runtime"
199
+ name: "AbstractFunction0"
200
+ }
201
+ }
202
+ }
203
+ }
204
+ }
205
+ }
206
+ }
207
+ }
208
+ }
209
+ }
Original file line number Diff line number Diff line change @@ -531,6 +531,100 @@ member {
531
531
}
532
532
}
533
533
}
534
+ member {
535
+ type: Method
536
+ modifiers {
537
+ isPublic: true
538
+ }
539
+ method {
540
+ name: "catchAndPassToLambda"
541
+ returnType {
542
+ type: Void
543
+ }
544
+ body {
545
+ type: Block
546
+ block {
547
+ statement {
548
+ type: Try
549
+ tryStat {
550
+ block {
551
+ type: Block
552
+ block {
553
+ }
554
+ }
555
+ catch {
556
+ tpe {
557
+ pkg: "java.lang"
558
+ name: "Exception"
559
+ }
560
+ param: "ex$2"
561
+ body {
562
+ type: Block
563
+ block {
564
+ statement {
565
+ type: VarDef
566
+ varDef {
567
+ tpe {
568
+ type: Named
569
+ namedType {
570
+ pkg: "scala"
571
+ name: "Function0"
572
+ }
573
+ }
574
+ name: "f"
575
+ initializer {
576
+ type: NewObject
577
+ newObject {
578
+ clazz {
579
+ name: "Try$$anonfun$1"
580
+ }
581
+ signature {
582
+ name: "new"
583
+ owner {
584
+ name: "Try$$anonfun$1"
585
+ }
586
+ paramType {
587
+ type: Named
588
+ namedType {
589
+ name: "Try"
590
+ }
591
+ }
592
+ paramType {
593
+ type: Named
594
+ namedType {
595
+ pkg: "java.lang"
596
+ name: "Exception"
597
+ }
598
+ }
599
+ returnType {
600
+ type: Named
601
+ namedType {
602
+ name: "Try$$anonfun$1"
603
+ }
604
+ }
605
+ }
606
+ argument {
607
+ type: ThisRef
608
+ }
609
+ argument {
610
+ type: VarRef
611
+ varRef {
612
+ name: "ex$2"
613
+ }
614
+ }
615
+ }
616
+ }
617
+ }
618
+ }
619
+ }
620
+ }
621
+ }
622
+ }
623
+ }
624
+ }
625
+ }
626
+ }
627
+ }
534
628
member {
535
629
type: Method
536
630
modifiers {
Original file line number Diff line number Diff line change @@ -20,4 +20,9 @@ class Try {
20
20
def tryPlusFinally {
21
21
try { true } finally { println(" finally" ) }
22
22
}
23
+
24
+ def catchAndPassToLambda {
25
+ try { true } catch { case ex : Exception => val f = () => ex }
26
+ }
27
+
23
28
}
You can’t perform that action at this time.
0 commit comments