diff --git a/inform7/Figures/timings-diagnostics.txt b/inform7/Figures/timings-diagnostics.txt index 3584a7952..fc55a9cf8 100644 --- a/inform7/Figures/timings-diagnostics.txt +++ b/inform7/Figures/timings-diagnostics.txt @@ -1,10 +1,10 @@ 100.0% in inform7 run - 68.0% in compilation to Inter - 47.7% in //Sequence::undertake_queued_tasks// - 4.5% in //MajorNodes::pre_pass// - 3.2% in //MajorNodes::pass_1// + 68.1% in compilation to Inter + 47.6% in //Sequence::undertake_queued_tasks// + 4.6% in //MajorNodes::pre_pass// + 3.3% in //MajorNodes::pass_1// 2.3% in //RTPhrasebook::compile_entries// - 1.8% in //ImperativeDefinitions::assess_all// + 1.9% in //ImperativeDefinitions::assess_all// 1.5% in //RTKindConstructors::compile// 1.0% in //Sequence::lint_inter// 0.5% in //MajorNodes::pass_2// @@ -18,15 +18,15 @@ 0.1% in //Task::make_built_in_kind_constructors// 0.1% in //Understand::traverse// 0.1% in //World::stages_II_and_III// - 2.1% not specifically accounted for - 29.3% in running Inter pipeline + 2.0% not specifically accounted for + 29.2% in running Inter pipeline 10.2% in step 14/15: generate inform6 -> auto.inf 7.6% in step 5/15: load-binary-kits - 6.8% in step 6/15: make-synoptic-module - 1.5% in step 9/15: make-identifiers-unique + 6.7% in step 6/15: make-synoptic-module + 1.6% 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.3% in step 7/15: shorten-wiring 0.3% in step 8/15: detect-indirect-calls 0.2% in step 11/15: eliminate-redundant-labels 0.1% in step 10/15: reconcile-verbs diff --git a/inform7/Tests/Test Cases/NominalisedVarValue.txt b/inform7/Tests/Test Cases/NominalisedVarValue.txt new file mode 100644 index 000000000..3ae940e26 --- /dev/null +++ b/inform7/Tests/Test Cases/NominalisedVarValue.txt @@ -0,0 +1,12 @@ +Lab is a room. + +A prog is a kind of value. +The progs are unstarted, progressing, completed. +A person has a prog. +The threshold is a prog that varies. +The threshold is progressing. + +When play begins: + showme the threshold; + now the threshold is completed; + showme the threshold. diff --git a/inform7/Tests/Test Cases/_Results_Ideal/NominalisedVarValue.txt b/inform7/Tests/Test Cases/_Results_Ideal/NominalisedVarValue.txt new file mode 100644 index 000000000..afacf554c --- /dev/null +++ b/inform7/Tests/Test Cases/_Results_Ideal/NominalisedVarValue.txt @@ -0,0 +1,11 @@ + Lab + "threshold" = prog: progressing + "threshold" = prog: completed + Welcome + An Interactive Fiction + Release 1 / Serial number 160428 / Inform 7 v10.1.0 / D + + Lab + +> > Lab +> Are you sure you want to quit? \ No newline at end of file diff --git a/inform7/assertions-module/Chapter 4/Assertions.w b/inform7/assertions-module/Chapter 4/Assertions.w index 186c2c121..6c11391c7 100644 --- a/inform7/assertions-module/Chapter 4/Assertions.w +++ b/inform7/assertions-module/Chapter 4/Assertions.w @@ -1036,6 +1036,13 @@ in this case. @ = Refiner::turn_player_to_yourself(px); + if ((Node::get_type(px) == PROPER_NOUN_NT) && + (Lvalues::get_nonlocal_variable_if_any(Node::get_evaluation(px)))) { + if (Refiner::nominalise_adjective(py)) { + Assertions::make_coupling(px, py); + return; + } + } if (global_pass_state.pass == 2) Assertions::PropertyKnowledge::assert_property_list(px, py); @h Case 30. I am in two minds about the next nit-picking error message.