Skip to content

Commit fc0361c

Browse files
committed
Merge branch '__rultor'
2 parents a38c3fd + a2a315a commit fc0361c

15 files changed

+53
-36
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@
119119
<dependency>
120120
<groupId>org.eolang</groupId>
121121
<artifactId>eo-parser</artifactId>
122-
<version>0.53.0</version>
122+
<version>0.55.1</version>
123123
<scope>compile</scope>
124124
</dependency>
125125
<dependency>

src/main/resources/org/eolang/lints/critical/object-has-data.xsl

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,22 +11,30 @@
1111
<xsl:output encoding="UTF-8" method="xml"/>
1212
<xsl:template match="/">
1313
<defects>
14-
<xsl:for-each select="//o[eo:has-data(.) and (not(@base) or @base!='Q.org.eolang.bytes')]">
14+
<xsl:for-each select="//o[eo:has-data(.) and not(parent::o[@base='Q.org.eolang.bytes'])]">
1515
<defect>
16-
<xsl:variable name="line" select="eo:lineno(@line)"/>
16+
<xsl:variable name="parent" select="parent::o"/>
17+
<xsl:variable name="line" select="eo:lineno($parent/@line)"/>
1718
<xsl:attribute name="line">
1819
<xsl:value-of select="$line"/>
1920
</xsl:attribute>
2021
<xsl:if test="$line = '0'">
2122
<xsl:attribute name="context">
22-
<xsl:value-of select="eo:defect-context(.)"/>
23+
<xsl:value-of select="eo:defect-context($parent)"/>
2324
</xsl:attribute>
2425
</xsl:if>
2526
<xsl:attribute name="severity">critical</xsl:attribute>
26-
<xsl:text>Only object with @base equal to "Q.org.eolang.bytes" may contain data, </xsl:text>
27-
<xsl:text>while object with @base "</xsl:text>
28-
<xsl:value-of select="@base"/>
29-
<xsl:text>" provided</xsl:text>
27+
<xsl:text>Only object that have parent object with @base equal to "Q.org.eolang.bytes" may contain data, while</xsl:text>
28+
<xsl:choose>
29+
<xsl:when test="$parent/@base">
30+
<xsl:text> parent object with @base </xsl:text>
31+
<xsl:value-of select="eo:escape($parent/@base)"/>
32+
</xsl:when>
33+
<xsl:otherwise>
34+
<xsl:text> anonymous parent object</xsl:text>
35+
</xsl:otherwise>
36+
</xsl:choose>
37+
<xsl:text> provided</xsl:text>
3038
</defect>
3139
</xsl:for-each>
3240
</defects>

src/main/resources/org/eolang/lints/errors/empty-object.xsl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<xsl:output encoding="UTF-8" method="xml"/>
1212
<xsl:template match="/">
1313
<defects>
14-
<xsl:for-each select="/program/objects//o[not(@base) and not(o) and not(eo:atom(.))]">
14+
<xsl:for-each select="/program/objects//o[not(@base) and not(o) and not(eo:atom(.)) and not(parent::o[@base='Q.org.eolang.bytes'])]">
1515
<xsl:element name="defect">
1616
<xsl:variable name="line" select="eo:lineno(@line)"/>
1717
<xsl:attribute name="line">

src/main/resources/org/eolang/lints/misc/sprintf-without-formatters.xsl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
<xsl:template match="/">
1919
<defects>
2020
<xsl:for-each select="//o[@base='Q.org.eolang.txt.sprintf']">
21-
<xsl:variable name="text" select="o[1][@base='Q.org.eolang.string']/o[1][@base='Q.org.eolang.bytes']/text()"/>
21+
<xsl:variable name="text" select="o[1][@base='Q.org.eolang.string']/o[1][@base='Q.org.eolang.bytes']/o/text()"/>
2222
<xsl:variable name="txt" select="translate($text, '-', '')"/>
2323
<xsl:variable name="formatters">
2424
<xsl:variable name="txt" select="translate($text, '-', '')"/>

