internal virtual MSA.Expression/*!*/ MakeDefinitionExpression(AstGenerator/*!*/ gen) {
MSA.Expression transformedQualifier;
MSA.Expression name = QualifiedName.TransformName(gen);
switch (QualifiedName.TransformQualifier(gen, out transformedQualifier)) {
case StaticScopeKind.Global:
return Methods.DefineGlobalModule.OpCall(gen.CurrentScopeVariable, name);
case StaticScopeKind.EnclosingModule:
return Methods.DefineNestedModule.OpCall(gen.CurrentScopeVariable, name);
case StaticScopeKind.Explicit:
return Methods.DefineModule.OpCall(gen.CurrentScopeVariable, AstUtils.Box(transformedQualifier), name);
}
throw Assert.Unreachable;
}