Class LockStableIds
java.lang.Object
org.ek9lang.compiler.phase5.flow.LockStableIds
THE shared encodings of lock-analysis stable ids - use this, never re-spell a
source:line:col location key
or the placeholder: prefix.
These strings are foreign keys joining EnterCallSite, LockIdentityDescriptor,
LockPrecedenceGraph and the MCP lock probes, so they must be byte-identical wherever they are minted or
recognised. Two prefix families exist and must not be confused: the lock-identity ids (alloc:,
field:, capture:, placeholder:, built by LockIdentityInference.stableIdFor(Object, IdentityOrigin)) and the
separate object-root keys of the listener (also using field:, a different key space, never joined to
lock-identity ids).
-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionstatic booleanisPlaceholder(String stableId) Is this stable id a placeholder for a callee parameter.static StringThesource:line:colkey of a token that must exist; a null token is a programming error.static StringlocationOrUnknown(IToken token) The same key, but a missing token is the literalunknown(object roots may have no source token).static StringparamFqnOfPlaceholder(String stableId) The parameter a placeholder stable id stands for.static Stringplaceholder(String paramFqn) The stable id of the placeholder for a parameter.
-
Field Details
-
DELIMITER
-
-
Method Details
-
location
-
locationOrUnknown
-
placeholder
-
isPlaceholder
Is this stable id a placeholder for a callee parameter.- Parameters:
stableId- any lock-identity stable id.- Returns:
- true when it was made by
placeholder(String).
-
paramFqnOfPlaceholder
The parameter a placeholder stable id stands for.- Parameters:
stableId- an id for whichisPlaceholder(String)is true.- Returns:
- the parameter's fully qualified name.
-