aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/docs/index.html16
-rw-r--r--lib/docs/main.js31
-rw-r--r--lib/std/math/big/rational.zig16
3 files changed, 53 insertions, 10 deletions
diff --git a/lib/docs/index.html b/lib/docs/index.html
index ddc0ecbfb2..00f570d100 100644
--- a/lib/docs/index.html
+++ b/lib/docs/index.html
@@ -359,7 +359,17 @@
#listFns dt {
font-family: var(--mono);
+ display: flex;
+ flex-direction: colunm;
+ justify-content: space-between;
+ }
+
+ #listFns dt .fnSignature {
+ overflow-x: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
}
+
.argBreaker {
display: none;
}
@@ -711,7 +721,11 @@
<h2>Examples</h2>
<ul id="listFnExamples" class="examples"></ul>
</div>
- <div id="sectTests" class="hidden">
+ <div id="sectDocTests" class="hidden">
+ <h2>DocTests</h2>
+ <pre id="docTestsCode"></pre>
+ </div>
+ <div id="sectTests" class="hidden">
<h2>Tests</h2>
<div class="table-container">
<table>
diff --git a/lib/docs/main.js b/lib/docs/main.js
index 28e8b32472..b02b061eb4 100644
--- a/lib/docs/main.js
+++ b/lib/docs/main.js
@@ -13,6 +13,8 @@ var zigAnalysis;
const domListTypes = document.getElementById("listTypes");
const domSectTests = document.getElementById("sectTests");
const domListTests = document.getElementById("listTests");
+ const domSectDocTests = document.getElementById("sectDocTests");
+ const domDocTestsCode = document.getElementById("docTestsCode");
const domSectNamespaces = document.getElementById("sectNamespaces");
const domListNamespaces = document.getElementById("listNamespaces");
const domSectErrSets = document.getElementById("sectErrSets");
@@ -241,7 +243,8 @@ var zigAnalysis;
return (
typeKind === typeKinds.Struct ||
typeKind === typeKinds.Union ||
- typeKind === typeKinds.Enum
+ typeKind === typeKinds.Enum ||
+ typeKind === typeKinds.Opaque
);
}
@@ -384,6 +387,7 @@ var zigAnalysis;
domSectPkgs.classList.add("hidden");
domSectTypes.classList.add("hidden");
domSectTests.classList.add("hidden");
+ domSectDocTests.classList.add("hidden");
domSectNamespaces.classList.add("hidden");
domSectErrSets.classList.add("hidden");
domSectFns.classList.add("hidden");
@@ -452,6 +456,10 @@ var zigAnalysis;
let lastIsDecl = isDecl(last);
let lastIsType = isType(last);
let lastIsContainerType = isContainerType(last);
+
+ if (lastIsDecl){
+ renderDocTest(last);
+ }
if (lastIsContainerType) {
return renderContainer(last);
@@ -477,6 +485,14 @@ var zigAnalysis;
return renderValue(last);
}
+
+ }
+
+ function renderDocTest(decl) {
+ if (!("decltest" in decl)) return;
+ const astNode = zigAnalysis.astNodes[decl.decltest];
+ domSectDocTests.classList.remove("hidden");
+ domDocTestsCode.innerHTML = astNode.code;
}
function renderUnknownDecl(decl) {
@@ -1609,8 +1625,7 @@ var zigAnalysis;
}
case typeKinds.Opaque: {
let opaqueObj = typeObj;
-
- return opaqueObj.name;
+ return opaqueObj;
}
case typeKinds.ComptimeExpr: {
return "anyopaque";
@@ -2421,24 +2436,26 @@ var zigAnalysis;
resizeDomList(
domListFns,
fnsList.length,
- "<div><dt></dt><dd></dd></div>"
+ "<div><dt><div class=\"fnSignature\"></div><div></div></dt><dd></dd></div>"
);
for (let i = 0; i < fnsList.length; i += 1) {
let decl = fnsList[i];
let trDom = domListFns.children[i];
- let tdFnCode = trDom.children[0];
+ let tdFnSignature = trDom.children[0].children[0];
+ let tdFnSrc = trDom.children[0].children[1];
let tdDesc = trDom.children[1];
let declType = resolveValue(decl.value);
console.assert("type" in declType.expr);
- tdFnCode.innerHTML = exprName(declType.expr, {
+ tdFnSignature.innerHTML = exprName(declType.expr, {
wantHtml: true,
wantLink: true,
fnDecl: decl,
linkFnNameDecl: navLinkDecl(decl.name),
- }) + renderSourceFileLink(decl);
+ });
+ tdFnSrc.innerHTML = renderSourceFileLink(decl);
let docs = zigAnalysis.astNodes[decl.src].docs;
if (docs != null) {
diff --git a/lib/std/math/big/rational.zig b/lib/std/math/big/rational.zig
index 895b20d9b5..61e2194eea 100644
--- a/lib/std/math/big/rational.zig
+++ b/lib/std/math/big/rational.zig
@@ -334,13 +334,13 @@ pub const Rational = struct {
/// Returns math.Order.lt, math.Order.eq, math.Order.gt if a < b, a == b or a
/// > b respectively.
pub fn order(a: Rational, b: Rational) !math.Order {
- return cmpInternal(a, b, true);
+ return cmpInternal(a, b, false);
}
/// Returns math.Order.lt, math.Order.eq, math.Order.gt if |a| < |b|, |a| ==
/// |b| or |a| > |b| respectively.
pub fn orderAbs(a: Rational, b: Rational) !math.Order {
- return cmpInternal(a, b, false);
+ return cmpInternal(a, b, true);
}
// p/q > x/y iff p*y > x*q
@@ -704,6 +704,18 @@ test "big.rational order" {
try testing.expect((try a.order(b)) == .eq);
}
+test "big.rational order/orderAbs with negative" {
+ var a = try Rational.init(testing.allocator);
+ defer a.deinit();
+ var b = try Rational.init(testing.allocator);
+ defer b.deinit();
+
+ try a.setRatio(1, 1);
+ try b.setRatio(-2, 1);
+ try testing.expect((try a.order(b)) == .gt);
+ try testing.expect((try a.orderAbs(b)) == .lt);
+}
+
test "big.rational add single-limb" {
var a = try Rational.init(testing.allocator);
defer a.deinit();