final IASNode node = binding.getNode();
if ( name.isTypeName() )
{
// a type names node should always be a ITypedExpressionNode
ITypedExpressionNode typeNode = (ITypedExpressionNode)node;
IExpressionNode collectionNode = typeNode.getCollectionNode();
IDefinition collectionDefinition = SemanticUtils.getDefinition(collectionNode, currentScope.getProject());
Binding collectionBinding = currentScope.getBinding(collectionNode, name.getTypeNameBase(), collectionDefinition);
generateAccess(collectionBinding, is_super, AccessType.Strict, result);
IExpressionNode typeTypeNode = typeNode.getTypeNode();
IDefinition typeDefinition = SemanticUtils.getDefinition(typeTypeNode, currentScope.getProject());
Binding typeBinding = currentScope.getBinding(typeTypeNode, name.getTypeNameParameter(), typeDefinition);
generateTypeNameParameter(typeBinding, result);
result.addInstruction(OP_applytype, 1);