public void CreateBuilder (EmitContext ec)
{
if ((flags & Flags.Used) == 0) {
if (VariableInfo == null) {
// Missing flow analysis or wrong variable flags
throw new InternalErrorException ("VariableInfo is null and the variable `{0}' is not used", name);
}
if (VariableInfo.IsEverAssigned)
ec.Report.Warning (219, 3, Location, "The variable `{0}' is assigned but its value is never used", Name);
else
ec.Report.Warning (168, 3, Location, "The variable `{0}' is declared but never used", Name);
}
if (HoistedVariant != null)
return;
if (builder != null) {
if ((flags & Flags.CompilerGenerated) != 0)
return;
// To avoid Used warning duplicates
throw new InternalErrorException ("Already created variable `{0}'", name);
}
//
// All fixed variabled are pinned, a slot has to be alocated
//
builder = ec.DeclareLocal (Type, IsFixed);
if (SymbolWriter.HasSymbolWriter)
ec.DefineLocalVariable (name, builder);
}