File tree Expand file tree Collapse file tree 2 files changed +21
-0
lines changed
src/reflect/scala/reflect Expand file tree Collapse file tree 2 files changed +21
-0
lines changed Original file line number Diff line number Diff line change @@ -233,6 +233,23 @@ trait Internals { self: Universe =>
233
233
*/
234
234
def deSkolemize (symbol : Symbol ): Symbol
235
235
236
+ /** Forces all outstanding completers associated with this symbol.
237
+ * After this call returns, the symbol becomes immutable and thread-safe.
238
+ */
239
+ def initialize (symbol : Symbol ): symbol.type
240
+
241
+ /** Calls [[initialize ]] on the owner and all the value and type parameters of the symbol.
242
+ */
243
+ def fullyInitialize (symbol : Symbol ): symbol.type
244
+
245
+ /** Calls [[initialize ]] on all the value and type parameters of the type.
246
+ */
247
+ def fullyInitialize (tp : Type ): tp.type
248
+
249
+ /** Calls [[initialize ]] on all the symbols that the scope consists of.
250
+ */
251
+ def fullyInitialize (scope : Scope ): scope.type
252
+
236
253
/** A creator for `ThisType` types.
237
254
*/
238
255
def thisType (sym : Symbol ): Type
Original file line number Diff line number Diff line change @@ -74,6 +74,10 @@ trait Internals extends api.Internals {
74
74
def isErroneous (symbol : Symbol ): Boolean = symbol.isErroneous
75
75
def isSkolem (symbol : Symbol ): Boolean = symbol.isSkolem
76
76
def deSkolemize (symbol : Symbol ): Symbol = symbol.deSkolemize
77
+ def initialize (symbol : Symbol ): symbol.type = symbol.initialize
78
+ def fullyInitialize (symbol : Symbol ): symbol.type = definitions.fullyInitializeSymbol(symbol).asInstanceOf [symbol.type ]
79
+ def fullyInitialize (tp : Type ): tp.type = definitions.fullyInitializeType(tp).asInstanceOf [tp.type ]
80
+ def fullyInitialize (scope : Scope ): scope.type = definitions.fullyInitializeScope(scope).asInstanceOf [scope.type ]
77
81
def attachments (symbol : Symbol ): Attachments { type Pos = Position } = symbol.attachments
78
82
def updateAttachment [T : ClassTag ](symbol : Symbol , attachment : T ): symbol.type = symbol.updateAttachment(attachment)
79
83
def removeAttachment [T : ClassTag ](symbol : Symbol ): symbol.type = symbol.removeAttachment[T ]
You can’t perform that action at this time.
0 commit comments