From 2dfef5d9abca0be0067910571d0d53e9aa424fda Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Thu, 6 Dec 2018 14:58:38 -0800 Subject: [PATCH] add hack to prevent True/False/None/... from being use-before-def --- .../Engine/Impl/Analyzer/ExpressionEvaluator.cs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/Analysis/Engine/Impl/Analyzer/ExpressionEvaluator.cs b/src/Analysis/Engine/Impl/Analyzer/ExpressionEvaluator.cs index c45691a34..78508cc01 100644 --- a/src/Analysis/Engine/Impl/Analyzer/ExpressionEvaluator.cs +++ b/src/Analysis/Engine/Impl/Analyzer/ExpressionEvaluator.cs @@ -149,8 +149,19 @@ public IAnalysisSet LookupAnalysisSetByName(Node node, string name, bool addRef refs = createIn.CreateVariable(node, _unit, name, addRef); res = refs.Types; } else { - // ... warn the user - warn = true; + switch (name) { + // "atom" in Python grammar. + case "True": + case "False": + case "None": + case "...": + Debug.Fail($"Known good name '{name}' not found in scope"); + break; + default: + // ... warn the user + warn = true; + break; + } } } }