public IAnalysisSet GetValue(Node node, AnalysisUnit unit, ProjectEntry declaringScope, IAnalysisSet @this, bool addRef) { if (Values == null) { Values = new EphemeralVariableDef(); } var res = Values.GetTypes(unit, declaringScope); if (res.Count > 0) { // Don't add references to ephemeral values... If they // gain types we'll re-enqueue and the reference will be // added then. if (addRef && !Values.IsEphemeral) { Values.AddReference(node, unit); } } if (Getter != null) { res = res.Union(Getter.GetTypesNoCopy(unit, declaringScope).Call(node, unit, @this, ExpressionEvaluator.EmptySets)); } return(res); }