equal
deleted
inserted
replaced
459 |
459 |
460 val selected_sessions1 = |
460 val selected_sessions1 = |
461 { |
461 { |
462 val sel_sessions1 = session1 :: session :: include_sessions |
462 val sel_sessions1 = session1 :: session :: include_sessions |
463 val select_sessions1 = |
463 val select_sessions1 = |
464 if (session_focus) full_sessions1.imports_descendants(sel_sessions1) else sel_sessions1 |
464 if (session_focus) { |
|
465 full_sessions1.check_sessions(sel_sessions1) |
|
466 full_sessions1.imports_descendants(sel_sessions1) |
|
467 } |
|
468 else sel_sessions1 |
465 full_sessions1.selection(Selection(sessions = select_sessions1)) |
469 full_sessions1.selection(Selection(sessions = select_sessions1)) |
466 } |
470 } |
467 |
471 |
468 val sessions1 = if (all_known) full_sessions1 else selected_sessions1 |
472 val sessions1 = if (all_known) full_sessions1 else selected_sessions1 |
469 val deps1 = Sessions.deps(sessions1, global_theories, progress = progress) |
473 val deps1 = Sessions.deps(sessions1, global_theories, progress = progress) |
677 error("Duplicate global theory " + quote(thy) + Position.here(info.pos)) |
681 error("Duplicate global theory " + quote(thy) + Position.here(info.pos)) |
678 case _ => global + (thy -> qualifier) |
682 case _ => global + (thy -> qualifier) |
679 } |
683 } |
680 }) |
684 }) |
681 |
685 |
682 def selection(sel: Selection): Structure = |
686 def check_sessions(names: List[String]) |
683 { |
687 { |
684 val bad_sessions = |
688 val bad_sessions = SortedSet(names.filterNot(defined(_)): _*).toList |
685 SortedSet((sel.base_sessions ::: sel.exclude_sessions ::: sel.sessions). |
|
686 filterNot(defined(_)): _*).toList |
|
687 if (bad_sessions.nonEmpty) |
689 if (bad_sessions.nonEmpty) |
688 error("Undefined session(s): " + commas_quote(bad_sessions)) |
690 error("Undefined session(s): " + commas_quote(bad_sessions)) |
|
691 } |
|
692 |
|
693 def selection(sel: Selection): Structure = |
|
694 { |
|
695 check_sessions(sel.base_sessions ::: sel.exclude_sessions ::: sel.sessions) |
689 |
696 |
690 val excluded = sel.excluded(build_graph).toSet |
697 val excluded = sel.excluded(build_graph).toSet |
691 |
698 |
692 def restrict(graph: Graph[String, Info]): Graph[String, Info] = |
699 def restrict(graph: Graph[String, Info]): Graph[String, Info] = |
693 { |
700 { |