private static void AddEntry(SemanticModel model, CompilationInfo info) { if (Compilations.Count >= 5) { var first = Compilations.First(); first.Value.Dispose(); Compilations.Remove(first.Key); } Compilations[model] = info; }
public static CompilationInfo Get(SemanticModel model) { lock (objectLock) { if (Compilations.TryGetValue(model, out var info)) { return(info); } var newInfo = new CompilationInfo(model); AddEntry(model, newInfo); return(newInfo); } }