resolveTypeAnnotationDynamic static method
Implementation
static RuntimeType resolveTypeAnnotationDynamic(
SAstNode typeNode,
Environment env,
) {
if (typeNode is SNamedType) {
final typeName = typeNode.name?.name ?? '';
Logger.debug(
"[InterpretedClass._resolveTypeAnnotationDynamic] Resolving SNamedType: $typeName",
);
final resolved = env.get(typeName);
if (resolved is RuntimeType) {
Logger.debug(
"[InterpretedClass._resolveTypeAnnotationDynamic] Resolved from environment to RuntimeType: ${resolved.name}",
);
return resolved;
} else {
throw RuntimeD4rtException(
"Symbol '$typeName' resolved to non-type value: $resolved",
);
}
} else {
throw RuntimeD4rtException(
"Unsupported type annotation for constraint: ${typeNode.runtimeType}",
);
}
}