src/main/resources/org/eolang/lints/misc/wrong-sprintf-arguments.xsl

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,25 +10,22 @@
1010
<!-- Find arguments in tuple -->
1111
<xsl:template match="o" mode="arguments" as="xs:integer">
1212
<xsl:choose>
13-
<xsl:when test="@base='.with' and count(o)=2">
13+
<xsl:when test="@base='Q.org.eolang.tuple.empty'">
14+
<xsl:value-of select="0"/>
15+
</xsl:when>
16+
<xsl:when test="@base='Q.org.eolang.tuple'">
1417
<xsl:variable name="nested">
1518
<xsl:apply-templates select="o[1]" mode="arguments"/>
1619
</xsl:variable>
1720
<xsl:choose>
18-
<xsl:when test="$nested!=-1">
21+
<xsl:when test="count(o) &gt;= 2">
1922
<xsl:value-of select="$nested + 1"/>
2023
</xsl:when>
2124
<xsl:otherwise>
22-
<xsl:value-of select="-1"/>
25+
<xsl:value-of select="$nested"/>
2326
</xsl:otherwise>
2427
</xsl:choose>
2528
</xsl:when>
26-
<xsl:when test="@base='Q.org.eolang.tuple.empty'">
27-
<xsl:value-of select="0"/>
28-
</xsl:when>
29-
<xsl:when test="@base='Q.org.eolang.tuple.empty.with' and count(o)=1">
30-
<xsl:value-of select="1"/>
31-
</xsl:when>
3229
<xsl:otherwise>
3330
<xsl:value-of select="-1"/>
3431
</xsl:otherwise>
@@ -37,7 +34,7 @@
3734
<xsl:template match="/">
3835
<defects>
3936
<xsl:for-each select="//o[@base='Q.org.eolang.txt.sprintf']">
40-
<xsl:variable name="text" select="o[1][@base='Q.org.eolang.string']/o[1][@base='Q.org.eolang.bytes']/text()"/>
37+
<xsl:variable name="text" select="o[1][@base='Q.org.eolang.string']/o[1][@base='Q.org.eolang.bytes']/o/text()"/>
4138
<xsl:choose>
4239
<xsl:when test="count(o)&gt;2">
4340
<defect>
@@ -112,7 +109,7 @@
112109
<xsl:attribute name="severity">
113110
<xsl:text>warning</xsl:text>
114111
</xsl:attribute>
115-
<xsl:text>The second argument "Q.org.eolang.txt.sprintf" object must be a right structured "Q.org.eolang.tuple" object built via ".with" method</xsl:text>
112+
<xsl:text>The second argument "Q.org.eolang.txt.sprintf" object must be a right structured "Q.org.eolang.tuple" object</xsl:text>
116113
</defect>
117114
</xsl:when>
118115
<xsl:otherwise>

src/main/resources/org/eolang/motives/critical/object-has-data.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Incorrect:
99
<program>
1010
<objects>
1111
<o name="bar" base="foo">
12-
A1-B2-C3-D4-E5
12+
<o>A1-B2-C3-D4-E5</o>
1313
</o>
1414
</objects>
1515
</program>
@@ -21,7 +21,7 @@ Correct:
2121
<program>
2222
<objects>
2323
<o name="bar" base="org.eolang.bytes">
24-
A1-B2-C3-D4-E5
24+
<o>A1-B2-C3-D4-E5</o>
2525
</o>
2626
</objects>
2727
</program>

src/test/resources/org/eolang/lints/packs/single/object-has-data/allows-data-in-bytes.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ document: |
99
<program>
1010
<objects>
1111
<o name="foo" base="Q.org.eolang.bytes">
12-
A1-B2-C3-D4-E5
12+
<o>A1-B2-C3-D4-E5</o>
1313
</o>
1414
</objects>
1515
</program>

src/test/resources/org/eolang/lints/packs/single/object-has-data/allows-data-in-inner-objects.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@ document: |
99
<program>
1010
<objects>
1111
<o name="foo">
12-
<o name="inner" base="Q.org.eolang.bytes">12-23-FF</o>
12+
<o name="inner" base="Q.org.eolang.bytes">
13+
<o>12-23-FF</o>
14+
</o>
1315
</o>
1416
</objects>
1517
</program>

src/test/resources/org/eolang/lints/packs/single/object-has-data/catches-data-in-inner-objects-without-base.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@ document: |
99
<program>
1010
<objects>
1111
<o name="foo">
12-
<o name="inner">12-23-FF</o>
12+
<o name="inner">
13+
<o>12-23-FF</o>
14+
</o>
1315
</o>
1416
</objects>
1517
</program>

src/test/resources/org/eolang/lints/packs/single/object-has-data/catches-data-in-inner-objects.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@ document: |
1010
<program>
1111
<objects>
1212
<o base="foo" name="o" line="1">
13-
<o name="i" line="2">TEST</o>
13+
<o name="i" line="2">
14+
<o>TEST</o>
15+
</o>
1416
</o>
1517
</objects>
1618
</program>

0 commit comments

Comments
 (0)