rec.Type = typeBuilder.ModuleBuilder.GetSignatureBlobIndex(sig);
int token = 0x17000000 | typeBuilder.ModuleBuilder.Property.AddRecord(rec);
- if (lazyPseudoToken != 0)
+ if (lazyPseudoToken == 0)
+ {
+ lazyPseudoToken = token;
+ }
+ else
{
typeBuilder.ModuleBuilder.RegisterTokenFixup(lazyPseudoToken, token);
}
return false;
}
}
+
+ internal override bool IsBaked
+ {
+ get { return typeBuilder.IsBaked; }
+ }
+
+ internal override int GetCurrentToken()
+ {
+ if (typeBuilder.ModuleBuilder.IsSaved && typeBuilder.ModuleBuilder.IsPseudoToken(lazyPseudoToken))
+ {
+ return typeBuilder.ModuleBuilder.ResolvePseudoToken(lazyPseudoToken);
+ }
+ else
+ {
+ return lazyPseudoToken;
+ }
+ }
}
}