Class IsExternallyLinked

java.lang.Object
org.ek9lang.compiler.common.IsExternallyLinked
All Implemented Interfaces:
Predicate<ISymbol>

public final class IsExternallyLinked extends Object implements Predicate<ISymbol>
THE test for "is this type EXTERNALLY LINKED?" - what CallDetails.isExternTarget states (Steve, 2026-10-28: "extern should be externally linked in some way; defaulted/synthetic methods are not external"). A type is externally linked when its code is NOT produced from EK9 source in this program: it is EXTERN (Java-backed on the JVM, the C runtime natively - a built-in such as String, or a defines extern library type), or a PRE_BUILT parameterisation (bytecode shipped in ek9-lang via @Ek9ParameterisedType). A user EK9 type is not external, nor is a compiler-generated one (a Scenario 2/3 wrapper, a dynamic class or function, a defaulted or synthesised member's owner).

Hold an instance; phase7.calls.DispatchFacts.externallyLinked and phase7.support.TypeLinkage (by IR name) reach it.

  • Constructor Details

    • IsExternallyLinked

      public IsExternallyLinked()
  • Method Details

    • test

      public boolean test(ISymbol type)
      Is the type externally linked.
      Specified by:
      test in interface Predicate<ISymbol>
      Parameters:
      type - the type a call names (a method is asked about its owning type, never itself); null is not