aboutsummaryrefslogtreecommitdiff
path: root/hypsrc-test/ref/src/LinkingIdentifiers.html
diff options
context:
space:
mode:
authorAlec Theriault <alec.theriault@gmail.com>2019-01-31 01:37:25 -0800
committerGitHub <noreply@github.com>2019-01-31 01:37:25 -0800
commit1b26460fb3b5df5215cc1e6715661cbc7c950085 (patch)
tree0b5ac6285ecf432021e8365567d48eeb6249f44b /hypsrc-test/ref/src/LinkingIdentifiers.html
parent4c02498a24e6ceb775528bed043b66340296ad06 (diff)
Use `.hie` files for the Hyperlinker backend (#977)
# Summary This is a large architectural change to the Hyperlinker. * extract link (and now also type) information from `.hie` instead of doing ad-hoc SYB traversals of the `RenamedSource`. Also adds a superb type-on-hover feature (#715). * re-engineer the lexer to avoid needless string conversions. By going directly through GHC's `P` monad and taking bytestring slices, we avoid a ton of allocation and have better handling of position pragmas and CPP. In terms of performance, the Haddock side of things has gotten _much_ more efficient. Unfortunately, much of this is cancelled out by the increased GHC workload for generating `.hie` files. For the full set of boot libs (including `ghc`-the-library) * the sum of total time went down by 9-10% overall * the sum of total allocations went down by 6-7% # Motivation Haddock is moving towards working entirely over `.hi` and `.hie` files. This change means we no longer need the `RenamedSource` from `TypecheckedModule` (something which is _not_ in `.hi` files). # Details Along the way a bunch of things were fixed: * Cross package (and other) links are now more reliable (#496) * The lexer tries to recover from errors on every line (instead of at CPP boundaries) * `LINE`/`COLUMN` pragmas are taken into account * filter out zero length tokens before rendering * avoid recomputing the `ModuleName`-based `SrcMap` * remove the last use of `Documentation.Haddock.Utf8` (see #998) * restructure temporary folder logic for `.hi`/`.hie` model
Diffstat (limited to 'hypsrc-test/ref/src/LinkingIdentifiers.html')
-rw-r--r--hypsrc-test/ref/src/LinkingIdentifiers.html572
1 files changed, 572 insertions, 0 deletions
diff --git a/hypsrc-test/ref/src/LinkingIdentifiers.html b/hypsrc-test/ref/src/LinkingIdentifiers.html
new file mode 100644
index 00000000..2ef590bd
--- /dev/null
+++ b/hypsrc-test/ref/src/LinkingIdentifiers.html
@@ -0,0 +1,572 @@
+<html xmlns="http://www.w3.org/1999/xhtml"
+><head
+ ><link rel="stylesheet" type="text/css" href="style.css"
+ /><script type="text/javascript" src="highlight.js"
+ ></script
+ ></head
+ ><body
+ ><pre
+ ><span class="hs-comment"
+ >-- Tests that the identifers/operators are properly linked even when:</span
+ ><span
+ >
+</span
+ ><span id="line-2"
+ ></span
+ ><span class="hs-comment"
+ >--</span
+ ><span
+ >
+</span
+ ><span id="line-3"
+ ></span
+ ><span class="hs-comment"
+ >-- * backquoted, parenthesized, vanilla</span
+ ><span
+ >
+</span
+ ><span id="line-4"
+ ></span
+ ><span class="hs-comment"
+ >-- * qualified, not-qualified</span
+ ><span
+ >
+</span
+ ><span id="line-5"
+ ></span
+ ><span class="hs-comment"
+ >--</span
+ ><span
+ >
+</span
+ ><span id="line-6"
+ ></span
+ ><span class="hs-keyword"
+ >module</span
+ ><span
+ > </span
+ ><span class="hs-identifier"
+ >LinkingIdentifiers</span
+ ><span
+ > </span
+ ><span class="hs-keyword"
+ >where</span
+ ><span
+ >
+</span
+ ><span id="line-7"
+ ></span
+ ><span
+ >
+</span
+ ><span id="line-8"
+ ></span
+ ><span class="annot"
+ ><a href="LinkingIdentifiers.html#ident"
+ ><span class="hs-identifier hs-type"
+ >ident</span
+ ></a
+ ></span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >::</span
+ ><span
+ > </span
+ ><span class="annot"
+ ><span class="hs-identifier hs-type"
+ >Int</span
+ ></span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><span class="annot"
+ ><span class="hs-identifier hs-type"
+ >Int</span
+ ></span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><span class="annot"
+ ><span class="hs-identifier hs-type"
+ >Int</span
+ ></span
+ ><span
+ >
+</span
+ ><span id="line-9"
+ ></span
+ ><span id="local-6989586621679043611"
+ ><span class="annot"
+ ><span class="annottext"
+ >x :: Int
+</span
+ ><a href="#"
+ ><span class="hs-identifier hs-var"
+ >x</span
+ ></a
+ ></span
+ ></span
+ ><span
+ > </span
+ ><span id="ident"
+ ><span class="annot"
+ ><span class="annottext"
+ >ident :: Int -&gt; Int -&gt; Int
+</span
+ ><a href="LinkingIdentifiers.html#ident"
+ ><span class="hs-operator hs-var hs-var"
+ >`ident`</span
+ ></a
+ ></span
+ ></span
+ ><span
+ > </span
+ ><span class="hs-number"
+ >2</span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >=</span
+ ><span
+ > </span
+ ><span class="hs-special"
+ >(</span
+ ><span class="annot"
+ ><span class="annottext"
+ >Int
+</span
+ ><a href="#"
+ ><span class="hs-identifier hs-var"
+ >x</span
+ ></a
+ ></span
+ ><span
+ > </span
+ ><span class="annot"
+ ><span class="annottext"
+ >Int -&gt; Int -&gt; Int
+</span
+ ><a href="LinkingIdentifiers.html#ident"
+ ><span class="hs-operator hs-var"
+ >`ident`</span
+ ></a
+ ></span
+ ><span
+ > </span
+ ><span class="annot"
+ ><span class="hs-number"
+ >2</span
+ ></span
+ ><span class="hs-special"
+ >)</span
+ ><span
+ > </span
+ ><span class="annot"
+ ><span class="annottext"
+ >Int -&gt; Int -&gt; Int
+forall a. Num a =&gt; a -&gt; a -&gt; a
+</span
+ ><span class="hs-operator hs-var"
+ >+</span
+ ></span
+ ><span
+ > </span
+ ><span class="hs-special"
+ >(</span
+ ><span class="annot"
+ ><span class="annottext"
+ >Int
+</span
+ ><a href="#"
+ ><span class="hs-identifier hs-var"
+ >x</span
+ ></a
+ ></span
+ ><span
+ > </span
+ ><span class="annot"
+ ><span class="annottext"
+ >Int -&gt; Int -&gt; Int
+</span
+ ><a href="LinkingIdentifiers.html#ident"
+ ><span class="hs-operator hs-var"
+ >`LinkingIdentifiers.ident`</span
+ ></a
+ ></span
+ ><span
+ > </span
+ ><span class="annot"
+ ><span class="hs-number"
+ >2</span
+ ></span
+ ><span class="hs-special"
+ >)</span
+ ><span
+ >
+</span
+ ><span id="line-10"
+ ></span
+ ><span class="annot"
+ ><a href="LinkingIdentifiers.html#ident"
+ ><span class="hs-identifier hs-var"
+ >ident</span
+ ></a
+ ></span
+ ><span
+ > </span
+ ><span id="local-6989586621679043609"
+ ><span class="annot"
+ ><span class="annottext"
+ >x :: Int
+</span
+ ><a href="#"
+ ><span class="hs-identifier hs-var"
+ >x</span
+ ></a
+ ></span
+ ></span
+ ><span
+ > </span
+ ><span class="hs-number"
+ >2</span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >=</span
+ ><span
+ > </span
+ ><span class="annot"
+ ><span class="annottext"
+ >Int -&gt; Int -&gt; Int
+</span
+ ><a href="LinkingIdentifiers.html#ident"
+ ><span class="hs-identifier hs-var"
+ >ident</span
+ ></a
+ ></span
+ ><span
+ > </span
+ ><span class="annot"
+ ><span class="annottext"
+ >Int
+</span
+ ><a href="#"
+ ><span class="hs-identifier hs-var"
+ >x</span
+ ></a
+ ></span
+ ><span
+ > </span
+ ><span class="annot"
+ ><span class="hs-number"
+ >2</span
+ ></span
+ ><span
+ > </span
+ ><span class="annot"
+ ><span class="annottext"
+ >Int -&gt; Int -&gt; Int
+forall a. Num a =&gt; a -&gt; a -&gt; a
+</span
+ ><span class="hs-operator hs-var"
+ >+</span
+ ></span
+ ><span
+ > </span
+ ><span class="annot"
+ ><span class="annottext"
+ >Int -&gt; Int -&gt; Int
+</span
+ ><a href="LinkingIdentifiers.html#ident"
+ ><span class="hs-identifier hs-var"
+ >LinkingIdentifiers.ident</span
+ ></a
+ ></span
+ ><span
+ > </span
+ ><span class="annot"
+ ><span class="annottext"
+ >Int
+</span
+ ><a href="#"
+ ><span class="hs-identifier hs-var"
+ >x</span
+ ></a
+ ></span
+ ><span
+ > </span
+ ><span class="annot"
+ ><span class="hs-number"
+ >2</span
+ ></span
+ ><span
+ >
+</span
+ ><span id="line-11"
+ ></span
+ ><span
+ >
+</span
+ ><span id="line-12"
+ ></span
+ ><span class="annot"
+ ><a href="LinkingIdentifiers.html#%2B%2B%3A%2B%2B"
+ ><span class="hs-operator hs-type"
+ >(++:++)</span
+ ></a
+ ></span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >::</span
+ ><span
+ > </span
+ ><span class="annot"
+ ><span class="hs-identifier hs-type"
+ >Int</span
+ ></span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><span class="annot"
+ ><span class="hs-identifier hs-type"
+ >Int</span
+ ></span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><span class="annot"
+ ><span class="hs-identifier hs-type"
+ >Int</span
+ ></span
+ ><span
+ >
+</span
+ ><span id="line-13"
+ ></span
+ ><span id="local-6989586621679043607"
+ ><span class="annot"
+ ><span class="annottext"
+ >x :: Int
+</span
+ ><a href="#"
+ ><span class="hs-identifier hs-var"
+ >x</span
+ ></a
+ ></span
+ ></span
+ ><span
+ > </span
+ ><span id="%2B%2B%3A%2B%2B"
+ ><span class="annot"
+ ><span class="annottext"
+ >++:++ :: Int -&gt; Int -&gt; Int
+</span
+ ><a href="LinkingIdentifiers.html#%2B%2B%3A%2B%2B"
+ ><span class="hs-operator hs-var hs-var"
+ >++:++</span
+ ></a
+ ></span
+ ></span
+ ><span
+ > </span
+ ><span class="hs-number"
+ >2</span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >=</span
+ ><span
+ > </span
+ ><span class="hs-special"
+ >(</span
+ ><span class="annot"
+ ><span class="annottext"
+ >Int
+</span
+ ><a href="#"
+ ><span class="hs-identifier hs-var"
+ >x</span
+ ></a
+ ></span
+ ><span
+ > </span
+ ><span class="annot"
+ ><span class="annottext"
+ >Int -&gt; Int -&gt; Int
+</span
+ ><a href="LinkingIdentifiers.html#%2B%2B%3A%2B%2B"
+ ><span class="hs-operator hs-var"
+ >++:++</span
+ ></a
+ ></span
+ ><span
+ > </span
+ ><span class="annot"
+ ><span class="hs-number"
+ >2</span
+ ></span
+ ><span class="hs-special"
+ >)</span
+ ><span
+ > </span
+ ><span class="annot"
+ ><span class="annottext"
+ >Int -&gt; Int -&gt; Int
+forall a. Num a =&gt; a -&gt; a -&gt; a
+</span
+ ><span class="hs-operator hs-var"
+ >+</span
+ ></span
+ ><span
+ > </span
+ ><span class="hs-special"
+ >(</span
+ ><span class="annot"
+ ><span class="annottext"
+ >Int
+</span
+ ><a href="#"
+ ><span class="hs-identifier hs-var"
+ >x</span
+ ></a
+ ></span
+ ><span
+ > </span
+ ><span class="annot"
+ ><span class="annottext"
+ >Int -&gt; Int -&gt; Int
+</span
+ ><a href="LinkingIdentifiers.html#%2B%2B%3A%2B%2B"
+ ><span class="hs-operator hs-var"
+ >LinkingIdentifiers.++:++</span
+ ></a
+ ></span
+ ><span
+ > </span
+ ><span class="annot"
+ ><span class="hs-number"
+ >2</span
+ ></span
+ ><span class="hs-special"
+ >)</span
+ ><span
+ >
+</span
+ ><span id="line-14"
+ ></span
+ ><span class="annot"
+ ><a href="LinkingIdentifiers.html#%2B%2B%3A%2B%2B"
+ ><span class="hs-operator hs-var"
+ >(++:++)</span
+ ></a
+ ></span
+ ><span
+ > </span
+ ><span id="local-6989586621679043606"
+ ><span class="annot"
+ ><span class="annottext"
+ >x :: Int
+</span
+ ><a href="#"
+ ><span class="hs-identifier hs-var"
+ >x</span
+ ></a
+ ></span
+ ></span
+ ><span
+ > </span
+ ><span class="hs-number"
+ >2</span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >=</span
+ ><span
+ > </span
+ ><span class="annot"
+ ><span class="annottext"
+ >Int -&gt; Int -&gt; Int
+</span
+ ><a href="LinkingIdentifiers.html#%2B%2B%3A%2B%2B"
+ ><span class="hs-operator hs-var"
+ >(++:++)</span
+ ></a
+ ></span
+ ><span
+ > </span
+ ><span class="annot"
+ ><span class="annottext"
+ >Int
+</span
+ ><a href="#"
+ ><span class="hs-identifier hs-var"
+ >x</span
+ ></a
+ ></span
+ ><span
+ > </span
+ ><span class="annot"
+ ><span class="hs-number"
+ >2</span
+ ></span
+ ><span
+ > </span
+ ><span class="annot"
+ ><span class="annottext"
+ >Int -&gt; Int -&gt; Int
+forall a. Num a =&gt; a -&gt; a -&gt; a
+</span
+ ><span class="hs-operator hs-var"
+ >+</span
+ ></span
+ ><span
+ > </span
+ ><span class="annot"
+ ><span class="annottext"
+ >Int -&gt; Int -&gt; Int
+</span
+ ><a href="LinkingIdentifiers.html#%2B%2B%3A%2B%2B"
+ ><span class="hs-operator hs-var"
+ >(LinkingIdentifiers.++:++)</span
+ ></a
+ ></span
+ ><span
+ > </span
+ ><span class="annot"
+ ><span class="annottext"
+ >Int
+</span
+ ><a href="#"
+ ><span class="hs-identifier hs-var"
+ >x</span
+ ></a
+ ></span
+ ><span
+ > </span
+ ><span class="annot"
+ ><span class="hs-number"
+ >2</span
+ ></span
+ ><span
+ >
+</span
+ ><span id="line-15"
+ ></span
+ ></pre
+ ></body
+ ></html
+> \ No newline at end of file