summaryrefslogtreecommitdiff
path: root/testsuite
diff options
context:
space:
mode:
authorMatthew Pickering <matthewtpickering@gmail.com>2022-02-02 16:39:20 +0000
committerMarge Bot <ben+marge-bot@smart-cactus.org>2022-02-08 05:28:42 -0500
commitbc5cbce61b57f57cadf5c25fa3e60cf34c3b98ea (patch)
tree36350006a6f06895c8b6e74cd785ed18d5584d58 /testsuite
parent1a9438594d6d5280dfe43e4e597dd0380963268d (diff)
downloadhaskell-bc5cbce61b57f57cadf5c25fa3e60cf34c3b98ea.tar.gz
Add notes linter to testsuite
Diffstat (limited to 'testsuite')
-rw-r--r--testsuite/mk/boilerplate.mk4
-rw-r--r--testsuite/tests/linters/Makefile7
-rw-r--r--testsuite/tests/linters/all.T20
-rw-r--r--testsuite/tests/linters/notes.stdout227
4 files changed, 258 insertions, 0 deletions
diff --git a/testsuite/mk/boilerplate.mk b/testsuite/mk/boilerplate.mk
index c3be669636..9fc9b36e23 100644
--- a/testsuite/mk/boilerplate.mk
+++ b/testsuite/mk/boilerplate.mk
@@ -231,6 +231,10 @@ ifeq "$(COUNT_DEPS)" ""
COUNT_DEPS := $(abspath $(TOP)/../inplace/bin/count-deps)
endif
+ifeq "$(NOTES_UTIL)" ""
+NOTES_UTIL := $(abspath $(TOP)/../inplace/bin/notes-util)
+endif
+
# -----------------------------------------------------------------------------
# configuration of TEST_HC
diff --git a/testsuite/tests/linters/Makefile b/testsuite/tests/linters/Makefile
index aeaef050e1..559d0bba3e 100644
--- a/testsuite/tests/linters/Makefile
+++ b/testsuite/tests/linters/Makefile
@@ -1,4 +1,11 @@
TOP=../..
+ifeq "$(NOTES_UTIL)" ""
+NOTES_UTIL := $(abspath $(TOP)/../inplace/bin/notes-util)
+endif
+
uniques:
python3 checkUniques/check-uniques.py $(TOP)/..
+
+notes:
+ (cd $(TOP)/.. && $(NOTES_UTIL) broken-refs)
diff --git a/testsuite/tests/linters/all.T b/testsuite/tests/linters/all.T
index b4cc4bb8b3..ef3ea5441f 100644
--- a/testsuite/tests/linters/all.T
+++ b/testsuite/tests/linters/all.T
@@ -1 +1,21 @@
test('uniques', [no_deps, extra_files(["checkUniques"])], makefile_test, ['uniques'])
+
+def normalise_nos(s):
+ return re.sub(r':\d+:\d+','<line>:<no>', s)
+
+# Check that ls-files works and returns files from the source tree.
+# We just check that "hie.yaml" is there because it's top-level (dont have have to deal with
+# path differences) and quite unique to GHC.
+def has_ls_files() -> bool:
+ try:
+ files = subprocess.check_output(['git', 'ls-files']).splitlines()
+ print (b"hie.yaml" in files)
+ return b"hie.yaml" in files
+ except subprocess.CalledProcessError:
+ return False
+
+
+test('notes', [no_deps if has_ls_files() else skip
+ , req_hadrian_deps(["lint:notes-util"])
+ , normalise_fun(normalise_nos) ]
+ , makefile_test, ['notes'])
diff --git a/testsuite/tests/linters/notes.stdout b/testsuite/tests/linters/notes.stdout
new file mode 100644
index 0000000000..c7e69aff23
--- /dev/null
+++ b/testsuite/tests/linters/notes.stdout
@@ -0,0 +1,227 @@
+ref compiler/GHC/Builtin/Names.hs:222:15: Note [TyConRepNames for non-wired-in TyCons]
+ref compiler/GHC/CmmToAsm/X86/CodeGen.hs:3248:21: Note [rts/StgCRun.c : Stack Alignment on X86]
+ref compiler/GHC/CmmToC.hs:499:11: Note [Zero-extended sub-word signed results]
+ref compiler/GHC/CmmToLlvm/Config.hs:29:11: Note [LLVM Configuration]
+ref compiler/GHC/Core.hs:1123:23: Note [Extra args in rule matching]
+ref compiler/GHC/Core/Coercion/Axiom.hs:326:7: Note [Compatibility checking]
+ref compiler/GHC/Core/Lint.hs:489:11: Note [Checking representation-polymorphic data constructors]
+ref compiler/GHC/Core/Lint.hs:1923:0: Note [Rules and join points]
+ref compiler/GHC/Core/Make.hs:1033:48: Note [Worker/wrapper for INLINEABLE functions]
+ref compiler/GHC/Core/Opt/Arity.hs:1498:22: Note [Check for reflexive casts in eta-expansion]
+ref compiler/GHC/Core/Opt/CSE.hs:439:3: Note [Type-let]
+ref compiler/GHC/Core/Opt/FloatIn.hs:544:15: Note [extra_fvs (1,2)]
+ref compiler/GHC/Core/Opt/OccurAnal.hs:344:28: Note [Rules for imported functions]
+ref compiler/GHC/Core/Opt/OccurAnal.hs:576:40: Note [Self-recursive rules]
+ref compiler/GHC/Core/Opt/OccurAnal.hs:582:0: Note [Rules and loop breakers]
+ref compiler/GHC/Core/Opt/OccurAnal.hs:851:15: Note [Loop breaking]
+ref compiler/GHC/Core/Opt/OccurAnal.hs:1738:17: Note [Eta-expansion inside stable unfoldings]
+ref compiler/GHC/Core/Opt/Pipeline.hs:624:3: Note [Simplifying the left-hand side of a RULE]
+ref compiler/GHC/Core/Opt/Pipeline.hs:937:63: Note [Rules and indirect-zapping]
+ref compiler/GHC/Core/Opt/Pipeline.hs:999:31: Note [Messing up the exported Id's IdInfo]
+ref compiler/GHC/Core/Opt/Pipeline.hs:1008:7: Note [Messing up the exported Id's IdInfo]
+ref compiler/GHC/Core/Opt/SetLevels.hs:1598:30: Note [Top level scope]
+ref compiler/GHC/Core/Opt/Simplify.hs:672:56: Note [Wrapper NoUserInline]
+ref compiler/GHC/Core/Opt/Simplify.hs:2090:33: Note [RULEs apply to simplified arguments]
+ref compiler/GHC/Core/Opt/Simplify.hs:2618:13: Note [Case binder next]
+ref compiler/GHC/Core/Opt/Simplify.hs:3239:0: Note [Suppressing binder-swaps on linear case]
+ref compiler/GHC/Core/Opt/Simplify.hs:3767:8: Note [Lambda-bound unfoldings]
+ref compiler/GHC/Core/Opt/Simplify.hs:4123:33: Note [Do not eta-expand trivial expressions]
+ref compiler/GHC/Core/Opt/Simplify/Utils.hs:133:39: Note [The hole type in ApplyToTy/Val]
+ref compiler/GHC/Core/Opt/Simplify/Utils.hs:141:41: Note [The hole type in ApplyToTy/Val]
+ref compiler/GHC/Core/Opt/Simplify/Utils.hs:456:59: Note [The hole type in ApplyToTy/Val]
+ref compiler/GHC/Core/Opt/Simplify/Utils.hs:1225:37: Note [Gentle mode]
+ref compiler/GHC/Core/Opt/Simplify/Utils.hs:1624:38: Note [Eta-expanding lambdas]
+ref compiler/GHC/Core/Opt/Simplify/Utils.hs:2195:2: Note [Merge nested cases]
+ref compiler/GHC/Core/Opt/Simplify/Utils.hs:2196:2: Note [Eliminate identity case]
+ref compiler/GHC/Core/Opt/Simplify/Utils.hs:2197:2: Note [Scrutinee constant folding]
+ref compiler/GHC/Core/Opt/Specialise.hs:1593:28: Note [Arity decrease]
+ref compiler/GHC/Core/Rules.hs:885:7: Note [Coercion argument]
+ref compiler/GHC/Core/Rules.hs:972:52: Note [Eta reduction in the target]
+ref compiler/GHC/Core/Rules.hs:1031:7: Note [Eta reduction in the target]
+ref compiler/GHC/Core/Subst.hs:100:60: Note [Apply once]
+ref compiler/GHC/Core/Subst.hs:111:16: Note [Extending the TCvSubst]
+ref compiler/GHC/Core/TyCo/FVs.hs:289:7: Note [Free variables of Coercions]
+ref compiler/GHC/Core/TyCo/Ppr.hs:71:23: Note [IfaceType and pretty-printing]
+ref compiler/GHC/Core/TyCo/Rep.hs:1711:31: Note [What prevents a constraint from floating]
+ref compiler/GHC/Core/TyCo/Subst.hs:116:15: Note [Extending the TvSubstEnv]
+ref compiler/GHC/Core/TyCo/Subst.hs:261:16: Note [Extending the TvSubstEnv]
+ref compiler/GHC/Core/TyCo/Subst.hs:784:15: Note [Extending the TCvSubst]
+ref compiler/GHC/Core/TyCo/Subst.hs:1001:15: Note [Extending the TCvSubst]
+ref compiler/GHC/Core/TyCon.hs:961:35: Note [Promoted GADT data construtors]
+ref compiler/GHC/Core/TyCon.hs:2442:62: Note [Sharing nullary TyCons]
+ref compiler/GHC/Core/Unfold.hs:1171:23: Note [INLINE for small functions (3)]
+ref compiler/GHC/Core/Unfold.hs:1242:50: Note [Unfold info lazy contexts]
+ref compiler/GHC/Core/Unfold/Make.hs:157:34: Note [DFunUnfoldings]
+ref compiler/GHC/Core/Unify.hs:561:16: Note [Unification result]
+ref compiler/GHC/Core/Unify.hs:1407:9: Note [INLINE pragmas and (>>)]
+ref compiler/GHC/Core/Utils.hs:944:40: Note [ _ -> [con1]
+ref compiler/GHC/CoreToStg.hs:460:15: Note [Nullary unboxed tuple]
+ref compiler/GHC/Driver/Main.hs:1551:34: Note [simpleTidyPgm - mkBootModDetailsTc]
+ref compiler/GHC/Driver/Session.hs:452:33: Note [LLVM Configuration]
+ref compiler/GHC/Driver/Session.hs:776:9: Note [LLVM Configuration]
+ref compiler/GHC/Driver/Session.hs:1949:36: Note [GHC.Driver.Main . Safe Haskell Inference]
+ref compiler/GHC/Driver/Session.hs:3910:49: Note [Eta-reduction in -O0]
+ref compiler/GHC/Hs/Extension.hs:140:5: Note [Strict argument type constraints]
+ref compiler/GHC/HsToCore/Binds.hs:313:33: Note [AbsBinds wrappers]
+ref compiler/GHC/HsToCore/Binds.hs:849:46: Note [Free dictionaries]
+ref compiler/GHC/HsToCore/Binds.hs:883:36: Note [Free tyvars in rule LHS]
+ref compiler/GHC/HsToCore/Binds.hs:884:35: Note [Free dictionaries in rule LHS]
+ref compiler/GHC/HsToCore/Binds.hs:942:24: Note [Free dictionaries]
+ref compiler/GHC/HsToCore/Binds.hs:999:34: Note [Dead spec binders]
+ref compiler/GHC/HsToCore/Docs.hs:126:70: Note [1]
+ref compiler/GHC/HsToCore/Docs.hs:130:0: Note [1]
+ref compiler/GHC/HsToCore/Expr.hs:1045:22: Note [Checking representation-polymorphic data constructors]
+ref compiler/GHC/HsToCore/Pmc/Desugar.hs:77:7: Note [Order of guards matter]
+ref compiler/GHC/HsToCore/Pmc/Solver.hs:853:20: Note [COMPLETE sets on data families]
+ref compiler/GHC/HsToCore/Types.hs:61:13: Note [Generating fresh names for FFI wrappers]
+ref compiler/GHC/HsToCore/Utils.hs:186:9: Note [MatchIds]
+ref compiler/GHC/HsToCore/Utils.hs:939:62: Note [Don't CPR join points]
+ref compiler/GHC/Iface/Syntax.hs:705:0: Note [Minimal complete definition]
+ref compiler/GHC/Iface/Syntax.hs:765:44: Note [Minimal complete definition]
+ref compiler/GHC/Iface/Type.hs-boot:8:7: Note [Depend on GHC.Integer]
+ref compiler/GHC/Linker/Types.hs:128:30: Note [Grant plan for static forms]
+ref compiler/GHC/Parser/Lexer.x:185:7: Note [Lexing NumericUnderscores extension]
+ref compiler/GHC/Parser/Lexer.x:502:3: Note [Lexing NumericUnderscores extension]
+ref compiler/GHC/Rename/Expr.hs:2013:9: Note [ApplicativeDo and strict patterns]
+ref compiler/GHC/Rename/Expr.hs:2046:12: Note [ApplicativeDo and refutable patterns]
+ref compiler/GHC/Rename/Expr.hs:2130:18: Note [ApplicativeDo and strict patterns]
+ref compiler/GHC/Rename/Expr.hs:2148:0: Note [ApplicativeDo and strict patterns]
+ref compiler/GHC/Rename/Expr.hs:2203:0: Note [ApplicativeDo and refutable patterns]
+ref compiler/GHC/Rename/HsType.hs:964:40: Note [CUSKs: Complete user-supplied kind signatures]
+ref compiler/GHC/Rename/Pat.hs:888:29: Note [Disambiguating record fields]
+ref compiler/GHC/Rename/Splice.hs:450:27: Note [Splices]
+ref compiler/GHC/Rename/Unbound.hs:373:7: Note [Related name spaces]
+ref compiler/GHC/Runtime/Eval.hs:995:2: Note [Querying instances for a type]
+ref compiler/GHC/Runtime/Interpreter.hs:198:30: Note [uninterruptibleMask_]
+ref compiler/GHC/StgToCmm.hs:107:18: Note [codegen-split-init]
+ref compiler/GHC/StgToCmm.hs:110:18: Note [pipeline-split-init]
+ref compiler/GHC/StgToCmm/DataCon.hs:230:4: Note [CHARLIKE and INTLIKE closures.]
+ref compiler/GHC/StgToCmm/Expr.hs:491:4: Note [case on bool]
+ref compiler/GHC/StgToCmm/Expr.hs:541:42: Note [dataToTag#]
+ref compiler/GHC/StgToCmm/Expr.hs:751:3: Note [alg-alt heap check]
+ref compiler/GHC/StgToCmm/Foreign.hs:177:53: Note [lower safe foreign calls]
+ref compiler/GHC/Tc/Deriv/Utils.hs:628:9: Note [Newtype deriving and unused constructors]
+ref compiler/GHC/Tc/Errors.hs:180:13: Note [Fail fast on kind errors]
+ref compiler/GHC/Tc/Errors.hs:2016:0: Note [Highlighting ambiguous type variables]
+ref compiler/GHC/Tc/Errors/Hole.hs:207:57: Note [Relevant Constraints]
+ref compiler/GHC/Tc/Errors/Hole.hs:985:24: Note [Speeding up valid-hole fits]
+ref compiler/GHC/Tc/Errors/Ppr.hs:1760:11: Note [Highlighting ambiguous type variables]
+ref compiler/GHC/Tc/Errors/Types.hs:128:37: Note [Migrating TcM messages]
+ref compiler/GHC/Tc/Gen/Arrow.hs:435:29: Note [RecStmt]
+ref compiler/GHC/Tc/Gen/Bind.hs:1397:19: Note [Existentials in pattern bindings]
+ref compiler/GHC/Tc/Gen/Export.hs:187:15: Note [Modules without a module header]
+ref compiler/GHC/Tc/Gen/Export.hs:418:0: Note [Modules without a module header]
+ref compiler/GHC/Tc/Gen/Export.hs:576:7: Note [Typing Pattern Synonym Exports]
+ref compiler/GHC/Tc/Gen/Export.hs:615:16: Note [Types of TyCon]
+ref compiler/GHC/Tc/Gen/Expr.hs:671:24: Note [Disambiguating record fields]
+ref compiler/GHC/Tc/Gen/Expr.hs:688:15: Note [Mixed Record Selectors]
+ref compiler/GHC/Tc/Gen/Expr.hs:1196:7: Note [Disambiguating record fields]
+ref compiler/GHC/Tc/Gen/Expr.hs:1299:11: Note [Deprecating ambiguous fields]
+ref compiler/GHC/Tc/Gen/Foreign.hs:149:26: Note [Expanding newtypes]
+ref compiler/GHC/Tc/Gen/HsType.hs:552:56: Note [Skolem escape prevention]
+ref compiler/GHC/Tc/Gen/HsType.hs:1180:39: Note [Body kind of HsForAllTy]
+ref compiler/GHC/Tc/Gen/HsType.hs:2623:7: Note [Matching a kind sigature with a declaration]
+ref compiler/GHC/Tc/Gen/HsType.hs:3152:9: Note [Cloning for type variable binder]
+ref compiler/GHC/Tc/Gen/Match.hs:553:20: Note [GroupStmt binder map]
+ref compiler/GHC/Tc/Gen/Match.hs:746:20: Note [GroupStmt binder map]
+ref compiler/GHC/Tc/Gen/Match.hs:1011:0: Note [typechecking ApplicativeStmt]
+ref compiler/GHC/Tc/Gen/Pat.hs:170:20: Note [Typing patterns in pattern bindings]
+ref compiler/GHC/Tc/Gen/Pat.hs:477:7: Note [Pattern coercions]
+ref compiler/GHC/Tc/Gen/Pat.hs:922:41: Note [Binding when lookup up instances]
+ref compiler/GHC/Tc/Gen/Pat.hs:1078:7: Note [Matching polytyped patterns]
+ref compiler/GHC/Tc/Gen/Pat.hs:1377:16: Note [Pattern coercions]
+ref compiler/GHC/Tc/Gen/Sig.hs:78:10: Note [Overview of type signatures]
+ref compiler/GHC/Tc/Gen/Sig.hs:412:28: Note [solveEqualities in tcPatSynSig]
+ref compiler/GHC/Tc/Instance/Family.hs:515:35: Note [Constrained family instances]
+ref compiler/GHC/Tc/Module.hs:698:15: Note [Extra dependencies from .hs-boot files]
+ref compiler/GHC/Tc/Module.hs:1971:6: Note [Root-main id]
+ref compiler/GHC/Tc/Solver.hs:2541:36: Note [Kind generalisation and SigTvs]
+ref compiler/GHC/Tc/Solver/Canonical.hs:498:50: Note [The superclasses story]
+ref compiler/GHC/Tc/Solver/Canonical.hs:1228:33: Note [Canonical LHS]
+ref compiler/GHC/Tc/Solver/Canonical.hs:1394:30: Note [Do not decompose given polytype equalities]
+ref compiler/GHC/Tc/Solver/Interact.hs:1638:9: Note [No touchables as FunEq RHS]
+ref compiler/GHC/Tc/Solver/Interact.hs:2292:12: Note [The equality class story]
+ref compiler/GHC/Tc/Solver/Monad.hs:1343:21: Note [Speeding up valid-hole fits]
+ref compiler/GHC/Tc/Solver/Rewrite.hs:1032:7: Note [Stability of rewriting]
+ref compiler/GHC/Tc/TyCl.hs:627:3: Note [Single function non-recursive binding special-case]
+ref compiler/GHC/Tc/TyCl.hs:1106:6: Note [Unification variables need fresh Names]
+ref compiler/GHC/Tc/TyCl.hs:1895:13: Note [TyConBinders for the result kind signatures of a data type]
+ref compiler/GHC/Tc/TyCl.hs:4366:16: Note [rejigCon and c.f. Note [Check role annotations in a second pass]
+ref compiler/GHC/Tc/TyCl/Instance.hs:947:26: Note [Generalising in tcFamTyPatsGuts]
+ref compiler/GHC/Tc/Types.hs:647:17: Note [Generating fresh names for FFI wrappers]
+ref compiler/GHC/Tc/Types.hs:696:33: Note [Extra dependencies from .hs-boot files]
+ref compiler/GHC/Tc/Types.hs:1145:28: Note [Don't promote data constructors with non-equality contexts]
+ref compiler/GHC/Tc/Types.hs:1172:26: Note [Meaning of IdBindingInfo and ClosedTypeId]
+ref compiler/GHC/Tc/Types.hs:1195:9: Note [Meaning of IdBindingInfo and ClosedTypeId]
+ref compiler/GHC/Tc/Types.hs:1221:36: Note [Bindings with closed types]
+ref compiler/GHC/Tc/Types.hs:1457:47: Note [Care with plugin imports]
+ref compiler/GHC/Tc/Types/Constraint.hs:238:34: Note [NonCanonical Semantics]
+ref compiler/GHC/Tc/Utils/Concrete.hs:246:2: Note [Concrete and Concrete#]
+ref compiler/GHC/Tc/Utils/Env.hs:556:7: Note [Bindings with closed types]
+ref compiler/GHC/Tc/Utils/Env.hs:1128:7: Note [Generating fresh names for ccall wrapper]
+ref compiler/GHC/Tc/Utils/Env.hs:1141:0: Note [Generating fresh names for FFI wrappers]
+ref compiler/GHC/Tc/Utils/Env.hs:1192:7: Note [Placeholder PatSyn kinds]
+ref compiler/GHC/Tc/Utils/TcMType.hs:793:7: Note [Kind checking for GADTs]
+ref compiler/GHC/Tc/Utils/TcMType.hs:1974:33: Note [Silly Type Synonym]
+ref compiler/GHC/Tc/Utils/TcType.hs:529:7: Note [TyVars and TcTyVars]
+ref compiler/GHC/Tc/Utils/Unify.hs:1489:7: Note [Unification preconditions, (TYVAR-TV)]
+ref compiler/GHC/Tc/Utils/Zonk.hs:875:23: Note [Rebindable Syntax and HsExpansion]
+ref compiler/GHC/ThToHs.hs:1738:11: Note [Adding parens for splices]
+ref compiler/GHC/ThToHs.hs:1749:3: Note [Adding parens for splices]
+ref compiler/GHC/Types/Basic.hs:586:17: Note [Safe Haskell isSafeOverlap]
+ref compiler/GHC/Types/Basic.hs:1326:7: Note [Activation competition]
+ref compiler/GHC/Types/Demand.hs:307:25: Note [Preserving Boxity of results is rarely a win]
+ref compiler/GHC/Types/Demand.hs:1100:4: Note [Use one-shot information]
+ref compiler/GHC/Types/Error.hs:348:3: Note [Suppressing Messages]
+ref compiler/GHC/Types/Error.hs:383:28: Note [Suppressing Messages]
+ref compiler/GHC/Types/Name/Occurrence.hs:301:4: Note [Unique OccNames from Template Haskell]
+ref compiler/GHC/Types/SourceText.hs:178:51: Note [Fractional exponent bases]
+ref compiler/GHC/Types/Unique.hs:78:25: Note [Uniques-prelude - Uniques for wired-in Prelude things]
+ref compiler/GHC/Unit/Info.hs:61:66: Note [About Units]
+ref compiler/GHC/Unit/Module/Deps.hs:79:13: Note [Structure of dep_boot_mods]
+ref compiler/GHC/Unit/State.hs:2176:35: Note [Representation of module/name variable]
+ref compiler/GHC/Utils/Monad.hs:391:34: Note [multiShotIO]
+ref compiler/GHC/Utils/Monad.hs:429:47: Note [inlineIdMagic]
+ref compiler/Language/Haskell/Syntax/Binds.hs:226:31: Note [fun_id in Match]
+ref compiler/Language/Haskell/Syntax/Expr.hs:542:31: Note [Record Selectors in the AST]
+ref compiler/Language/Haskell/Syntax/Expr.hs:552:32: Note [Record Selectors in the AST]
+ref compiler/Language/Haskell/Syntax/Expr.hs:1561:32: Note [Quasi-quote overview]
+ref compiler/Language/Haskell/Syntax/Extension.hs:117:42: Note [Constructor cannot happen]
+ref compiler/Language/Haskell/Syntax/Pat.hs:336:12: Note [Disambiguating record fields]
+ref configure.ac:212:10: Note [Linking ghc-bin against threaded stage0 RTS]
+ref docs/core-spec/core-spec.mng:177:6: Note [TyBinders]
+ref ghc/GHCi/UI.hs:3630:25: Note [ModBreaks.decls]
+ref ghc/ghc.mk:62:6: Note [Linking ghc-bin against threaded stage0 RTS]
+ref hadrian/src/Expression.hs:130:30: Note [Linking ghc-bin against threaded stage0 RTS]
+ref libraries/base/GHC/Event/Windows.hsc:753:26: Note [Why use non-waiting getOverlappedResult requests.]
+ref libraries/base/GHC/List.hs:1449:17: Note [Fusion for foldr2]
+ref libraries/base/GHC/List.hs:1463:32: Note [Fusion for foldr2]
+ref libraries/base/GHC/ST.hs:139:7: Note [Definition of runRW#]
+ref testsuite/config/ghc:215:10: Note [WayFlags]
+ref testsuite/driver/testlib.py:152:10: Note [Why is there no stage1 setup function?]
+ref testsuite/driver/testlib.py:156:2: Note [Why is there no stage1 setup function?]
+ref testsuite/mk/boilerplate.mk:259:2: Note [WayFlags]
+ref testsuite/tests/indexed-types/should_compile/T18875.hs:5:18: Note [Type variable cycles in Givens]
+ref testsuite/tests/indexed-types/should_fail/ExtraTcsUntch.hs:30:27: Note [Extra TcS Untouchables]
+ref testsuite/tests/perf/join_points/join005.hs:19:63: Note [Don't CPR join points]
+ref testsuite/tests/perf/should_run/all.T:3:6: Note [Solving from instances when interacting Dicts]
+ref testsuite/tests/polykinds/CuskFam.hs:16:11: Note [Unifying implicit CUSK variables]
+ref testsuite/tests/simplCore/should_compile/T5776.hs:16:7: Note [Simplifying RULE lhs constraints]
+ref testsuite/tests/simplCore/should_compile/simpl018.hs:3:7: Note [Float coercions (unlifted)]
+ref testsuite/tests/typecheck/should_compile/CbvOverlap.hs:5:26: Note [Type variable cycles in Givens]
+ref testsuite/tests/typecheck/should_compile/Improvement.hs:10:12: Note [No reduction for Derived class constraints]
+ref testsuite/tests/typecheck/should_compile/LocalGivenEqs.hs:7:7: Note [When does an implication have given equalities?]
+ref testsuite/tests/typecheck/should_compile/LocalGivenEqs.hs:21:43: Note [Type variable cycles in Givens]
+ref testsuite/tests/typecheck/should_compile/LocalGivenEqs2.hs:4:6: Note [When does an implication have given equalities?]
+ref testsuite/tests/typecheck/should_compile/T9117.hs:3:12: Note [Order of Coercible Instances]
+ref testsuite/tests/typecheck/should_compile/tc200.hs:5:7: Note [Multiple instantiation]
+ref testsuite/tests/typecheck/should_compile/tc228.hs:9:7: Note [Inference and implication constraints]
+ref testsuite/tests/typecheck/should_compile/tc231.hs:12:16: Note [Important subtlety in oclose]
+ref testsuite/tests/typecheck/should_fail/UnliftedNewtypesMultiFieldGadt.hs:11:28: Note [Kind-checking the field type]
+ref testsuite/tests/typecheck/should_fail/tcfail093.hs:13:7: Note [Important subtlety in oclose]
+ref utils/ghc-pkg/Main.hs:644:15: Note [Settings File]
+ref utils/llvm-targets/gen-data-layout.sh:19:6: Note [LLVM Configuration]
+ref utils/notes-util/Notes.hs:30:29: Note [" <> T.unpack x <> "]
+ref utils/notes-util/Notes.hs:67:22: Note [...]
+ref validate:413:14: Note [Why is there no stage1 setup function?]
+