mirror of
https://github.com/ganelson/inform.git
synced 2024-07-02 23:14:57 +03:00
Fix for Jira bug I7-2099
This commit is contained in:
parent
37bf39de3f
commit
15062de9a5
|
@ -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">)) && (</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="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">)) && (</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="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"><s-literal-real-number></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"><<rp>></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"><s-literal-real-number></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"><<rp>></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="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="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>
|
<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>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
100.0% in inform7 run
|
100.0% in inform7 run
|
||||||
70.5% in compilation to Inter
|
71.4% in compilation to Inter
|
||||||
50.1% in //Sequence::undertake_queued_tasks//
|
51.0% in //Sequence::undertake_queued_tasks//
|
||||||
4.6% in //MajorNodes::pre_pass//
|
4.6% in //MajorNodes::pre_pass//
|
||||||
3.4% in //MajorNodes::pass_1//
|
3.4% in //MajorNodes::pass_1//
|
||||||
1.8% in //ImperativeDefinitions::assess_all//
|
1.8% in //ImperativeDefinitions::assess_all//
|
||||||
|
@ -16,18 +16,17 @@
|
||||||
0.2% in //InferenceSubjects::emit_all//
|
0.2% in //InferenceSubjects::emit_all//
|
||||||
0.2% in //RTKindConstructors::compile_permissions//
|
0.2% in //RTKindConstructors::compile_permissions//
|
||||||
0.2% in //Task::make_built_in_kind_constructors//
|
0.2% in //Task::make_built_in_kind_constructors//
|
||||||
0.2% in //World::stages_II_and_III//
|
3.0% not specifically accounted for
|
||||||
2.6% not specifically accounted for
|
25.9% in running Inter pipeline
|
||||||
26.7% in running Inter pipeline
|
10.2% in step 14/15: generate inform6 -> auto.inf
|
||||||
10.5% in step 14/15: generate inform6 -> auto.inf
|
|
||||||
6.0% in step 6/15: make-synoptic-module
|
|
||||||
5.4% in step 5/15: load-binary-kits
|
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
|
1.4% in step 9/15: make-identifiers-unique
|
||||||
0.4% in step 12/15: eliminate-redundant-operations
|
0.4% in step 12/15: eliminate-redundant-operations
|
||||||
0.4% in step 4/15: compile-splats
|
0.4% in step 4/15: compile-splats
|
||||||
0.4% in step 7/15: shorten-wiring
|
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 11/15: eliminate-redundant-labels
|
||||||
0.2% in step 8/15: detect-indirect-calls
|
1.7% not specifically accounted for
|
||||||
1.6% not specifically accounted for
|
|
||||||
2.2% in supervisor
|
2.2% in supervisor
|
||||||
0.5% not specifically accounted for
|
0.5% not specifically accounted for
|
||||||
|
|
|
@ -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))) {
|
if ((Kinds::eq(from, K_number)) && (Kinds::eq(to, K_real_number))) {
|
||||||
wording W = Node::get_text(value);
|
wording W = Node::get_text(value);
|
||||||
if (<s-literal-real-number>(W)) value = <<rp>>;
|
if (<s-literal-real-number>(W)) value = <<rp>>;
|
||||||
else internal_error("can't parse integer as real");
|
|
||||||
}
|
}
|
||||||
promoting_reals = s;
|
promoting_reals = s;
|
||||||
return value;
|
return value;
|
||||||
|
|
Loading…
Reference in a new issue