1
0
Fork 0
mirror of https://github.com/ganelson/inform.git synced 2024-06-28 21:14:57 +03:00

Fix for Jira bug I7-2099

This commit is contained in:
Graham Nelson 2022-05-11 21:56:26 +01:00
parent 37bf39de3f
commit 15062de9a5
3 changed files with 8 additions and 11 deletions

View file

@ -366,7 +366,6 @@ had the literal in question been expected to be real all along.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Kinds::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">)) &amp;&amp; (</span><span class="identifier-syntax">Kinds::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">to</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_real_number</span><span class="plain-syntax">))) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">value</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;s-literal-real-number&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) </span><span class="identifier-syntax">value</span><span class="plain-syntax"> = </span><span class="function-syntax">&lt;&lt;rp&gt;&gt;</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"can't parse integer as real"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">promoting_reals</span><span class="plain-syntax"> = </span><span class="identifier-syntax">s</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">value</span><span class="plain-syntax">;</span>

View file

@ -1,6 +1,6 @@
100.0% in inform7 run
70.5% in compilation to Inter
50.1% in //Sequence::undertake_queued_tasks//
71.4% in compilation to Inter
51.0% in //Sequence::undertake_queued_tasks//
4.6% in //MajorNodes::pre_pass//
3.4% in //MajorNodes::pass_1//
1.8% in //ImperativeDefinitions::assess_all//
@ -16,18 +16,17 @@
0.2% in //InferenceSubjects::emit_all//
0.2% in //RTKindConstructors::compile_permissions//
0.2% in //Task::make_built_in_kind_constructors//
0.2% in //World::stages_II_and_III//
2.6% not specifically accounted for
26.7% in running Inter pipeline
10.5% in step 14/15: generate inform6 -> auto.inf
6.0% in step 6/15: make-synoptic-module
3.0% not specifically accounted for
25.9% in running Inter pipeline
10.2% in step 14/15: generate inform6 -> auto.inf
5.4% in step 5/15: load-binary-kits
5.4% in step 6/15: make-synoptic-module
1.4% in step 9/15: make-identifiers-unique
0.4% in step 12/15: eliminate-redundant-operations
0.4% in step 4/15: compile-splats
0.4% in step 7/15: shorten-wiring
0.4% in step 8/15: detect-indirect-calls
0.2% in step 11/15: eliminate-redundant-labels
0.2% in step 8/15: detect-indirect-calls
1.6% not specifically accounted for
1.7% not specifically accounted for
2.2% in supervisor
0.5% not specifically accounted for

View file

@ -242,7 +242,6 @@ parse_node *LiteralReals::promote_number_if_necessary(parse_node *value, kind *t
if ((Kinds::eq(from, K_number)) && (Kinds::eq(to, K_real_number))) {
wording W = Node::get_text(value);
if (<s-literal-real-number>(W)) value = <<rp>>;
else internal_error("can't parse integer as real");
}
promoting_reals = s;
return value;